2014-02-24 43 views
1

我不得不關注以下問題,我想從操作欄項目(只是普通的操作欄,既不支持操作欄也不是actionbarsherlock)更改選擇器。如果按下項目圖標,背景顏色應該是灰色的,而不是默認的藍色。我搜索了很多,知道我需要在樣式中重寫屬性android:actionBarItemBackground,但我的選擇器仍然無效,背景色是透明的,但按下狀態的顏色不是灰色,它保持透明。 :/選擇器爲actionBarItemBackground不工作

這裏是我的代碼:

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> 

    <!-- Customize your theme here. --> 
    <item name="android:actionBarItemBackground">@drawable/action_bar_item_drawable</item> 

</style> 

,並在這裏繪製

<?xml version="1.0" encoding="utf-8"?> 

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_shortAnimTime"> 

    <item android:drawable="@android:color/transparent"/> 
    <item android:drawable="@color/grey" android:state_pressed="true"/> 
</selector> 

任何人的想法?

回答

0

當您提供選擇器作爲可繪製選項時,將顯示滿足所有條件的第一個匹配項目。

在您的繪圖中,每次都選擇透明顏色,因爲它沒有任何條件,例如state_pressed="true"

您應該首先將具有更多限制條件的物品和沒有任何條件的物品作爲最後一個物品。

你繪製應該不是這個樣子:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_shortAnimTime"> 

    <item android:drawable="@color/grey" android:state_pressed="true"/> 
    <item android:drawable="@android:color/transparent"/> 
</selector>