防止在触摸空闲区域时关闭 DialogFragment

Prevent DialogFragment from being dismissed when the free area is touched

默认情况下,当显示 DialogFragment 时,会显示一个大的未被占用的区域,并带有半透明覆盖层。当用户触摸它时,DialogFragment 被关闭。我怎样才能防止这种行为?请注意,我仍然希望用户能够使用系统后退按钮关闭对话框。

我已经试过了

isCancelable = false // set inside my DialogFragment

在这种情况下,当有人触摸自由区域时,DialogFragment 不会消失,这正是我想要的。然而,作为负面影响,系统后退按钮也会停止工作。那么,如何在触摸空闲区域时仅禁用关闭对话框,同时仍然启用系统后退按钮?

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

你应该使用这个:

setCanceledOnTouchOutside(false)