2010-10-23 59 views
0

我的Android應用程序使用TabActivity來顯示其內容,它有4個選項卡,這四個選項卡都使用可繪製狀態列表的圖標。它們都具有相同的結構,只是不同的圖像:在可繪製的Android狀態列表中,state_focused被忽略

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:drawable="@drawable/icon_options_dark" android:state_selected="true" android:state_focused="false" /> 
     <item android:drawable="@drawable/icon_options_white" /> 
</selector>` 

然而,在我的HTC Desire(綠色高亮)軌跡球選擇標籤時,暗圖像來代替光一個。一旦選項卡被選中,它就會變成白色。我究竟做錯了什麼?

回答

1

你需要針對不同的狀態有不同的項目。在一個項目中結合幾個國家(就像你一樣)是絕對錯誤的。你的XML可能看起來像這樣:

<xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/icon_options_dark" 
     android:state_selected="true" /> 
    <item android:drawable="@drawable/icon_options_light" 
     android:state_focused="true" /> 
    <item android:drawable="@drawable/icon_options_white" /> 
</selector> 

當談到繪製繪圖時,它的狀態首先被檢查。如果選擇了第一項,那就是 - 沒有專注的檢查將被執行(Android僅查找第一個 - 不是「最相關的」-狀態)。但如果未選中,則將執行對焦狀態的檢查。