底部表格在EXPANDED和HIDDEN

时间:2017-07-25 14:53:49

标签: java android bottom-sheet

我试图创建一个完全展开或完全看不见的底片 - 我不希望它在中间的任何地方或偷看。

这里是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()。

当我点击按钮时,一切正常,底部显示/隐藏。但是,如果它是EXPANDED并且我点击了代码中其他地方的文本视图(底部图片外),例如,底部图片向下移动了一点,但不完全 - 它的上半部分是可见的,但是如果我记录了它的状态,它是STATE_EXPANDED。

  1. STATE_HIDDEN和STATE_COLLAPSED之间的区别是什么?我到处寻找一个视觉解释,但无法找到它。这是&#39;中间&#39;陈述崩溃的状态?即使我设置peekHeight =&#34; 0&#34;在xml和skipCollapsed =&#34; true&#34;?
  2. xml中peekHeight和skipCollapsed实际上做了什么?
  3. 如何让它在任何时候都完全可见或完全隐藏,并避免这种“中间”问题。状态?
  4. 编辑:BottomSheet中有一个TextView,而OnClickListener就在它上面。当我点击它时,BottomSheet转到那个&#39;中间&#39;也是状态,即使OnclickListener没有调用setState或与BottomSheet相关的任何内容。

1 个答案:

答案 0 :(得分:1)

更新了我的支持:设计库到25.3.1,它开始按预期工作。

相关问题