我有这样的片段布局。
<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
的高度)。
答案 0 :(得分:-1)
我设法通过编辑BottomSheetBehavior
的来源来解决此问题。
我的解决方案有点小巧。如果需要修改班级,请发送电子邮件。