android - ocultar - ¿Cómo cambiar el color de la barra de estado para que coincida con la aplicación en Lollipop?
cual es la barra de estado en un celular (7)
Además, si desea
status-bar
color de
status-bar
de estado diferente para diferentes actividades (
fragments
), puede hacerlo con los siguientes pasos (trabajar en API 21 y superior):
Primero cree
values21/style.xml
y ponga el siguiente código:
<style name="AIO" parent="AIOBase">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowContentTransitions">true</item>
</style>
Luego defina los temas Blancos | Oscuros en sus
values/style.xml
siguiente manera:
<style name="AIOBase" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_primary_dark</item>
<item name="colorAccent">@color/color_accent</item>
<item name="android:textColorPrimary">@android:color/black</item>
<item name="android:statusBarColor" tools:targetApi="lollipop">@color/color_primary_dark
</item>
<item name="android:textColor">@color/gray_darkest</item>
<item name="android:windowBackground">@color/default_bg</item>
<item name="android:colorBackground">@color/default_bg</item>
</style>
<style name="AIO" parent="AIOBase" />
<style name="AIO.Dark" parent="AIOBase">
<item name="android:statusBarColor" tools:targetApi="lollipop">#171717
</item>
</style>
<style name="AIO.White" parent="AIOBase">
<item name="android:statusBarColor" tools:targetApi="lollipop">#bdbdbd
</item>
</style>
Además, no olvide aplicar temas en su
manifest.xml
.
En la nueva actualización de lollipop, noté que con las aplicaciones nativas de Google, el color de la barra de estado cambia para coincidir con la barra de acción en la aplicación que está ejecutando. Veo que también está en la aplicación de Twitter, así que supongo que no es exclusivamente Google quien puede hacerlo.
¿Alguien sabe cómo hacer esto si es posible?
Agregue esta línea en el estilo de v21 si usa dos estilos.
<item name="android:statusBarColor">#43434f</item>
En dispositivos Android pre Lollipop, puede hacerlo desde SystemBarTintManager. Si está usando Android Studio, simplemente agregue Systembartint lib en su archivo gradle.
dependencies {
compile ''com.readystatesoftware.systembartint:systembartint:1.0.3''
...
}
Luego en tu actividad
// create manager instance after the content view is set
SystemBarTintManager mTintManager = new SystemBarTintManager(this);
// enable status bar tint
mTintManager.setStatusBarTintEnabled(true);
mTintManager.setTintColor(getResources().getColor(R.color.blue));
Otra forma de establecer el color de la barra de estado es a través de style.xml .
Para hacerlo, cree un archivo style.xml en la carpeta res / values-v21 con este contenido:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="android:Theme.Material">
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@color/blue_dark</item>
</style>
</resources>
Editar: como se señala en los comentarios, cuando se usa AppCompat el código es diferente. En el archivo res / values / style.xml use en su lugar:
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
<!-- Set AppCompat’s color theming attrs -->
<item name="colorPrimary">@color/my_awesome_red</item>
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item>
<!-- Other attributes -->
</style>
Para cambiar el color de la barra de estado, use setStatusBarColor (int color) . Según el javadoc, también necesitamos establecer algunas banderas en la ventana.
Fragmento de código de trabajo:
Window window = activity.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(ContextCompat.getColor(activity, R.color.example_color));
Tenga en cuenta que
según las pautas de diseño de materiales
, el color de la barra de estado y el color de la barra de acción deben ser diferentes:
- ActionBar debe usar el color primario 500
- StatusBar debe usar el color primario 700
Mira la captura de pantalla a continuación:
Para establecer el color de la barra de estado, cree un archivo style.xml en la carpeta res / values-v21 con este contenido:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="AppTheme">
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/blue</item>
</style>
</resources>
Simplemente agregue esto en su styles.xml. ColorPrimary es para la barra de acciones y colorPrimaryDark es para la barra de estado.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
</style>
Esta imagen del desarrollador de Android explica más sobre la paleta de colores. Puedes leer más en este link .