如何更改EditText
框中的聚焦颜色(橙色)?
聚焦颜色是整个控件周围的小边框,在控件获得焦点时呈亮橙色。如何将聚焦颜色更改为其他颜色?
如何更改EditText
框中的聚焦颜色(橙色)?
聚焦颜色是整个控件周围的小边框,在控件获得焦点时呈亮橙色。如何将聚焦颜色更改为其他颜色?
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed="true"
android:drawable="@android:drawable/edittext_pressed"
/> <!-- pressed -->
<item
android:state_focused="true"
android:drawable="@drawable/edittext_focused_blue"
/> <!-- focused -->
<item
android:drawable="@android:drawable/edittext_normal"
/> <!-- default -->
</selector>
我不知道默认的NinePatches EditText的实际名称,所以根据需要替换它们,但关键在于只需使用那些未修改的@android:drawable
图像(或者复制到您项目的drawable文件夹中),然后使用修改后的可绘制对象来表示聚焦状态。
然后,您可以将此StateListDrawable设置为TextView的背景,如下所示:
<TextView
android:background="@drawable/edittext_modified_states"
你不需要创建XML绘图。在代码中可能更简单。 Kotlin示例:
editText.onFocusChangeListener = OnFocusChangeListener { _, hasFocus ->
// colorLine, colorLineFocus is vars of ColorStateList
ViewCompat.setBackgroundTintList(editText, if (hasFocus) colorLineFocus else colorLine)
}
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:state_pressed="true"
android:color="colorcode"
/> <!-- pressed -->
<item
android:state_focused="true"
android:color="colorcode"
/> <!-- focused -->
<item
android:color="colorcode"
/> <!-- default -->
</selector>
<item drawable="@color/colorcode">
代替android:color
。 - sent1nelres/color
文件夹中创建 color.xml,并尝试使用 android:color="@color/colorname"
。 - Ketan Ahir