如何将Android SnackBar调整到屏幕上的特定位置

Follwing新的android snackbar,我试图把它设置在一个特定的y坐标。 它似乎甚至不可能。

我已经尝试了获得小吃店的视图的父母,但是,对于父母来说,没有任何事情可以设置它的位置。

mSnackBar.getView().getParent(); 

在挖掘实际的类时,有一个mView的实例,而mParent是私有的,不能以任何方式到达。

https://developer.android.com/reference/android/support/design/widget/Snackbar.html

Solutions Collecting From Web of "如何将Android SnackBar调整到屏幕上的特定位置"

可以通过将android.support.design.widget.CoordinatorLayout放置在现有的Activity布局中来设置Snackbar的显示位置。

例如,说你现有的布局是一个RelativeLayout你可以添加一个CoordinatorLayout如下:

 <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/myCoordinatorLayout" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> </android.support.design.widget.CoordinatorLayout> 

然后,确保你传递了CoordinatorLayout作为Snackbar.make()命令的第一个参数。

 final View viewPos = findViewById(R.id.myCoordinatorLayout); Snackbar.make(viewPos, R.string.snackbar_text, Snackbar.LENGTH_LONG) .setAction(R.string.snackbar_action_undo, showListener) .show(); 

这将导致Snackbar被显示在提供给make()函数的CoordinatorLayout底部

如果你传递一个不是CoordinatorLayoutView ,那么Snackbar会走到树上直到find一个CoordinatorLayout或者这个布局的根。