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 より前には存在しません。ドローアブルの 2 つのバージョンを維持することをお勧めします。1 つは参照(または Honeycomb で導入されたその他の状態) をres/drawable参照しないデフォルト バージョンで、もう 1 つは参照する Honeycomb 以降のバージョンです。android:state_activatedres/drawable-v11

于 2012-07-29T17:24:39.520 に答える