我有一个底部弹出面板,它的高度和宽度设置为match_parent
。所以当按钮被点击时,我将其行为设置为STATE_EXPANDED
,如下:
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
以下是我的Bottomsheet定义:
<FrameLayout
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:elevation="@dimen/design_appbar_elevation"
app:behavior_hideable="true"
app:layout_behavior="@string/bottom_sheet_behavior">
<include
android:id="@+id/bottom_sheet_content"
layout="@layout/bottomsheet_layout" />
</FrameLayout>
我正在使用BottomSheet回调来监视状态。
- 我点击一个按钮,底部工作表就会展开到全屏。
- 它的当前状态为
STATE_EXPANDED
- 我快速向下滑动底部工作表。(不要完全拖到关闭,只需像滚动一样简单地向下滑动)
- 它停在中间,其状态被记录为
STATE_COLLAPSED
- 如果我再次滑动,它就会消失,其状态为
STATE_HIDDEN
我不明白为什么它会停在中间。如何通过一次向下滑动将其隐藏。
我尝试通过将peek_height
设置为0dp
来实现此目的。这样,它就永远不会遇到STATE_HIDDEN
。当隐藏时,它的状态变为STATE_COLLAPSED
。我只是不理解这些状态。
如何通过一次向下滑动来实现STATE_HIDDEN
?