在styles.xml中,我定义了一个主题和ListView项目的样式:
我是使用ListFragment的,我可以看到我的listview选择器的颜色被正确显示("@drawable/my_red_selector"),但是它似乎忽略了drawSelectorOnTop属性 - 我的选择器仍然在下面绘制。
如果我定义自己的布局文件并执行:
// 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>