在Android应用开发中,对于一些编辑内容界面,比如信息编辑或者搜索框等,在进入界面时虽然已经requestFocus了,但是想用户体验更好,还会直接展示软键盘,而不是等用户点击了再弹出软键盘,能让用户少操作一次就少操作一次,在这里分享下方法。
直接上代码:
Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { editText.requestFocus(); InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } }, 500);
注意:为什么要用Timer,原因是弹出软键盘,必须输入框已经渲染完成了,而且要获取到焦点,在实际过程中需要监听相关的渲染完成方法,而且不一定生效,因此使用Timer延时执行,如果界面加载比较慢,也可以考虑增加延时。
有其他更好的办法欢迎交流沟通。