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.
- STATE_HIDDEN 和 STATE_COLLAPSED 有什么区别?我到处搜索视觉解释,但找不到。这个'intermediate'状态是折叠状态吗?即使我在 xml 和 skipCollapsed="true"?
中设置了 peekHeight="0"
- xml 中的 peekHeight 和 skipCollapsed 究竟做了什么?
- 如何让它始终完全可见或完全隐藏并避免这种 'intermediate' 状态?
编辑:BottomSheet 中有一个 TextView,上面有一个 OnClickListener。当我单击它时,BottomSheet 也会进入 'intermediate' 状态,即使 OnclickListener 没有调用 setState 或任何与 BottomSheet 相关的东西。
将我的 support:design 库更新到 25.3.1,它开始按预期工作。
我正在尝试创建一个完全展开或完全不可见的底页 - 我不希望它位于中间或窥视的任何位置。
这是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.
- STATE_HIDDEN 和 STATE_COLLAPSED 有什么区别?我到处搜索视觉解释,但找不到。这个'intermediate'状态是折叠状态吗?即使我在 xml 和 skipCollapsed="true"? 中设置了 peekHeight="0"
- xml 中的 peekHeight 和 skipCollapsed 究竟做了什么?
- 如何让它始终完全可见或完全隐藏并避免这种 'intermediate' 状态?
编辑:BottomSheet 中有一个 TextView,上面有一个 OnClickListener。当我单击它时,BottomSheet 也会进入 'intermediate' 状态,即使 OnclickListener 没有调用 setState 或任何与 BottomSheet 相关的东西。
将我的 support:design 库更新到 25.3.1,它开始按预期工作。