リスト内の行のレイアウトを定義する XML ファイルがあります。レイアウトは、最も外側のレベルでは LinearLayout です。内部には、行の右側の 30 ディップを占める別の LinearLayout があります。
外側の LinearLayout の背景リソースとしてドローアブル セットがあります。これは、行のセレクターとして機能します。行は通常白です。クリックすると緑色です。
また、行の右側の 30 ディップを占める内側の LinearLayout のバックグラウンド リソースとして、ドローアブル セットも用意しています。そのドローアブルは次のようになります。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:state_pressed="false"
android:drawable="@color/light_blue_pressed" />
<item android:state_selected="true"
android:state_pressed="true"
android:drawable="@color/light_blue_pressed" />
<item android:state_selected="false"
android:state_pressed="false"
android:drawable="@color/light_blue" />
<item android:state_selected="false"
android:state_pressed="true"
android:drawable="@color/light_blue_pressed" />
</selector>
この内側の LinearLayout に OnClickListener を追加したので、これをクリックすると、LinearLayout の色が light_blue から light_blue_pressed に変わります。
ただし、行の他の場所 (外側の LinearLayout と読む) をクリックしても、内側の LinearLayout の色は変更されません。
android:duplicateParentState
内部の LinearLayout に値を指定してオプションを追加しましたがfalse
、問題はまだ発生しています。
<LinearLayout
android:id="@+id/item_warning_level"
android:layout_width="30dip"
android:layout_height="match_parent"
android:background="@drawable/selector_light_blue"
android:duplicateParentState="false" />
何か案は?