调用Dialog的dismiss()方法的方式:
1. 重写Dialog的onKeyDown()方法里进行调用:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(Constant.TAG,"dialog onKeyDown");
if(keyCode == KeyEvent.KEYCODE_BACK) {
dismissOut();
return true;
}
return super.onKeyDown(keyCode, event);
}
会出现的问题:如果用一直按住Back键,则会一直调用dismissOut方法,会让退出动画不停的执行。
2. 重写Dialog的onKeyUp()方法里进行调用:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.d(Constant.TAG,"dialog onKeyDown");
if(keyCode == KeyEvent.KEYCODE_BACK) {
dismissOut();
return true;
}
return super.onKeyUp(keyCode, event);
}
会出现的问题:用户按下Back键,退出的Dialog出来,用户松开Back键,退出的Dialog就会马上消失
3. 重写Dialog的onBackPressed()方法里进行调用:
@Override
public void onBackPressed() {
Log.d(Constant.TAG,"dialog onKeyDown");
dismissOut();
}
这样就没有问题了。
其实onBackPressed()方法也是在onKeyUp方法里进行调用的,只是做了判断,代码如下:
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
&& !event.isCanceled()) {
onBackPressed();
return true;
}
return false;
}
分享到:
相关推荐
主要介绍了dialog dismiss时键盘不消失的问题浅析及两种解决方法,非常不错,具有参考借鉴价值,需要的朋友参考下
VB菜单制作 调用commondialog
c++如何调用com组件工程,对话框工程如何调用一个ocx库。
vb 调用commondialog保存文件方法和批量Ascii码转换
easyUi弹出window窗口传值与调用父页面的方法,子页面给父页面赋值,详情链接:
代码基于dialog写的,进场出场动画,基本需求设置
dialog库,可以在任意类内调用,子线程或ui线程内均可显示
在调用dialog的时候得到dialog对象,加入资料中代码,可以控制dialog的按钮在什么时候消失,而不是系统默认的点击消失
本资源为本人博客《Android五种显示Dialog的方法实现(附图+附源码)》使用的代码,里面含五种实现Dialog的方法,感兴趣的可以看看
VC++基于dialog的简单的线程使用方法示例,利用互斥进行线程间的通信。
实现了各种Dialog,编写了对话框数据回调接口,封装了一些方法,调用这些方法就可以很方便地生成想要的对话框。
...
...
各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果以及各种dialog样式各种android弹出dialog效果...
不用CommonDialog控件,使用API调用颜色对话框 VB源码(4KB)
一个类实现Android弹出dialog,调用相册,相机截图功能
自定义一个Dialog中播放视频,主要用到SurfaceView进行播放SDcard中的视频文件。可以对播放进行简单的操作,如:播放、暂停、进度条显示、推拽。另外需要的功能完全可以根据自己的需求添加。
commondialog控件 vb中commondialog控件的使用方法 vb中commondialog控件的使用方法
各种Dialog的实现方法,及设置监听方式
需求描述: 需求描述:官方文档又是组件调用方式,又是函数调用方式。 我就需要一个很简单的:点击...van-dialog v-model=showDialog title=提示 show-cancel-button :before-close=onBeforeClose @confirm=hand