2014-05-13 21 views

Odpowiedz

20

należy zadeklarować android:actionBarItemBackground atrybut, który jest:

Niestandardowy przedmiot rysowanie w tle listy dla elementów paska działań.

Następnie w swoich stylach zrobić w następujący sposób:

<style name="CustomStyle" parent="@style/Theme.Holo.Light" > 
    <item name="android:actionBarItemBackground">@drawable/ab_item_background</item> 
    <item name="actionBarItemBackground">@drawable/ab_item_background</item> 
</style> 

więc postawić własny rozciągliwej z selector i każdego stanu (wciśnięty, skupiony, niepełnosprawnych, itp) mają oczekiwaną tła. Na przykład, odkształcalne ab_item_background.xml zadeklarowane powyżej może być tak:

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 
    <!-- focused/pressed: color=red --> 
    <item 
     android:state_focused="true" 
     android:state_pressed="true" 
     android:drawable="@color/red" /> 
    <!-- pressed: color=red --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@color/red" /> 
    <!-- normal: color=transparent --> 
    <item 
     android:drawable="@android:color/transparent" /> 
</selector> 

W Styling the Action Bar można znaleźć wszystkie possibles dostosowywania i wszystkie atrybuty, aby to zrobić.

+0

Naprawiono to za pomocą DarkActionBar – MaartenDekkers

+0

Działa idealnie, dzięki ... Tylko jedna rzecz, chociaż '' android: actionBarItemBackground'' jest rozumiana przez Androida, podczas gdy '' actionBarItemBackground'' daje błąd, więc usunąłem go, czy konieczne jest posiadanie obu? –

+1

To zależy od paska czynności @RohanKandwal. Jeśli używasz SherlockAB lub biblioteki Support, musisz go użyć, tak. – Fllo

1
ActionBar actionBar = getActionBar(); 
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0a0a0a"))); 

to może pomóc

+0

To jest zmiana koloru tła paska akcji, a nie przycisku strony startowej –

Powiązane problemy