时间:2021-05-20
最近项目中有一个编辑框,下面是个ListView。在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击。这样的体验效果很不好。于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏。
网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断
的方法并没有用,于是便从官方文档着手。
发现InputMethodManager有一个方法isActive(View view):如果view是输入法的活动view,则返回true。也就是说,如果是由view触发弹出软键盘,则返回true。哇,那问题就好办了
接着让另一个view强制获取焦点,这样isActivite(ediitext)就为false.
这个方法比较简单,代码比较短,也很好理解,希望能够帮助有需要的人,也不枉费我调试几个小时的功夫。
附上代码:
InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){ if(inputMethodManager.isActive(searchEditText)){<br> //因为是在fragment下,所以用了getView()获取view,也可以用findViewById()来获取父控件 getView().requestFocus();//使其它view获取焦点.这里因为是在fragment下,所以便用了getView(),可以指定任意其它view inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); return true; } return false; }ps: 如果是手动弹出键盘,getActivity().getCurrentFocus()改成searchEditText.并且手动弹出的键盘isActivie()失效,可用标记来判断.
以上就是小编为大家带来的Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)全部内容了,希望大家多多支持~
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android设置Edittext获取焦点并弹出软键盘/***EditText获取焦点并显示软键盘*/publicstaticvoidshowSoftInput
Android软键盘状态并隐藏输入法的实例1软键盘状态的切换2强制隐藏输入法键盘MainActivity如下:packagecc.c;importandroid
Android中隐藏显示键盘操作:隐藏键盘:/***隐藏软键盘*/publicstaticvoidhideSoftInputMethod(Activityact
本文实例讲述了Android软键盘弹出时的界面控制方法。分享给大家供大家参考,具体如下:有时候androidactivity弹出软键盘后布局改变下面有三种模式可
隐藏软键盘一直是我头痛的事情,没有找到一种真正能隐藏的方法。点击EditText的时候总是弹出软键盘。-----杯具杯具(一):InputMethodManag