bottomsheet 停在 EXPANDED 和 HIDDEN 之间

bottomsheet stops between EXPANDED and HIDDEN

我正在尝试创建一个完全展开或完全不可见的底页 - 我不希望它位于中间或窥视的任何位置。

这是xml:

<LinearLayout
        android:id="@+id/bottom_sheet"
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:layout_gravity="center_horizontal"
        android:background="@android:color/holo_blue_bright"
        android:clipToPadding="true"
        android:orientation="vertical"
        android:elevation="10dp"
        app:behavior_peekHeight="0dp"
        app:behavior_hideable="true"
        app:behavior_skipCollapsed="true"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

        <TextView
            android:id="@+id/delete_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@color/cinza3"
            android:text="clear/delete Q"/>
</LinearLayout>

在我的代码中有以下方法:

private void showHideBottomSheet() {
        if (mBSBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
            showBottomSheet();
        } else {
            hideBottomSheet();
        }
    }


    private void showBottomSheet() {
        mBSBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
    }


    private void hideBottomSheet() {
        mBSBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
    }

在我的布局中,有一个按钮在单击时会调用 showHideBottomSheet()。

当我点击按钮时,一切正常,底页是 shown/hidden。但是,如果它已扩展并且我单击代码中其他地方的文本视图(底部表之外),例如,底部表会向下移动一点,但不会完全向下移动 - 它的上半部分是可见的,但如果我记录它的状态,它是 STATE_EXPANDED.

  1. STATE_HIDDEN 和 STATE_COLLAPSED 有什么区别?我到处搜索视觉解释,但找不到。这个'intermediate'状态是折叠状态吗?即使我在 xml 和 skipCollapsed="true"?
  2. 中设置了 peekHeight="0"
  3. xml 中的 peekHeight 和 skipCollapsed 究竟做了什么?
  4. 如何让它始终完全可见或完全隐藏并避免这种 'intermediate' 状态?

编辑:BottomSheet 中有一个 TextView,上面有一个 OnClickListener。当我单击它时,BottomSheet 也会进入 'intermediate' 状态,即使 OnclickListener 没有调用 setState 或任何与 BottomSheet 相关的东西。

将我的 support:design 库更新到 25.3.1,它开始按预期工作。