9

そのため、カスタムの ExpandableListView インジケーター アイコンを設定しようとしていますが、機能していません。アイコンを作成し、drawable フォルダーに保存しました。アイコンは次のとおりです。

ここに画像の説明を入力 ここに画像の説明を入力

これはセレクタです:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/arrow_up" android:state_empty="true"/>
    <item android:drawable="@drawable/arrow_down" android:state_activated="true"/>
</selector>

ExpandableListView xml:

<ExpandableListView
    android:id="@+id/lvExp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:groupIndicator="@drawable/custom_arrow" />

ただし、アプリを起動すると、インジケーターがまったく表示されません。私が間違ったことをしたことはありますか?

4

2 に答える 2

21

これでうまくいくはずです

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_expanded="true" android:drawable="@drawable/arrow_up" />
    <item android:drawable="@drawable/arrow_down" />
</selector>

state_expanded行が展開され、展開された以外の他の状態が通常の下向き矢印になったときの for が必要でした。state_emptyただし、展開するものが何もない場合は、を処理する必要があります

于 2013-09-19T20:40:40.197 に答える
-1

この1行をセレクターに追加して、下矢印の条件を変更するだけでよいと思います。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/arrow_up" android:state_empty="true"/>
    <item android:drawable="@drawable/arrow_down" android:state_expanded="true"/>
    <item android:drawable="@drawable/arrow_up" />
</selector>
于 2013-09-19T20:41:39.203 に答える