文 | Promise Sun
一、描述:
1. 场景:
很多时候,带EditText的自定义对话框,需要实现在弹出对话框的同时自动弹出输入软键盘。
2. 分析:
以前记录过一篇文章:
《如何设置底部控件view随着软键盘的弹出而上移_Android基础篇(Java)》(感兴趣的朋友可以点击此处查看实现方式),
是需要点击EditText才弹出输入软键盘,并未实现随着对话框的显示而自动弹出输入软键盘。
若希望实现随着对话框的显示而自动弹出软键盘,其实也并不难。只需要先给EditText设置焦点,然后设置软键盘,最后再给软键盘设置一个延时功能,使对话框弹出来以后再让软键盘自动弹出来。这个延时的时间设置只要不是0,其他任意毫秒值都没问题,具体实现效果,大家可以自测试试,根据实际的项目需要效果去实现就可以了。
二、功能实现:
1. 首先在清单文件 AndroidManifest.xml 中给 对话框所在的Activity设置属性:
android:windowSoftInputMode="adjustPan"
2. 在自定义的对话框中加入以下代码即可。
//这里的editText是自定义对话框布局中的EditText
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
editText.requestFocus();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//此处activity为对话框所在Activity类
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
}
}, 100);//这里的100是设置的延时时间毫秒值,可按需要自行更改
与此文相关联的文章:《如何设置底部控件view随着软键盘的弹出而上移_Android基础篇(Java)》
版权声明:本文为博主原创文章,转载请点赞此文并注明出处,谢谢!