0

カスタムディバイダーを備えたListViewがあります。仕切りはほんの一部の色で、高さは3dpです。リスト内の各アイテムにカスタムセレクターを追加したので、アイテムをクリックすると背景色が変わります。私のセレクターは次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">:
    <item android:state_selected="true" android:drawable="@color/yellow" />
    <item android:state_pressed="true" android:drawable="@color/yellow" />
    <item android:drawable="@color/grey" />
</selector>

アイテムを選択すると、期待どおりに灰色から黄色に色が変わります。ただし、リスト内のすべての仕切りの色も変わります。なぜこうなった?どうすれば修正できますか?

4

4 に答える 4

2

あなたの例では、セレクターに誤った状態が書き込まれていないと思います。これが問題である可能性があります。以下のような完全なセレクターXMLを書いてみてください。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">:
    <item android:state_selected="true" android:state_pressed="false" android:drawable="@color/yellow" />
    <item android:state_selected="false" android:state_pressed="true" android:drawable="@color/yellow" />
    <item android:state_selected="false" android:state_pressed="false" android:drawable="@color/grey" />
</selector>
于 2012-08-08T09:54:21.617 に答える
0

確かに注意しますが、仕切りを同じドローアブルに設定した可能性があります。仕切りの色を変更するのに役立つコードを投稿しています。このようなもの 。

android:divider="#FFCC00"
android:dividerHeight="4px"
于 2012-08-08T09:52:33.393 に答える
0

デフォルトの仕切りを無効にし、リストアイテムの背景の一部としてカスタム仕切りを作成します(おそらく9パッチを使用します)。

于 2012-08-08T09:56:49.653 に答える
0

次のようなlistselectorにカスタムセレクターを追加します

<ListView 
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:listSelector="@drawable/listitem_selector"/>
于 2012-08-08T10:14:56.797 に答える