我正在制作一个带有检查表的应用程序,主要针对Android 4.0。在那里,我使用这个选择器作为我的列表项目的背景:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/checklist_selector_pressed" />
<item
android:state_focused="true"
android:drawable="@drawable/checklist_selector_focused" />
<item
android:state_activated="true"
android:drawable="@drawable/checklist_selector_selected" />
<item
android:drawable="@android:color/transparent" />
"state_activated"似乎起到了作用,因为如果我去掉选择器,选中的项目就不会保持可见的选中状态。然而,这只适用于后蜂窝版本。在此之前的任何操作都会忽略state_activated(或state_checked和state_selected),只接受state_pressed(当我触摸线条时,线条会自行着色,但之后不会保持着色)。这真的让我很困惑,所以我希望能就此事提供任何建议。
谢谢。
蜂窝之前不存在android:state_activated
属性。我建议您维护drawable的两个版本:res/drawable
中不引用android:state_activated
(或Honeycomb中引入的任何其他状态)的默认版本,以及res/drawable-v11
中引用的Honeycombe及更高版本。