安卓dialog,屏蔽返回键,亲测可用
2019-01-20 本文已影响6人
神经病人思路广
最近做一个商品选择套餐的功能,需要一个dialog进行翻页,然后按了返回键,dialog全部关闭了,这就很难受了,于是网上搜了一下,也试了很多,都不是想要的效果,突然想到按两下返回键退出app,刚好和这个功能相似,于是试了,果然成功,代码如下:
var dismissTime = 0L
dialog.setOnKeyListener { dialog, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (!mNestedScrollView.isVisible) {
//按下返回键,返回上一页
} else {
//按下返回键的同时会多次调用onkeyListener方法,所以这里用
//时间做判断
if ((System.currentTimeMillis() - dismissTime) > 500) {
dialog.dismiss()
}
}
dismissTime = System.currentTimeMillis()
return@setOnKeyListener true
} else {
return@setOnKeyListener false
}
}
只需要上面这段代码,不需要其他操作,比如setCancel等等网上的其他方法