Android EditText Style.xml更改FOCUS EditText

3

下午好,

大家好,我为所有字段创建了一个样式文件style.xml EditText,现在当字段获得焦点时,我想要改变样式。怎么办?

1个回答

4

您需要为编辑文本的每个状态定义可绘制对象。在可绘制对象文件夹中创建一个XML文件,定义编辑文本的所有状态可绘制对象。XML文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_hovered=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_activated=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>

您需要为每个要指定的状态绘制一个项目。因此,对于状态为state_focused的可绘制对象,您只需执行以下操作:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@drawable/myFocusedEditText"
        android:state_focused="true"/>
    <item
        android:drawable="@drawable/myEnabledEditText"
        android:state_enabled="true"/>
</selector>

将这个XML文件命名为custom_edit_text.xml,并确保它在drawables文件夹中。 然后,您只需要在styles.xml中定义即可。

<style name="my_edit_text">
    <item name="android:drawable">@drawable/custom_edit_text</item>
</style>

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接