如何在BottomSheetDialogFragment中显示SnackBar?

时间:2017-06-21 05:59:42

标签: android android-fragments bottom-sheet android-snackbar

我搜索了很多,但找不到任何解决方案Can I display material design Snackbar in dialog?,而Snackbar is not working within fragment class没有帮助。我传递了片段的rootView,并尝试从getActivity传递一个视图,但它们都不起作用!

   @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    rootView = inflater.inflate(R.layout.content_dialog_bottom_sheet, container, false);

Snackbar.make(MyActivity.myTextview, "Hello", Snackbar.LENGTH_INDEFINITE).show();

Snackbar.make(rootView, "Hello", Snackbar.LENGTH_INDEFINITE).show();

return rootView;

}

和我的content_dialog_bottom_sheet:

 <RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:id="@+id/bottomSheetLayout"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="@color/background"
   app:behavior_hideable="true"
   app:behavior_peekHeight="180dp"
   app:layout_behavior="@string/bottom_sheet_behavior">

  //some views 

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

延迟后显示小吃吧:

   new Handler().postDelayed(new Runnable() {
  @Override
        public void run() {
            Snackbar.make(rootView, "Hello", Snackbar.LENGTH_INDEFINITE).show();

        }
    },200);

答案 1 :(得分:0)

解决方案非常简单。您需要:

  1. CoordinatorLayout包装对话框布局(如果您想在某些特定视图旁边显示小吃栏,请包装它)
  2. 在显示小吃店时,使用CoordinatorLayout id作为视图。

答案 2 :(得分:0)

Snackbar.make(
            getDialog().getWindow().getDecorView(),
            "your-string",
            Snackbar.LENGTH_SHORT
    ).show();

将此代码和平添加到您的 onCreateView