Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)
最近项目中有一个编辑框,下面是个ListView。在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击。这样的体验效果很不好。于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏。
网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) 隐藏键盘;
的方法并没有用,于是便从官方文档着手。
发现InputMethodManager有一个方法isActive(View view):如果view是输入法的活动view,则返回true。也就是说,如果是由view触发弹出软键盘,则返回true。哇,那问题就好办了
if(isActive(edittext)) 隐藏键盘
接着让另一个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判断软键盘弹出并隐藏的简单完美解决方法(推荐)全部内容了,希望大家多多支持脚本之家~
相关文章
Android读取本地json文件的方法(解决显示乱码问题)
这篇文章主要介绍了Android读取本地json文件的方法,结合实例形式对比分析了解决显示乱码问题的方法,需要的朋友可以参考下2016-06-06
Android Manifest中meta-data扩展元素数据的配置与获取方式
这篇文章主要介绍了Android Manifest中meta-data扩展元素数据的配置与获取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-03-03
Android使用JobScheduler定期推送本地通知实例代码
本篇文章主要介绍了Android使用JobScheduler定期推送本地通知实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
android studio安装时 AVD出现问题如何快速解决
这篇文章主要介绍了安装android studio时 AVD出现问题如何快速处理,其实解决方法也很简单,文中通过截图的形式给大家及时的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下2020-03-03
Android CardView+ViewPager实现ViewPager翻页动画的方法
本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-06-06
详解Android中提示对话框(ProgressDialog和DatePickerDialog和TimePickerDi
这篇文章主要介绍了详解Android中提示对话框(ProgressDialog和DatePickerDialog和TimePickerDialog&PopupWindow)的相关资料,需要的朋友可以参考下2016-01-01


最新评论