解决dialog中嵌套EditText,自动弹出软键盘的问题
2017-02-17 11:48
302 查看
1.解决无法弹出输入法:
问题:自定义了一个dialog,无法自动弹出软键盘,影响体验。
2.可以弹出输入法了,但了为了增强用户体验性,当dialog中含有editText时应该,在显示dialog的同时自动弹出键盘:
(1) 可以在自定义的dialog中增加如下方法:
public void showKeyboard() {
if(editText!=null){
//设置可获得焦点
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
//请求获得焦点
editText.requestFocus();
//调用系统输入法
InputMethodManager inputManager = (InputMethodManager) editText
.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
}
其中editText为自定义dialog中的输入框的view
(2) 在dialog.show()后,调用这个方法显示输入法,由于在调用时可能dialog界面还未加载完成,editText 可能还为空,所以需要加上一个延时任务,延迟显示:
dialog.show();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
}, 200);
问题:自定义了一个dialog,无法自动弹出软键盘,影响体验。
2.可以弹出输入法了,但了为了增强用户体验性,当dialog中含有editText时应该,在显示dialog的同时自动弹出键盘:
(1) 可以在自定义的dialog中增加如下方法:
public void showKeyboard() {
if(editText!=null){
//设置可获得焦点
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
//请求获得焦点
editText.requestFocus();
//调用系统输入法
InputMethodManager inputManager = (InputMethodManager) editText
.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
}
其中editText为自定义dialog中的输入框的view
(2) 在dialog.show()后,调用这个方法显示输入法,由于在调用时可能dialog界面还未加载完成,editText 可能还为空,所以需要加上一个延时任务,延迟显示:
dialog.show();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override public void run() { dialog.showKeyboard(); }
}, 200);
相关文章推荐
- 解决含EditText页面的软键盘自动弹出问题
- 解决在自定义AlertDialog中EditText无法弹出软键盘的问题
- 解决Dialog中有EditText时无法自动弹出输入的问题
- [Android]去除EditText自动获得的焦点,解决软键盘弹出问题
- 安卓EditText有时点击后无法自动弹出键盘的解决办法;TextWatcher多次调用问题
- activity中界面中edittext自动获取焦点(软键盘弹出)解决
- 界面底部的edittext被弹出的软键盘覆盖的问题解决方法
- EditText 自动弹出软键盘接收输入问题
- 进入Acivity后EditText自动聚焦,自动弹出软键盘的问题
- 自定义dialog中Edittext自动弹出输入法问题
- 关于页面有EditText,取消自动弹出软键盘方法解决。记录罢了。
- 解决点击edittext,弹出软键盘时布局往上顶的问题
- Dialog中EditText不能自动弹出输入法解决方法
- 解决点击edittext时有时无法弹出软键盘的问题
- Dialog 中有EditText时,打开自动弹出软键盘,关闭时隐藏软键盘
- 解决页面有EditText时,软键盘自动弹出
- 关于AlertDialog中嵌入Edittext无法弹出输入法的问题解决
- activity 第一个获取焦点的组件是 EditText 时,开启这个activity 时就会自动弹出软键盘问题
- 自定义AlertDialog,以及解决自定义Dialog中EditText不能弹出输入法的问题
- 解决初始界面后EditText自动获取焦点 弹出软键盘