在 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,我可以看到我的 listview 选择器的颜色受到尊重(“@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>