如何为Kotlin中的Anko Dialog设置setCancelable(false)?
解决Anko Dialog设置不可取消的问题
很简单,你只需要在Anko的alert构建器的lambda块中调用cancelable(false)方法,就能实现和代码B里setCancelable(false)完全一样的效果。修改后的代码A如下:
private fun deleteBackup(){ alert(getString(R.string.DialogDeleteContent), getString(R.string.DialogDeleteTitle)) { yesButton { // 你的按钮逻辑 } // 添加这一行,设置对话框不可取消 cancelable(false) }.show() }
补充说明:
- Anko为AlertDialog封装的
AlertDialogBuilder提供了cancelable()扩展方法,它的作用和原生Android的AlertDialog.Builder.setCancelable()完全对应。 - 传入
false后,对话框将无法通过点击外部区域、按下返回键等方式取消,只能通过你设置的按钮(比如这里的yesButton)来触发关闭逻辑。
内容的提问来源于stack exchange,提问作者HelloCW




