了解BottomSheet行为折叠与隐藏

时间:2016-09-14 07:32:02

标签: android bottom-sheet

我的底页的高度和宽度设置为match_parent。因此,当按下按钮时,我将行为设置为STATE_EXPANDED,如下所示:

mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);

我的底片定义如下:

    <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 Callbacks监视状态。

  • 我点击一个按钮,底部工作表扩展到全屏。
  • 其当前状态为STATE_EXPANDED
  • 我快速向下滑动底部的纸张。 (完全拖动直到它关闭,简单地向下滑动就像滚动一样)
  • 它在中间停止,其状态记录为STATE_COLLAPSED
  • 如果我再次滑动,它就会消失,状态为STATE_HIDDEN

我不明白为什么它会停在中间。如何通过一次滑动隐藏它。

我尝试将peek_height设置为0dp。这样,它永远不会遇到STATE_HIDDEN。隐藏时,其状态变为STATE_COLLAPSED。我只是不了解这些状态。

如何通过一次向下滑动来实现STATE_HIDDEN

1 个答案:

答案 0 :(得分:10)

有点迟到但我在搜索类似的东西时偶然发现了这一点。

这是跳过崩溃状态的方法:

在XML中将app:behavior_skipCollapsed="true"添加到BottomSheet视图。

以编程方式setSkipCollapsed(boolean)