Modifica del materiale Design AppCompat ActionBar Color

Ho usato per cambiare il colore della barra di stato di actionBarStyle con actionBarStyle e creare uno stile con uno background che è il colore che voglio.

Ora, con il materiale Design AppCompat, questo metodo non funziona più.

  • Duplicare il file quando si distribuisce apk
  • Come implementare tabs scorrevoli orizzontalmente?
  • PhoneGap non è in esecuzione in Android
  • Parola chiave triggersta riconoscimento vocale su android
  • Blocco dello schermo Android / sblock a livello di programmazione
  • Aggiungere i cookie alla richiesta di retrofit 2
  • Mi potete aiutare? Grazie.

    4 Solutions collect form web for “Modifica del materiale Design AppCompat ActionBar Color”

    C'è un nuovo attributo denominato colorPrimary che puoi definire nel tuo Tema. Questo ti darà ActionBar o Toolbar un colore solido.

    Seguendo un piccolo esempio:

     <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- colorPrimary is used for the default action bar background --> <item name="colorPrimary">@color/my_action_bar_color</item> </style> 

    Nota: deve essere solo colorPrimary , non android:colorPrimary , in each cartella values-v21 tranne i values-v21 .

    Puoi leggere di più sulla personalizzazione della palette dei colors su developer.android.com .

    Nel mio caso, @reVerse ha avuto una risposta parziale. Ho dovuto apportre alcune modifiche aggiuntive per far funzionare il colore a Primary perché ho personalizzato altre parti della barra degli strumenti … in modo specifico, il colore del text.

    Ecco il mio file styles.xml di lavoro, con commenti che indicano quello che stavo facendo:

     <!-- As @reVerse mentioned, you need to use colorPrimary instead of android:colorPrimary --> <style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/my_toolbar_color</item> </style> <!-- I was incorrectly using @style/Theme.AppCompat.Light for the popupTheme attribute --> <style name="MyToolbarStyle" parent="Widget.AppCompat.ActionBar"> <item name="theme">@style/MyToolbarTextStyle</item> <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item> </style> <!-- I was incorrectly using Them.AppCompat.Light for the parent here --> <style name="MyToolbarTextStyle" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:textColorPrimary">@color/my_toolbar_text_color</item> </style> 

    Quindi, quando si personalizza più il colore di background della barra degli strumenti, è necessario essere sicuri di utilizzare uno dei themes di ThemeOverlay o, per qualsiasi motivo, il colore verrà ignorato.

    Per completezza, ecco il file di layout utilizzato per la mia barra degli strumenti, Toolbar.xml:

     <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schmeas.android.com/apk/res-auto" style="@style/MyToolbarStyle" android:layout_width="match_parent" android:layout_height="wrap_content" /> 

    Speriamo che questo aiuti qualcuno!

      <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/ColorPrimary</item> <item name="colorPrimaryDark">@color/ColorPrimaryDark</item> <!-- Customize your theme here. --> </style> 

    Vedere anche: Creazione di ActionBar personalizzato

    Le indicazioni contenute nella documentazione per impostare il bar dell'applicazione consigliano di impostare il tema nel file Manifest di Android come questo:

     <application android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> 

    Tuttavia, nella mia esperienza questo colorPrimary stile colorPrimary impostato per l'AppTheme personalizzato. Quello che ha funzionato per me è stato quello di definire un tema personalizzato come questo:

     <style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

    E poi utilizzare questo tema nel file di AndroidManifest.

     <application android:theme="@style/AppTheme" /> 

    Dopo di che l'impostazione del colore di background della barra degli strumenti nell'attività basata su colorPrimary funzionato bene.

     <android.support.v7.widget.Toolbar android:id="@+id/my_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    (L'impostazione di ThemeOverlay con un tema scuro assicura che il text sia leggero.)

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.