理解BottomSheet的行为:折叠与隐藏

11

我有一个底部弹出面板,它的高度和宽度设置为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

1个回答

15

我有些晚了,但我在搜索类似的东西时偶然发现了这个。

这是如何跳过折叠状态的方法:

在XML中向BottomSheet视图添加app:behavior_skipCollapsed="true"

或者

通过setSkipCollapsed(boolean)进行编程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接