我试图创建一个完全展开或完全看不见的底片 - 我不希望它在中间的任何地方或偷看。
这里是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。
编辑:BottomSheet中有一个TextView,而OnClickListener就在它上面。当我点击它时,BottomSheet转到那个&#39;中间&#39;也是状态,即使OnclickListener没有调用setState或与BottomSheet相关的任何内容。
答案 0 :(得分:1)
更新了我的支持:设计库到25.3.1,它开始按预期工作。