6

Sto provando a cambiare il colore di sfondo della mia barra delle azioni ma non cambia. La mia app utilizza il tema AppCompat se questo influisce su qualcosa.ActionBar Android non cambia colore di sfondo

Ecco il mio tema che viene utilizzato. I miei punti di app di utilizzare questo tema in modo che non è il problema

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/ActionBar</item> 
</style> 

<!-- Action Bar Styles --> 
<style name="ActionBar" parent="Widget.AppCompat.ActionBar"> 
    <item name="android:background">@color/blue</item> 
    <item name="background">@color/blue</item> 
</style> 

+0

sono anche utilizzando ** ** AppTheme a manifestare? – waqaslam

+0

@waqaslam yup. sto facendo qualcosa di sbagliato in questo codice? –

+1

AFAIR @ style/ActionBar mancante per API> 11. Fare riferimento a https://developer.android.com/training/basics/actionbar/styling.html per i dettagli –

risposta

14

Nello stile ActionBar, eliminare android: background, mantenere solo l'attributo background. Assicurati anche di implementare il tuo AppTema nel tag dell'applicazione o nelle attività che estendono la barra delle azioni nel tuo file AndroidManifest.xml. Ho anche aggiunto l'attributo "@ style /" prima di Widget.AppCompat poiché è uno stile predefinito definito nella libreria di Android.

Il codice dovrebbe essere simile a questa:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/ActionBar</item> 
</style> 

<!-- Action Bar Styles --> 
<style name="ActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="background">#0000ff</item> 
</style> 
+1

fare attenzione ad usare entrambi i nomi "** android: ** actionBarStyle" e "actionBarStyle" per compatibilità con lo spazio dei nomi di sfondo –

0

è possibile se questo dal codice così

ab.setBackgroundDrawable (nuova ColorDrawable (newColor));

Solo nel caso il vostro XML non funziona

+0

Voglio averlo in formato XML, così posso usare l'app a colori e non devo continuare ad aggiungere quella linea ad ogni attività. –

+0

qui si va ANY_HEX_COLOR_CODE Uno dei motivi è non funziona perché hai un genitore sbagliato per il tag di stile – Amrut

+0

Ancora non funziona –

0

Secondo questo link, https://developer.android.com/reference/android/R.attr.html#background esso non sembra prendere risorsa colore, in modo che sia dare un valore di colore esadecimale o si crea una disegnabile che utilizza il colore tu vuoi. Potresti provare la seguente alternativa per vedere se funziona.

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/ActionBar</item> 
</style> 

<!-- Action Bar Styles --> 
<style name="ActionBar" parent="Widget.AppCompat.ActionBar"> 
    <item name="android:background">#0000ff</item> 
    <item name="background">#0000ff</item> 
</style> 
+0

Utilizzando lo strumento di compilazione 21.1.2, non consente di assegnare il colore direttamente ai temi. Devi * darlo usando '@ color' o' @ drawable'. –