Прикрепить Snackbar к RecyclerView - PullRequest
0 голосов
/ 13 ноября 2018

Я создаю типичное приложение чата с RecyclerView в середине и элементами управления сообщениями внизу.

Я хотел бы показать снэк-бар, привязанный к RecyclerView (и, следовательно, показанный внизу Recyclerview), чтобы он отображался над элементами управления сообщениями, а не в самом низу экрана.

Когда я установил snackbarChat = Snackbar.make(findViewById(R.id.recycler_view), "", Snackbar.LENGTH_INDEFINITE);, закусочная по-прежнему отображается (и закрывает элементы управления сообщениями) в нижней части экрана, а не так, как задумано в нижней части RecyclerView.

Вопрос: Как я могу привязать снэк-бар к экрану Recyclerview?

Спасибо за помощь!

1 Ответ

0 голосов
/ 13 ноября 2018

Из документации для make():

Snackbar попытается найти родительское представление для хранения представления Snackbar со значением, заданным для view.Snackbar будет проходить вверх по дереву представлений, пытаясь найти подходящего родителя, который определяется как CoordinatorLayout или представление содержимого оформления окна, в зависимости от того, что наступит раньше.

Итак, когда вы передаете результатfindViewById(R.id.recycler_view), вызов make() будет проверять родительский объект RecyclerView, родительский родительский объект и т. Д. До тех пор, пока он не найдет CoordinatorLayout или не перейдет к основному представлению содержимого.

Iдержу пари, что вы столкнулись со второй половиной этого.

Самый простой способ исправить это - обернуть ваш RecyclerView в CoordinatorLayout.Я не могу точно сказать, как это сделать, не видя XML-макет, но, вероятно, вы просто хотите

<android.support.design.widget.CoordinatorLayout
    android:layout_width="whatever you had on the recyclerview"
    android:layout_height="whatever you had on the recyclerview"
    ...>

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        .../>

</android.support.design.widget.CoordinatorLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...