0

リスト内の行のレイアウトを定義する 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" />

何か案は?

4

1 に答える 1