BottomSheetBehavior padding - PullRequest
       35

BottomSheetBehavior padding

0 голосов
/ 18 января 2019

У меня такой фрагментный макет.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorBackgroundBlack">

    <MyCustomView
        android:id="@+id/vBottomSlider"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior" />

</android.support.design.widget.CoordinatorLayout>

Для моего vBottomSlider я создаю BottomSheetBehavior экземпляр:

val bh = BottomSheetBehavior.from(vBottomSlider)
bh.isHideable = false
bh.peekHeight = 50.dpToPx
bh.setBottomSheetCallback(mBottomCallback)

Это все внутри фрагмента.

Макет моей основной деятельности выглядит так:

<android.support.constraint.ConstraintLayout
        android:id="@+id/vMainConstraint"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

     <FrameLayout
            android:id="@+id/fContent"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

     <com.aurelhubert.ahbottomnavigation.AHBottomNavigation
            android:id="@+id/vNavigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent" />

</android.support.constraint.ConstraintLayout>

Для моего fContent я установил нижнюю padding как vNavigation высоту. Когда я прокручиваю вниз по своему vBottomSlider, я скрываю vNavigation, изменяя его translationY, и устанавливаю padding для моего fContent (принимая onSlide событие из BottomSheetBehavior.BottomSheetCallback).

Скользит пальцем полностью, отлично работает. Но когда я fling или установил EXPANDED или COLLAPSED состояние программно для моего BottomSheetBehavior экземпляра, он не прокручивается полностью. Здесь всегда есть место (кажется, это высота моего vNavigation).

1 Ответ

0 голосов
/ 28 января 2019

Мне удалось решить эту проблему, отредактировав источник BottomSheetBehavior. Мое решение немного хакерское. Отправьте электронное письмо, если вам нужен отредактированный класс.

...