Cambiar diseño de material AppCompat ActionBar Color

Solía ​​cambiar el color de la barra de estado de AppCompat con actionBarStyle , y crear un estilo con un fondo que es el color que quiero.

Ahora, con Material Design AppCompat, este método ya no funciona.

¿Me puedes ayudar? Gracias.

4 Solutions collect form web for “Cambiar diseño de material AppCompat ActionBar Color”

Hay un nuevo atributo llamado colorPrimary que puedes definir en tu Tema. Esto le dará ActionBar o Toolbar un color sólido.

Siguiendo un pequeño ejemplo:

 <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> 

Tenga en cuenta: Tiene que ser sólo colorPrimary , no android:colorPrimary , en todos los valores de la carpeta, excepto los values-v21 uno.

Puede leer más acerca de cómo personalizar la paleta de colores en developer.android.com .

En mi caso, @reVerse tuvo una respuesta parcial. Tuve que hacer algunos cambios adicionales para obtener colorPrimary para trabajar, porque estaba personalizando otras partes de la barra de herramientas … específicamente, el color del texto.

Aquí está mi archivo working styles.xml, con comentarios que indican lo que estaba haciendo mal:

 <!-- 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> 

Por lo tanto, al personalizar más que el color de fondo de la barra de herramientas, debe asegurarse de utilizar uno de los temas de ThemeOverlay o, por cualquier motivo, colorPrimary se ignorará.

Para completar, aquí está el archivo de diseño que utilizo para mi barra de herramientas, 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" /> 

Espero que esto ayude a alguien!

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

Véase también: Creación de ActionBar personalizada

Las instrucciones en la documentación para configurar la barra de aplicaciones recomiendan establecer el tema en el archivo de manifiesto de Android como este:

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

Sin embargo, en mi experiencia este colorPrimary estilo del colorPrimary fijó para el AppTheme de encargo. Lo que funcionó para mí fue definir un tema personalizado como este:

 <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> 

Y luego usar este tema en el archivo AndroidManifest.

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

Después de esa configuración el color de fondo de la barra de herramientas en la actividad basada en colorPrimary funcionó bien.

 <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" /> 

(Establecer el ThemeOverlay con un tema oscuro garantiza que el texto sea ligero.)

  • Android: Theme.Material.Light requiere el nivel API 21 (el min actual es 8)
  • Android L - Botón de acción flotante (FAB)
  • Etiqueta flotante Spinner?
  • Vista fija en el diseño de contenido de Viewpager, bajo CoordinatorLayout
  • Toolbar.inflateMenu parece no hacer nada
  • Aplicar diseño de material táctil ondulación a ImageButton?
  • Fondo degradado en la barra de herramientas temática material
  • El estilo AutoCompleteTextView con AppCompat.EditText no funciona
  • Aclaración sobre Android "La elevación de atributo se utiliza sólo en el nivel API 21 y superior"
  • Cómo crear las pestañas de la barra de herramientas con ViewPager en el diseño del material
  • Diseño de un Spinner, appcompat, material
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.