2012-07-29 37 views
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」似乎做的檢查項目不留明顯的檢查,如果我採取選擇離開的伎倆。但是,這僅適用於後Honeycomb版本。之前的任何事情都會忽略state_activated(或state_checked和state_selected),並且只接受state_pressed(當我觸摸它們時顏色自己變成線條,但之後不會留下顏色)。這對我來說真的很混亂,所以我希望對此事提供任何建議。

謝謝。

回答

2

在Honeycomb之前,android:state_activated屬性不存在。我建議您維護兩個版本的可繪製版本:默認版本res/drawable未參考android:state_activated(或Honeycomb中引入的任何其他狀態)以及res/drawable-v11的蜂窩版及更高版本。

+0

謝謝,我一定會那樣做的。但是,在Honeycomb版本之前,android的模擬器state_activated是什麼?意思是,我如何強制檢查項目對於他們的背景有一定的可繪製性? android:state_checked和android:state_selected似乎不起作用。 – Gigen 2012-07-29 18:01:39

+0

@Gigen - 'android:state_checked' should work(假設該視圖是可選的 - 你可以使用狀態標識符android:state_checkable來試驗)。如果它不起作用,那麼可能需要修改選擇器中的項目順序。 – 2012-07-29 18:18:13