我有一个关于底部菜单的问题,因为当我打开该活动时,它会挡住视图。我认为这是由于XML属性声明了底部菜单的高度为350dp所致。
事实上,我无法将该值更改为0dp,因为下一次尝试打开底部菜单时,由于高度为0dp,所以不会显示任何内容,导致底部菜单不存在。我的问题是,是否有一种方法可以声明底部菜单关闭?(我已经尝试将setState设置为STATE_COLLAPSED,但没有效果)。以下是与底部菜单交互的Java代码:JAVA:
![在此输入图片描述](https://istack.dev59.com/b60r8.webp)
<android.support.v4.widget.NestedScrollView
android:id="@+id/bottom_sheet"
android:layout_width="match_parent"
android:layout_height="350dp"
android:background="?android:attr/windowBackground"
android:clipToPadding="true"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
事实上,我无法将该值更改为0dp,因为下一次尝试打开底部菜单时,由于高度为0dp,所以不会显示任何内容,导致底部菜单不存在。我的问题是,是否有一种方法可以声明底部菜单关闭?(我已经尝试将setState设置为STATE_COLLAPSED,但没有效果)。以下是与底部菜单交互的Java代码:JAVA:
View bottomSheet = findViewById( R.id.bottom_sheet );
mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_COLLAPSED) {
//mBottomSheetBehavior.setPeekHeight(0);
//mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
//mBottomSheetBehavior.isHideable();
}
}
@Override
public void onSlide(View bottomSheet, float slideOffset) {
}
});