繁体   English   中英

Android EditText,获取所有状态

[英]Android EditText, getting ALL the states

我有一个简单的XML drawable happy_borders.xml,它将作为某些EditText的背景。

        <EditText
            android:background="@drawable/happy_borders

当然,这是行不通的,因为在很多设备上,它将只关注第一个设备,然后您将一无所获

因此,您可以执行以下操作... happy_states.xml文件

<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext_states.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/happy_borders" />
    <item
        android:state_focused="true"
        android:drawable="@drawable/happy_borders" />
    <item
        android:state_enabled="true"
        android:drawable="@drawable/happy_borders" />
</selector>

接着

        <EditText
            android:background="@drawable/happy_states

没问题

(1)实际上有大量的android:state_ ...那里有什么交易? selector中,有一种方法可以暗示“针对每个状态都执行此操作”?

(2)交替进行。 在EditText内部。 您能说它是“无状态的”,并且永远不会与国家有关吗? 即,仅使用一种背景?

请注意,在许多情况下,我认为最好是在EditText后面放置一个单独的视图。 但无论如何,我想知道如何实现上述(1)或(2)。

只需定义需要其他可绘制对象的状态,然后在末尾添加默认状态即可:

<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext_states.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/happy_borders" />
    <item
        android:drawable="@drawable/sad_borders" />
</selector>

编辑:对不起,没有完全回答您的问题:

1)如果未定义任何非默认状态,则默认状态为“对每个状态都执行此操作”。

2)我相信没有,解决方案可能是将background设置为null或特定的drawable

要明确这一点:

<?xml version="1.0" encoding="utf-8"?>
<!-- res/drawable/rounded_edittext_states.xml -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/default_borders" />
</selector>

拥有“无状态”所需的一切; 使每个状态都相同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM