https://blog.csdn.net/xiaoguda1/article/details/52084248
遇到EditText被软件盘遮挡底部一部分的问题,能显示文字但是EditText被遮挡了一部分,解决方式记录下
1、EditText高度改成wrap_content,利用padding扩展EditText高度
2、利用windowSoftInputMode配合ScrollView解决
3、自定义EditText layerlist布局解决
4、监听View的高度变化,改变布局
1.问题描述:
项目中某个布局文件(布局相当复杂)添加EditText输入框,在清单文件对应activity中设置属性 android:windowSoftInputMode="adjustResize" ,弹出软件盘不存在遮盖问题。但是一旦给这个EditText设置背景之后就会出现EditText底部被遮盖的情况。如下图:
目前还没有找到原因。但是自己写demo时就不会出现遮盖的情况。

2.解决办法:
设置EditText的layer-list xml背景,如下:
原理:
EditText设置2层背景,底层背景正常大小,第二层背景设置 bottom = 10dp使第二层背景距离底部10dp,从而第二层背景不在被遮盖。
效果图如下:
最后:打完收工。
-------------以下内容为2018.05.21更新-----------------
很长时间过去了,又找到了一个方法防止键盘覆盖EditText底部一点点。
在res/drawable下创建 InsertDrawble bg.xml
android:drawable="@color/transparent"//被包裹的背景
android:insetLeft="0dp"//距离昨天的距离
android:insetRight="0dp"//距离右边的距离
android:insetTop="10dp"//距离上面的距离
android:insetBottom="10dp"//距离底部的距离
添加完drawable文件之后写个布局文件里面看下效果
效果对比:
图一:EditText去除默认的背景之后,键盘紧挨着光标
图二:设置了InsertDrawable之后 可以看到键盘的顶部和EditText文字(以及光标)的底部有了一定的距离
OK.解决了。
网友评论