Android 如何在BottomSheetDialogFragment中显示SnackBar?

Android 如何在BottomSheetDialogFragment中显示SnackBar?,android,android-fragments,bottom-sheet,android-snackbar,Android,Android Fragments,Bottom Sheet,Android Snackbar,我搜索了很多,但没有找到任何解决方案,也没有帮助。我传递了片段的rootView,还尝试从getActivity传递一个视图,但它们都不起作用 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.content_dialog_bottom_sh

我搜索了很多,但没有找到任何解决方案,也没有帮助。我传递了片段的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;

}
和我的内容对话框底部工作表:

 <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>

//一些观点

延迟后显示snackbar:

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

        }
    },200);

解决方案相当简单。您需要:

  • 使用
    CoordinatorLayout
    包装对话框布局(如果要在某个特定视图旁边显示snackbar,请将其包装)
  • 在显示snackbar时,使用
    CoordinatorLayout
    id作为视图

  • 添加一些代码please@ImAtWar我添加了如何显示布局文件代码。如果它仍然是实际帮助。如果你想在oncreateview中显示snackbar。在延迟后再做。否则,点击按钮可以显示它的工作方向。这是一个简单的点击监听器!谢谢。这项工作在花了2个小时到排水沟后进行。:)