[英]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.