3

styles.xml で、テーマと ListView アイテムのスタイルを定義しました。

// styles.xml
<style name="MyTheme">
    <item name="android:listViewStyle">@style/ListView</item>
</style>

<style name="ListView">
    <item name="android:drawSelectorOnTop">true</item>
    <item name="android:listSelector">@drawable/my_red_selector</item>
</style>

私は ListFragment を使用しており、リストビュー セレクターの色が尊重されていることがわかります ("@drawable/my_red_selector") が、drawSelectorOnTop 属性が無視されているようです - 私のセレクターはまだ下に描画されています。

独自のレイアウト ファイルを定義して実行すると、次のようになります。

<ListView
    android:id="@+id/foo"
    ...
    style="@style/ListView" />

スタイルの drawSelectorOnTop 属性が適用されます。ここで、一番上の属性のセレクターを無視するという間違ったことをしている可能性はありますか?

ありがとう

- - 編集 - - - - -

「my_red_selector」の定義は次のとおりです。

// my_red_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/red_on"/>
  <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/red_on"/>
  <item android:state_focused="true" android:drawable="@drawable/red_on"/>
  <item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/transparent"/>
</selector>

// red_on.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
  <solid android:color="@color/red" />
</shape>
4

1 に答える 1

2

カスタム行がある場合は、ListViewのリストアイテム行で以下のセレクターを試してください

    <!-- Active tab -->
    <item android:drawable="@android:color/transparent" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/>
    <!-- Inactive tab -->
    <item android:drawable="@android:color/transparent" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/>
    <!-- Pressed tab -->
    <item android:drawable="@drawable/red_on" android:state_pressed="true"/>
    <!-- Selected tab (using d-pad) -->
    <item android:drawable="@drawable/red_on" android:state_focused="true" android:state_pressed="false" android:state_selected="true"/>

</selector>
于 2012-06-15T05:56:37.200 に答える