通过在现有的Activity布局中定位android.support.design.widget.CoordinatorLayout,可以设置Snackbar的显示位置.
例如,假设您现有的布局是RelativeLayout,您可以添加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">
然后,确保将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的底部.
如果您传递的视图不是CoordinatorLayout,则Snackbar将向上走到树上,直到找到CoordinatorLayout或布局的根.