Как показать SnackBar в BottomSheetDialogFragment?

Я много искал, но не нашел решенияМогу ли я отобразить материал  дизайн Snackbar в диалоговом окне? и Snackbar не работает в классе фрагментов не помогает. Я передаю 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>

person Hamed Ghadirian    schedule 21.06.2017    source источник
comment
Добавьте немного кода, пожалуйста   -  person ImAtWar    schedule 21.06.2017
comment
@ImAtWar я добавил   -  person Hamed Ghadirian    schedule 21.06.2017
comment
Покажите код файла макета, пожалуйста.   -  person ImAtWar    schedule 21.06.2017
comment
Если это все еще актуально, помогло https://stackoverflow.com/a/34477987/4486007.   -  person Alex    schedule 11.03.2019


Ответы (2)


Решение довольно простое. Тебе следует:

  1. Оберните макет диалогового окна с помощью CoordinatorLayout (и если вы хотите, чтобы закусочная отображалась рядом с каким-то конкретным представлением, вместо этого оберните его)
  2. Используйте идентификатор CoordinatorLayout в качестве представления при отображении закусочной.
person ror    schedule 13.03.2019
comment
Спасибо. :). Эта работа после того, как провел 2 часа в водостоке. :) - person Prashant Jajal; 21.08.2020

Показать закусочную после задержки:

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

        }
    },200);
person Sonam Gupta    schedule 21.06.2017
comment
если вы хотите показать закусочную в oncreateview. Сделайте это с постзадержкой. В противном случае нажатие кнопки может показать, что это работает. - person Sonam Gupta; 27.06.2017
comment
Это простой прослушиватель кликов! - person Hamed Ghadirian; 27.06.2017