通常我们使用InputMethodManager来处理应用中软键盘的操作,定义如下:
private InputMethodManager mInputMethodManager;
mInputMethodManager = (InputMethodManager)
mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
今天要说的是Dialog中有关软键盘的处理:
在Dialog中,如果有EditText输入框,那么在弹出软键盘的时候,点击其他按钮,想使Dialog隐藏,Dialog隐藏后,键盘是不会自动消失的;需要我们代码上控制下,在添加以下代码时需要有一个注意的地方:
mInputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
隐藏键盘的方法一定要在dismiss()之前使用,否则不会起作用,原因是键盘所依附的view已经销毁了,在对其操作就不会有回应;
另外,假如Dialog键盘处于显示状态,这时我们点击空白处,会调用OnCancelListener或OnDismissListener,在这些监听的回调方法中,我们使用上面的代码是键盘隐藏,是不起作用的,原因同样是因为在这些监听的回调方法中,Dialog已经dismiss了,也就是软键盘所依附的View已经销毁;所以,我们可以在自定义的View extends Dialog的onTouchEvent方法中添加隐藏键盘的代码;
Android开发技术点6——Dialog 键盘处理
最新推荐文章于 2024-07-09 17:34:23 发布