我已经实现了带有BottomSheetBehaviour
的布局,并将behavior_peekHeight
设置为300dp,behavior_hideable
设置为true
。
代码示例
<FrameLayout
android:id="@+id/sheet_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/map_view_height"
android:background="@color/white"
app:behavior_hideable="true"
app:behavior_peekHeight="300dp"
app:behavior_skipCollapsed="true"
app:layout_behavior="@string/bottom_sheet_behavior">
<include layout="@layout/sheet_content_layout"/>
</FrameLayout>
在这里,我可以通过拖动到底部来隐藏布局。但是一旦我将布局拖到底部,我就无法将其拖回原来的窥视高度。我该怎么做?
您不能使用多个peekHeight
BottomSheet
。这意味着您无法将BottomSheet
的高度设置为展开状态。至少,并非没有根据特定用例修改BottomSheetBehavior
类。这在这方面可能会有所帮助: 使用官方支持库 23.x.+ 底部像谷歌地图一样向上滑动图像
但是,如果您只想要一个高度为 100dp 的 bottomSheetView,该视图处于折叠状态,并且可以展开为全屏并拖动回 100dp,则可以使用默认行为。
<FrameLayout
android:id="@+id/sheet_layout"
android:layout_width="match_parent"
android:layout_height="@dimen/map_view_height"
android:background="@color/white"
app:behavior_peekHeight="100dp"
app:layout_behavior="@string/bottom_sheet_behavior">
<include layout="@layout/sheet_content_layout"/>
</FrameLayout>
您还可以查看今年在IO中引入的基于物理的动画。它有一个易于使用的FlingAnimation类,https://developer.android.com/topic/libraries/support-library/preview/fling-animation.html