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

  • Problemas al importar android.support.v7.widget.CardView en Eclipse
  • Cajón de navegación de derecha a izquierda con v7 ActionBarDrawerToggle
  • Los botones de la barra de herramientas no responden al tacto cuando está abierto un cajón de navegación
  • Elementos del menú de NavigationView con el contador a la derecha
  • Lollipop Barra de progreso Tinción
  • No hay sombra por defecto en la barra de herramientas?
  • Cómo dar color de texto personalizado para un solo elemento de menú en un NavigationView?
  • Cómo implementar la transición de navegación de "padre a hijo" según lo prescrito por Material Design
  • Configuración de la elevación de ActionBar en dispositivos anteriores a 5.0 con AppCompat
  • ¿Cómo puedo abrir mediante programación (mostrar en pantalla) NavigationView
  • ¿Cuál es la mejor manera de crear una tabla de datos en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.