EditText防止输入法顶走标题栏以及改变光标底部线颜色

时间:2021-08-20 12:50:24

1。防止EditText在底部时弹出输入法将标题给顶上去,可以在清单文件的activity上添加属性:

android:windowSoftInputMode="adjustResize|stateHidden"


2。EditText改变光标颜色,在EditText的布局属性中添加:

Android:textCursorDrawable="@null"

android:textCursorDrawable   这个属性是用来控制光标颜色的,

"@null"   是作用是让光标颜色和text color一样


3。EditText改变底部获取焦点和没获取焦点时的颜色。

第一步:在drawable文件夹下建立line_et_normal.xml和line_et_focus.xml两个资源文件,代码如下:

line_et_normal.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item>  
  4.         <shape android:shape="rectangle">  
  5.             <solid android:color="@android:color/transparent" />  
  6.         </shape>  
  7.     </item>  
  8.     <item  
  9.         android:left="-2dip"  
  10.         android:right="-2dip"  
  11.         android:top="-2dip">  
  12.         <shape>  
  13.             <solid android:color="@android:color/transparent" />  
  14.             <stroke  
  15.                 android:width="1dip"  
  16.                 android:color="@color/gray_b4"  
  17.                 android:dashGap="0dp"  
  18.                 android:dashWidth="0dip" />  
  19.         </shape>  
  20.     </item>  
  21. </layer-list>  


line_et_focus.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item>  
  4.         <shape android:shape="rectangle">  
  5.             <solid android:color="@android:color/transparent" />  
  6.         </shape>  
  7.     </item>  
  8.     <item  
  9.         android:left="-2dip"  
  10.         android:right="-2dip"  
  11.         android:top="-2dip">  
  12.         <shape>  
  13.             <solid android:color="@android:color/transparent" />  
  14.             <stroke  
  15.                 android:width="1dip"  
  16.                 android:color="@color/blue"  
  17.                 android:dashGap="0dp"  
  18.                 android:dashWidth="0dip" />  
  19.         </shape>  
  20.     </item>  
  21. </layer-list>  

第二步:建立EditText背景文件line_et_bg.xml,代码如下:

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item  
  4.         android:state_focused="true" android:drawable="@drawable/line_et_focuse"/>  
  5.     <item android:drawable="@drawable/line_et_normal"/>  
  6. </selector>  


第三步:在布局文件中引用,代码如下:

[java] view plain copy
  1. <EditText  
  2.             android:id="@+id/login_account"  
  3.             style="@style/login_et"  
  4.             android:background="@drawable/line_et_bg"  
  5.             android:layout_toRightOf="@+id/login_accounttv"  
  6.             android:hint="请输入帐号"/>  


现在就可以在EditText获得焦点时,底部的线变成蓝色,失去焦点时变成灰色。