时间:2021-05-19
问题:
今天公司项目处理一个软键盘弹出的逻辑,要求点击按钮之后弹出软键盘。
实现代码如下:
//获取焦点 editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus();//弹出软键盘 InputMethodManager imm = (InputMethodManager) editText.getContext( ).getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText,0);在正常的一个activity按照上面是可以实现的,但是我遇到的问题是加载数据显示之后点击按钮改变了布局的显示状况,然后再想弹出软键盘,但是一直无法弹出键盘
通过查阅网上资料,给出的解析是在布局加载的过程中是无法弹出软键盘的,所以需要适当的延迟一下软键盘的弹出
最终代码如下:
//获取焦点 editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus();//延迟弹出软键盘 Timer timer = new Timer(); timer.schedule(new TimerTask(){ @Override public void run() { InputMethodManager imm = (InputMethodManager) editText.getContext( ).getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText,InputMethodManager.SHOW_FORCED); } }, 300);使用上面代码就实现了强制弹出软键盘的问题.
另附其他软键盘常用方法:
1.如果软键盘已弹出则隐藏,反之弹出.
2.隐藏软键盘
InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE ); if ( imm.isActive( ) ) { imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 );3.显示软键盘
ps:其实通过系统服务取得的InputMethodManager 应该需要判断是否为null,这里偷懒了,大家记得判断一下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android设置Edittext获取焦点并弹出软键盘/***EditText获取焦点并显示软键盘*/publicstaticvoidshowSoftInput
本文实例讲述了Android软键盘弹出时的界面控制方法。分享给大家供大家参考,具体如下:有时候androidactivity弹出软键盘后布局改变下面有三种模式可
经验须知弹出软键盘时:ios端$(‘body').scrollTop()会改变android端$(window).height()会改变拉起键盘不是一瞬间,而是
Android软键盘状态并隐藏输入法的实例1软键盘状态的切换2强制隐藏输入法键盘MainActivity如下:packagecc.c;importandroid
键盘大家都知道,那么什么是软键盘呢?软键盘就是电脑上所带有的一种键盘,在你的键盘不能使用的时候,可以用软键盘取代,因为操作软键盘的是鼠标。使用软键盘可以有效