2012-11-08 13 views
16

Ho problemi con lo stile ActionBar. La mia app ha un ActionBar con tre schede. Sto cercando di ottenere che la scheda selezionata abbia un colore di sfondo e le schede deselezionate per mostrare un colore diverso. Sto seguendo questo riferimento: Customizing Action Bar. Ma tutti i TAB stanno mostrando il colore selezionato.Come stile ActionBar, scheda sfondo nella scheda selezionata

Il mio file styles.xml è la seguente:

<style name="MyActionBarTabStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabBar"> 
    <item name="android:background">@drawable/tab_background</item> 
    <item name="android:paddingLeft">32dp</item> 
    <item name="android:paddingRight">32dp</item> 
</style> 

<style name="MyActionBarTabBarStyle" parent="android:style/Widget.Holo.Light.ActionBar.TabBar"> 

    <item name="android:background">@drawable/red</item> 
</style> 


<style name="AppTheme.Light" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/ActionBar.Light</item> 
    <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item> 
    <item name="android:actionBarTabBarStyle">@style/MyActionBarTabBarStyle</item> 

</style> 

tab_background è solo una patch 9. Non sono nemmeno sicuro se erediterò la scheda della barra delle azioni dal genitore corretto (parent="android:style/Widget.Holo.Light.ActionBar.TabBar). Ho guardato attraverso i riferimenti & trovo molto difficile capire la gerarchia di stile

Perché non le mie schede mostrano selezionato o no? Grazie in anticipo per la vostra assistenza.

+0

Usa [ActionBarSherlockStyleGenerator] (http://jgilfelt.github.com/android-actionbarstylegenerator/ # name = example & compat = holo & theme = light & actionbarstyle = solido & backColor = E4E4E4,100 & secondaryColor = D6D6D6,100 & tertiaryColor = F2F2F2,100 & accentColor = 33B5E5,100) per modificarlo e usarlo. Controlla la mia risposta [qui] (http://stackoverflow.com/questions/13269482/change-background-of-the-actionbarsherlock-alone-not-the-tabs/13283261#13283261) – PravinCG

+0

Grazie Pravin. ActionBarStyleGenerator è molto utile per lo stile ActionBar – CocoNess

risposta

10

Ho risolto il mio problema. Inizialmente non ho usato i Drawable State List. Ho usato direttamente l'immagine di sfondo invece di passare attraverso StateListDrawable. Usando StateListDrawable, puoi impostare uno sfondo diverso in base al fatto che il tag sia selezionato o meno.

Così ho aggiunto il file tab_background_select.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" 
     android:drawable="@drawable/tab_background" /> 

</selector> 

e ho fatto riferimento questo dal mio styles.xml:

<item name="android:background">@drawable/tab_background_select</item> 
+0

Thank you Dude;) +1 –

+3

Che cosa intendi con riferimento a styles.xml? Come hai fatto riferimento e in che modo? Come lo faccio? Non riesco a farlo funzionare. Niente funziona per questo, non cambia mai, non importa quello che faccio. Android sembra davvero buggato. Che genitore hai fatto riferimento? Come lo hai chiamato? Che cosa hai indicato nel manifest? –

+1

Risposta piacevole :) usa questo, ' ' – tenten

Problemi correlati