14

既存の statelist ドローアブルに無効な状態を追加しようとしていますが、機能しません。

もともと、私はこのコードを持っていました:

<?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>

選択されたものと選択されていないもので完全に機能しました。

今、次のように 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>

無効なイメージに切り替わることはありません。

何か案は?

編集

このステートリストを描画可能に設定しているビューのコンストラクターに追加setEnabled(false)しましたが、無効な画像が表示されますが、ビューを有効に設定すると、再び無効に切り替わりません。

4

2 に答える 2

42

これは非常に古い質問ですが、次の順序でセレクターを記述する必要があります。

  1. 最初に無効状態
  2. 押された状態の秒
  3. ノーマル状態ラスト
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_shortAnimTime">
    <item android:drawable="@color/due_gray" android:state_enabled="false" />
    <item android:drawable="@color/whizdm_primary_dark_color" android:state_pressed="true" />
    <item android:drawable="@color/whizdm_primary_color" />
</selector>
于 2015-09-04T08:58:31.383 に答える
9

これを試して

<?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>
于 2012-09-12T07:44:31.623 に答える