Android EditText Style.xml 改变FOCUS EditText

标签 android focus styles android-edittext

下午好

伙计们,我为所有字段创建了一个样式文件 style.xml EditText 现在,当字段获得焦点时,我想更改样式。怎么办?

最佳答案

您必须为编辑文本的每个状态定义可绘制对象。您在 drawables 文件夹中创建一个 xml 文件,该文件定义了编辑文本的所有状态 drawables。 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>

祝你好运!

关于Android EditText Style.xml 改变FOCUS EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10788183/

相关文章:

wpf - 无法将焦点设置到 UserControl 的子级

java - Swing : Focus Components

html - div泄漏父容器最大宽度

c++ - 静态库的 undefined reference 和奇怪的内容

java - 将 Bundle/data 发送到另一个类或屏幕

javascript - Vue.js 将值显示为价格,但将其保留为 int

java - 使用数组列表适配器设置 android listview 的样式

Objective-C:可以用只读属性替换所有访问器吗?

android - 改变 MediaPlayer 的 SurfaceViews

android - 无法让 DatePicker 选择当前日期,保留上一个日期启用