因为项目中我统一更换了ActionBar,后来发现,个别页面,输入法弹出的时候,ActionBar消失了,(也不能说是消失,就是ActionBar的返回按钮和title都没有了),找了好久。一个偶然的机会,发现有一个页面的RecyclerVIew中,嵌套了EditText,发现输入的时候,RecyclerView的Item的padding属性就无效了。为了查找这个原因,我找到了Menifest文件,原来我为了禁止上来就弹出输入法使用了 windowSoftInputMode="stateHidden" ,问题就出现这里了。
因为EditText弹出输入法以后,会导致DecorView重新绘制,为了让窗口大小不变,同时为了保证输入的内容一致在输入法的上方显示,我们需要加上adjutsPan属性,这样就变成了windowSoftInputMode="stateHidden|adjustPan",就这样就解决了padding失效的问题了,同事,也将actionbar内容消失的问题解决了。
adjustPan
Activity 窗口(DecorView) 大小不变。当获取到焦点的 EditText 位于屏幕下方,软键盘弹出会遮挡到 EditText 时,整个 DecorView 会往上移动,至于上移多少并不确定。
一般是上移至使 EditText 刚好不被软键盘遮挡住为止。这个属性用的比较多,常常配合 ScrollView 来使用
本文详细介绍了在Android开发中遇到的ActionBar在输入法弹出时消失的问题及RecyclerView Item的padding属性失效的原因。通过调整Menifest文件中的windowSoftInputMode属性,添加adjustPan选项,成功解决了上述两个问题。
978

被折叠的 条评论
为什么被折叠?



