En primer lugar, no es un duplicado como en Cómo cambiar el color de fondo de la barra de estado de Android
¿Cómo cambio el color de la barra de estado, que debería ser el mismo que en la barra de navegación?
Quiero que el color de la barra de estado sea el mismo que el color de la barra de navegación
android
android-navigation
android-statusbar
codercat
fuente
fuente
android:statusBarColor
. Simplemente puede agregarlo avalues-v21/styles.xml
.Respuestas:
Android 5.0 Lollipop introdujo el tema Material Design que colorea automáticamente la barra de estado según el
colorPrimaryDark
valor del tema.Esto es compatible con el dispositivo pre-lollipop gracias a la biblioteca support-v7-appcompat a partir de la versión 21. Blogpost sobre el soporte appcompat v21 de Chris Banes
Lea más sobre el tema Material en el sitio web oficial de desarrolladores de Android
fuente
Actualizar:
Pirulí:
Agregado en API nivel 21
Android Lollipop trajo consigo la capacidad de cambiar el color de la barra de estado en su aplicación para una experiencia de usuario más inmersiva y en sintonía con la de Google
Material Design Guidelines
.Aquí es cómo puede cambiar el color de la barra de estado utilizando el nuevo
window.setStatusBarColor
método introducido enAPI level 21
.Cambiar el color de la barra de estado también requiere configurar dos banderas adicionales en la Ventana; necesita agregar la
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
bandera y borrar laFLAG_TRANSLUCENT_STATUS
bandera.Código de trabajo
...
Referencia del desarrollador oficial: setStatusBarColor (int)
Ejemplo: diseño de materiales en todas partes
Chris Banes Blog- appcompat v21: ¡diseño de material para dispositivos pre-Lollipop!
El
transitionName
fondo para la vista seráandroid:status:background
.fuente
android:statusBarColor
en suvalues-v21/styles.xml
archivo por androiddocs.com/training/material/theme.html así<item name="android:statusBarColor">@color/primary_color</item>
Coloque estos son sus valores-v21 / styles.xml, para habilitar esto en Lollipop:
fuente
targeApi
atributo si desea mantener un único archivo de estilo. Lea mi respuesta como referencia stackoverflow.com/a/48565459/4291272esta es una manera muy fácil de hacer esto sin ninguna biblioteca: si la versión del sistema operativo no es compatible, en kitkat, entonces no pasa nada. hago estos pasos:
entonces hice este método:
También necesita estos dos métodos para obtener la barra de acción y la altura de la barra de estado:
entonces lo único que necesita es esta línea para configurar el color de la barra de estado:
fuente
Como @Niels dijo que debe colocar en valores-v21 / styles.xml:
Pero agregue
tools:targetApi="lollipop"
si desea estilos individuales.xml, como:fuente
Bueno, la solución de Izhar estaba bien, pero, personalmente, estoy tratando de evitar el código que se ve así:
Además, tampoco me gusta duplicar el código. En su respuesta, debo agregar dicha línea de código en todas las Actividades:
Entonces, tomé la solución Izhar y usé XML para obtener el mismo resultado: crear un diseño para StatusBar status_bar.xml
Observe los atributos de altura y elevación, estos se establecerán en valores, valores-v19, valores-v21 más abajo.
Agregue este diseño al diseño de sus actividades utilizando include, main_activity.xml:
Para la barra de herramientas, agregue el atributo de margen superior:
En su appTheme style-v19.xml y styles-v21.xml, agregue el atributo windowTranslucent:
styles-v19.xml, v21:
Y finalmente, en sus dimens, dimens-v19, dimens-v21, agregue los valores para la barra de herramientas topMargin y la altura del statusBarHeight: dimens.xml por menos que KitKat:
La altura de la barra de estado es siempre 24dp dimens-v19.xml para KitKat y superior:
dimens-v21.xml para Lolipop, solo agregue la elevación si es necesario:
Este es el resultado de Jellybean KitKat y Lollipop:
fuente
Puedes usar este código simple:
One-liner en Kotlin:
Respuesta original con Java y verificación de versión manual:
fuente
ContextCompat
. En Kotlin, entonces es solo esto:window.statusBarColor = ContextCompat.getColor(this, R.color.colorName)
Simplemente cree un nuevo tema en res / values / styles.xml donde cambie el "colorPrimaryDark", que es el color de la barra de estado:
Y modifique el tema de la actividad en AndroidManifest.xml al que desee, en la siguiente actividad puede volver a cambiar el color al original seleccionando el tema original:
Así es como deberían verse sus res / values / colors.xml :
fuente
Para cambiar el color de lolipop anterior simplemente agregue esto a sus styles.xml
pero recuerde , si desea tener un color claro para la barra de estado, agregue esta línea también
fuente
Puede cambiar el color de la barra de estado con esta función. funciona en Android L significa API 21 y superior y necesita una cadena de color como
"#ffffff"
.fuente
Tenía este requisito: cambiar programáticamente el color de la barra de estado manteniéndolo transparente , para permitir que el cajón de navegación se dibuje solapando la barra de estado transparente .
No puedo hacer eso usando la API
Si marca aquí en desbordamiento de pila todos antes de esa línea de código, establezca la transparencia de la barra de estado en sólida con
Puedo administrar el color y la transparencia de la barra de estado de esta manera:
Android 4: no hay mucho que puedas hacer, porque no puedes administrar el color de la barra de estado desde la API ... lo único que puedes hacer es configurar la barra de estado como translúcida y mover un elemento coloreado de tu IU debajo del estado bar. Para hacer esto necesitas jugar con
en tu diseño principal. Esto le permite dibujar su diseño bajo la barra de estado. Luego debes jugar con algo de relleno con la parte superior de tu diseño principal.
Android 5 y superior: debes definir un estilo con
Esto permite que el cajón de navegación se superponga con la barra de estado.
Luego, para cambiar el color manteniendo la barra de estado transparente, debe establecer el color de la barra de estado con
donde drawerLayout se define así
fuente
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
. De todos modos, después de días de búsqueda, encontré algo que realmente funciona (probado solo en Lolllipop por el momento). GraciasEdite el colorPrimary en colors.xml en Valores al color que desea que tenga la Barra de estado. Por ejemplo:
fuente
Para cambiar el color de la barra de estado, vaya a
res/values-v21/styles.xml
y color de la barra de estadofuente
Si desea cambiar el color de la barra de estado mediante programación (y siempre que el dispositivo tenga Android 5.0). Esta es una manera simple de cambiar statusBarColor desde cualquier actividad y métodos muy fáciles cuando diferentes fragmentos tienen un color de barra de estado diferente.
fuente
Si desea trabajar en Android 4.4 y superior, intente esto. Me refiero a la respuesta de Harpreet y este enlace. Android y la barra de estado transparente
Primero, llame al método setStatusBarColored en el método onCreate de Activity (lo puse en una clase util). Utilizo una imagen aquí, puedes cambiarla para usar un color.
Antes de:
Después:
El color de la barra de estado ha cambiado, pero la barra de navegación está cortada, por lo que debemos establecer el margen o el desplazamiento de la barra de navegación en el método onCreate.
Entonces la barra de estado se verá así.
fuente
Esto es lo que funcionó para mí en KitKat y con buenos resultados.
fuente
Una solución mas:
fuente
cambie el colorPrimaryDark a su color deseado en el archivo res / values / styles.xml
fuente