Statelist drawable android:state_enabled在xml中不起作用

pio*_*ojo 10 android statelistdrawable

我正在尝试添加到我现有的statelist drawable,一个禁用状态,它只是不起作用.

最初,我有这个代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/store_item_background_selected" android:state_selected="true"/>
<item android:drawable="@drawable/store_item_background"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

它适用于选定而未选中.

现在我想添加android:state_enabled ="false",如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/store_item_background_selected" android:state_selected="true"/>
<item android:drawable="@drawable/store_item_background" android:state_enabled="true"/>
<item android:drawable="@drawable/store_item_background_disabled"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

它永远不会切换到禁用的图像.

有任何想法吗?

编辑

我添加setEnabled(false)到视图的构造函数中,我将此状态列表设置为drwable,现在我看到禁用的图像,但是一旦我将视图设置为启用,它就不会再次切换到禁用状态.

Dr.*_*dRO 34

虽然这是一个非常古老的问题.应该相应地写选择器.

  1. 残疾人国家第一
  2. 压紧状态第二
  3. 正常状态最后

  • 切换订单立即解决了我的问题。你是从哪里找到这些信息的? (2认同)

Way*_*yne 6

试试这个

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/store_item_background_selected" android:state_enabled="true" android:state_selected="true"/>
<item android:drawable="@drawable/store_item_background" android:state_enabled="true"/>
<item android:drawable="@drawable/store_item_background_disabled" android:state_enabled="false"/>

</selector>
Run Code Online (Sandbox Code Playgroud)