我有一个 Bottom Sheet ,其高度和宽度设置为match_parent。因此,当单击按钮时,我将行为设置为STATE_EXPANDED,如下所示:

mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);

我的 Bottom Sheet 定义如下:
    <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回调监视状态。
  • 我单击一个按钮, Bottom Sheet 扩展到全屏。
  • 其当前状态是STATE_EXPANDED
  • 我迅速在 Bottom Sheet 格上向下滑动。 (直到完全关闭才完全拖动,像滚动一样简单向下滑动)
  • 它停在中间,其状态记录为STATE_COLLAPSED
  • 如果再次刷卡,一切都消失了,它的状态是STATE_HIDDEN

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

    我通过将peek_height设置为0dp进行了尝试。这样,它永远不会遇到STATE_HIDDEN。隐藏时,其状态变为STATE_COLLAPSED。我只是不明白这种状态。

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

    最佳答案

    Kinda很晚,但是我在寻找类似东西时偶然发现了这一点。

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

    在XML中,通过将app:behavior_skipCollapsed="true"添加到BottomSheet View 中。



    setSkipCollapsed(boolean)编程。

    10-07 19:34
    查看更多