您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
用代码实现安卓EditText自动聚焦并弹出软键盘
发布时间:2021-07-19 21:17:54编辑:雪饮阅读()
像是这个文字水印区域,这里这个水印区域是用editText实现的,那么由于默认来说这个东西在我这个情况下,是没有自动聚焦和弹出软键盘的。
在我的业务需求中,用户如果选择了一个视频,那么要在这个视频中添加水印,则这个editText肯定必须要视频选择完成,一般在视频播放时候就可以让文字水印可编辑区域显示出来并且自动聚焦,并且自动弹出软键盘。
那么,对于这个需求来说,自动聚焦一般很容易,一般如:
watermark_edit.setFocusable(true);
watermark_edit.setFocusableInTouchMode(true);
watermark_edit.requestFocus();
watermark_edit.setFocusableInTouchMode(true);
watermark_edit.requestFocus();
这样就可以实现了。
但是这样只是聚焦了,而用户软键盘没有弹出来。
所以这里需要还要用户软件盘弹出来,那么其实现如:
watermark_edit.setFocusable(true);
watermark_edit.setFocusableInTouchMode(true);
watermark_edit.requestFocus();
InputMethodManager inputManager =(InputMethodManager)watermark_edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(watermark_edit, 0);
据网上资料说明,说是这个软键盘弹出一般要做比如毫秒级别的延迟,再执行,那么比如一般就结合handler来实现,但是呢,我这里是直接添加代码在videoview的准备回调中即onPrepared中,所以也算是一种延迟了,所以就这样实现了需求。
虽然后面这个需求我又不想要了,但是经验嘛还是总结下来,以便后续的使用。
关键字词:EditText,聚焦,自动聚焦,软键盘,键盘