Android 防止在触摸自由区域时关闭DialogFragment

Android 防止在触摸自由区域时关闭DialogFragment,android,android-dialogfragment,android-architecture-navigation,Android,Android Dialogfragment,Android Architecture Navigation,默认情况下,当显示对话框片段时,会显示一个大的未占用区域,该区域带有半透明覆盖层。当用户触摸此按钮时,对话框片段被解除。我如何防止这种行为?请注意,我仍然希望用户能够使用system back按钮关闭对话框 我已经试过了 isCancelable = false // set inside my DialogFragment 在这种情况下,对话框片段在触摸空闲区域时不会被取消,这正是我想要的。然而,作为一个负面的副作用,系统后退按钮也停止工作。那么,如何在触摸空闲区域时仅禁用关闭对话框,但同时

默认情况下,当显示
对话框片段
时,会显示一个大的未占用区域,该区域带有半透明覆盖层。当用户触摸此按钮时,
对话框片段
被解除。我如何防止这种行为?请注意,我仍然希望用户能够使用system back按钮关闭对话框

我已经试过了

isCancelable = false // set inside my DialogFragment
在这种情况下,
对话框片段
在触摸空闲区域时不会被取消,这正是我想要的。然而,作为一个负面的副作用,系统后退按钮也停止工作。那么,如何在触摸空闲区域时仅禁用关闭对话框,但同时仍保持系统返回按钮处于启用状态

提示:我正在使用Android导航组件(最新的
2.3.0-alpha04

您应该使用:

setCanceledOnTouchOutside(false)

谢谢,行得通。对其他人的提示:这需要在创建的对话框上设置,例如,
DialogFragment.onCreateDialog
,而不是在
DialogFragment
本身(不可用的地方)