How to set border color for EditText

2019-06-26 02:52发布

问题:

I have used this.

<color name="edt_pressed">#99CBFF</color>
<color name="edt_focused">#CEF7F6</color>
<color name="edt_default">#000000</color>

gradient_edt_focused

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">    
<stroke android:width="1dip" android:color="@color/edt_focused" />
</shape>

edt_border.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:state_pressed="true" android:drawable="@layout/gradient_edt_pressed"/>
<item android:state_focused="true" android:drawable="@layout/gradient_edt_focused"/>
<item android:drawable="@layout/gradient_edt_default"/>
</selector>

activity_main.xml

<EditText
    android:id="@+id/uname" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"                
    android:singleLine="true"
    android:background="@layout/textview_border"/>

Now the border is working fine but while typing text, that has the background color of black.

回答1:

The issue is it is taking the color of the default item as background while onfocus as I did not gave any solid color for each. So now i added this in "gradient_edt_focused".

<solid android:color="#00000000" />

Now it is working.