Android填坑之旅(第十四篇)关于软键盘弹出未及时隐藏导致自定义View的onMeasure方法测量错误引发的血案
2017-08-29 18:43
281 查看
大家好我是涛仔,我今天将项目中碰到九宫格解锁的Bug,及其发生的场景和解决方案给大家分享一下,其中受到@不知叫什么名字的细心帮助与指点在此尤为感谢!
1.Bug及发生场景我做的这个项目在用户登录App之后,静置10分钟之后再次请求接口,后台就会报登录超时,就会回到九宫格界面重新登录,场景是这样的,用户在带有输入框的Activity中并且输入内容,此状态下软键盘是弹出的,把App应用按Home退到后台,我们通过DDMS中的stop按钮模拟进程杀死,在回到App应用,后台会返回登录超时,这时就回到九宫格界面,这时我们会发现九宫格界面会变得特别特别的小。
2.解决方案
相比读者也猜到问题所在了吧!出现此问题的原因是这样的,在旧Activity(B)中要回到新Activity(A)中在不做任何处理的情况下,旧Activity(B)的软键盘关闭不及时,导致回到Activity(A)中还会驻留Activity(B)的软键盘导致Activity(A)中九宫格绘制出现问题(出现问题的原因就是Activity(A)中自定义ViewGroup九宫格在测量的时候会去掉软键盘的高度,从而使得展示的九宫格界面特别小)
/** @Override protected void onPause() { super.onPause(); /** * create by wangtaotao * 此方法为了防止应用被回收之后或者登陆超时之后,导致九宫格解锁测量出现问题 */ KeyBoardUtils.hideInputForce(this); }
我的解决方案就是以上代码块,只不过写在BaseActivity中。
关于软键盘的问题请参考以下博文,讲的非常细致,大家抽出其中的重点,就可以用到自己的项目中
CSDN传送门
其中抽取比较好的例子
相关文章推荐
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- android 自定义View之View的测量(onMeasure()方法)
- Android中Dialog中自定义EditView导致软键盘无法弹出
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- 【Android】自定义带进度条的WebView,修复不弹出软键盘的BUG
- 解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- 解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
- android 隐藏以及显示软键盘以及不自动弹出键盘的方法
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- [Android自定义View] 计算View尺寸方法onMeasure()
- android隐藏以及显示软键盘以及不自动弹出键盘的方法
- Android:View的测量/onMeasure()方法解析
- Android隐藏以及显示软键盘以及不自动弹出键盘的方法
- 解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
- 关于Android 尝试在onCreate方法内测量view的宽高的测试
- 解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
- 解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
- 关于android自定义view的方法