单击按钮时,屏幕上会显示一个BottomSheetDialogFragment
,但是当我在窗口上触摸外部时,它会被关闭。
有没有办法像使用api setCanceledOnTouchOutside
进行对话框一样禁用它。我尝试在我的课程的setCanceledOnTouchOutside = false
方法中使用onCreateDialog
设置(扩展了BottomSheetDialogFragment
),但没有成功。
答案 0 :(得分:0)
我建议在setCancelable
中将其设置为false,它将为您服务
BottomSheetDialogFragment btmSheetDialog = new BottomSheetDialogFragment();
btmSheetDialog.setCancelable(false);
btmSheetDialog.show(getChildFragmentManager(), btmSheetDialog.getTag());
答案 1 :(得分:0)
您必须像下面这样
val bottomSheetDialogFragment = BottomSheetDialogFragment()
bottomSheetDialogFragment.isCancelable = false
bottomSheetDialogFragment.show(supportFragmentManager, bottomSheetDialogFragment.tag)
答案 2 :(得分:0)
基于DialogFragment文档
控制显示的对话框是否可取消。使用它而不是直接调用Dialog.setCancelable(boolean)
,因为DialogFragment需要基于此更改其行为。
Params:
cancelable – If true, the dialog is cancelable. The default is true.
您可以尝试以下方法:
在科特林
val switchAccountBottomSheet = SwitchAccountBottomSheet()
switchAccountBottomSheet.isCancelable = false
switchAccountBottomSheet.show(getActivity().getSupportFragmentManager(), SwitchAccountBottomSheet.class.getName());
在Java中
SwitchAccountBottomSheet mSwitchAccountBottomSheet = new SwitchAccountBottomSheet();
mSwitchAccountBottomSheet.setCancelable(false);
mSwitchAccountBottomSheet.show(getActivity().getSupportFragmentManager(), SwitchAccountBottomSheet.class.getName());