我有一个正在使用主题的活动。对话框样式,使其成为另一个活动上方的浮动窗口。但是,当我在对话框窗口外(在后台活动上)单击时,对话框关闭。我怎样才能阻止这种行为?
当前回答
在jetpack组合中,使用遣散onclickoutside = false属性来防止关闭。
AlertDialog(
title = {
Text("Title")
},
text = {
Text(text = name)
},
onDismissRequest = onDismiss,
confirmButton = {
TextButton(onClick = onDismiss ) {
Text("Yes")
}
},
dismissButton = {
TextButton(onClick = onDismiss ) {
Text("Cancel")
}
},
properties = DialogProperties(
dismissOnClickOutside = false
)
)
}
其他回答
我也面临着同样的问题。为了处理它,我设置了一个对话框的OntouchListener,在里面什么都不做。但旋转屏幕时对话框也会消失。为了解决这个问题,我设置了一个变量来告诉我对话框是否正常解散。然后我设置了一个OnDismissListener到我的对话框,在里面我检查变量。如果对话框正常解散,我什么都不做,否则我再次运行对话框(并将他的状态设置为在我的情况下解散时)。
对于API > 11使用setFinishOnTouchOutside(false),不要担心,因为它是android的默认行为,活动主题对话框不会在API < 11的外部触摸中完成:)!!
警告对话框已弃用,因此使用对话框对话框=新对话框(此);
防止外界接触
dialog.setCanceledOnTouchOutside(false);
简单地说,
alertDialog.setCancelable(false);
防止用户在对话框外单击。
Dialog dialog = new Dialog(context)
dialog.setCanceledOnTouchOutside(true);
//use this to dismiss the dialog on outside click of dialog
dialog.setCanceledOnTouchOutside(false);
//use this for not to dismiss the dialog on outside click of dialog.
观看这个链接了解更多关于对话的细节。
dialog.setCancelable(false);
//used to prevent the dismiss of dialog on backpress of that activity
dialog.setCancelable(true);
//used to dismiss the dialog on onbackpressed of that activity
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 碎片中的onCreateOptionsMenu
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?