【Android】EditText 遇到软键盘遮挡底部一点的问题


1.问题描述:

   项目中某个布局文件(布局相当复杂)添加EditText输入框,在清单文件对应activity中设置属性   android:windowSoftInputMode="adjustResize"  ,弹出软件盘不存在遮盖问题。但是一旦给这个EditText设置背景之后就会出现EditText底部被遮盖的情况。如下图:

【Android】EditText 遇到软键盘遮挡底部一点的问题_第1张图片

目前还没有找到原因。但是自己写demo时就不会出现遮盖的情况。


2.解决办法:

设置EditText的layer-list  xml背景,如下:




    
        
            
        
    
    
    
        
            
            

            

            
        
    




      

原理:

【Android】EditText 遇到软键盘遮挡底部一点的问题_第2张图片

EditText设置2层背景,底层背景正常大小,第二层背景设置 bottom = 10dp使第二层背景距离底部10dp,从而第二层背景不在被遮盖。

效果图如下:

【Android】EditText 遇到软键盘遮挡底部一点的问题_第3张图片

   

最后:打完收工。

-------------以下内容为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去除默认的背景之后,键盘紧挨着光标

【Android】EditText 遇到软键盘遮挡底部一点的问题_第4张图片

图二:设置了InsertDrawable之后 可以看到键盘的顶部和EditText文字(以及光标)的底部有了一定的距离

【Android】EditText 遇到软键盘遮挡底部一点的问题_第5张图片

OK.解决了。


你可能感兴趣的:(问题记录)