对话框自动弹出软键盘_Android基础篇(Java)

文 | 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)》


版权声明:本文为博主原创文章,转载请点赞此文并注明出处,谢谢!

你可能感兴趣的:(对话框自动弹出软键盘_Android基础篇(Java))