0

我正在制作一个带有主要针对 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(当我触摸它们时线条会自行着色,但之后不会保持着色)。这对我来说真的很困惑,所以我会很感激任何关于此事的建议。

谢谢。

4

1 回答 1

2

android:state_activated属性在 Honeycomb 之前不存在。我建议您维护两个版本的可绘制对象:一个res/drawable不引用android:state_activated(或 Honeycomb 中引入的任何其他状态)的默认版本和一个不引用的 Honeycomb 及更高版本res/drawable-v11

于 2012-07-29T17:24:39.520 回答