Подтвердить что ты не робот

Верх нижнего предела листа не работает правильно - Android

Я работаю с нижним листом, и он отлично работает, если я не добавляю верхний край.

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

<RelativeLayout
    android:id="@+id/rl_bottom_sheet"
    android:layout_width="match_parent"
    android:layout_height="280dp"
    android:margin_top="60dp"
    app:behavior_peekHeight="80dp"
    app:behavior_hideable="false"
    app:layout_behavior="@string/bottom_sheet_behavior"
    android:background="@drawable/ic_camera">

Когда нижний лист сдвинут вниз, разницы больше нет, а над окном становится равным peekHeight + marginTop

Перед расширением

How should I fix it?

Свернувшись после однократного расширения

enter image description here

4b9b3361

Ответ 1

Один из вариантов - использовать Toolbar вместо добавления поля в BottomSheet. Вы можете поместить это внутри CoordinatorLayout вверху, чтобы он находился за BottomSheet. Убедитесь, что представление, которое имеет значение BottomSheetBehavior находится в нижней части макета и имеет более высокую высоту, чем Toolbar.

Ответ 2

Я могу предложить вам изменить корневой макет - с CoordinatorLayout на любой другой (относительный/линейный и т.д.). И после этого вы можете добавить свой CoordinatorLayout в новую корневую ViewGroup с нужным marginTop.

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="80dp"