Добавить представления ниже панели инструментов в CoordinatorLayout
У меня есть следующий макет:
Я добавляю Fragment
s в FrameLayout
, заменяя их. Один из моих Fragment
– это список, который имеет следующий макет:
Моя проблема здесь в том, что панель инструментов нарисована над списком . Я попытался решить это, обернув содержимое CoordinatorLayout
в LinearLayout
, который решил LinearLayout
, но таким образом поведение прокрутки в панели приложений больше не работает.
- Эта активность уже имеет панель действий, предоставляемую декором windows
- Изменить цвет панели инструментов в Appcompat 21
- Равномерно разнесенные пункты меню на Панели инструментов
- Управление навигационной панелью и обратной кнопкой панели инструментов из fragmentа в андроиде
- Android Lollipop, добавить всплывающее меню из заголовка на панели инструментов
Любая помощь высоко ценится!
- Прокладка панели инструментов Android API 21
- Как изменить значки меню навигации и переполнения панели инструментов (appcompat v7)?
- Создание экрана предпочтений с поддержкой (v21) Панели инструментов
- Панель инструментов Android Добавление элементов меню для разных fragmentов
- Как сделать панель инструментов прозрачной?
- Создание кнопки в панели инструментов Android
- На панели инструментов нет тени по умолчанию?
- Как использовать TabLayout с панелью инструментов внутри CollapsingToolbarLayout?
Возьмите атрибут
app:layout_behavior="@string/appbar_scrolling_view_behavior"
выключите RecyclerView
и поместите его в FrameLayout
который вы пытаетесь показать на Toolbar
.
Я обнаружил, что одна важная вещь, которую выполняет поведение прокрутки, заключается в компоновке компонента под панелью инструментов. Поскольку FrameLayout
имеет потомок, который будет прокручиваться ( RecyclerView
), CoordinatorLayout
получит эти прокручивающие события для перемещения Toolbar
.
Еще одна вещь, о которой нужно знать: это поведение макета приведет к тому, что высота FrameLayout
будет иметь размер, как если бы Toolbar
уже была прокручена , а с полной Toolbar
все изображение просто сдвигается вниз, так что нижняя часть представления находится ниже нижней части CoordinatorLayout
.
Это было для меня неожиданностью. Я ожидал, что представление будет динамически изменяться, поскольку панель инструментов прокручивается вверх и вниз. Поэтому, если у вас есть прокручиваемый компонент с фиксированным компонентом в нижней части вашего представления, вы не увидите этот нижний компонент до тех пор, пока вы полностью не прокрутите Toolbar
.
Поэтому, когда я хотел закрепить кнопку в нижней части пользовательского интерфейса, я работал вокруг этого, поместив кнопку внизу « CoordinatorLayout
( android:layout_gravity="bottom"
) и добавив нижнее поле, равное высоте кнопки, к вид под панелью инструментов.
Мне удалось это исправить, добавив:
андроид: layout_marginTop = “андроид: атр / actionBarSize”
к FrameLayout: