У меня такой фрагментный макет.
<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
).