Dans les instructions de Android 5.0, la barre de navigation semble personnalisable: http://www.google.com/design/spec/layout/structure.html#structure-system-bars
Comment puis-je changer la couleur de la barre de navigation? J'aimerais utiliser un style blanc.
Captures d'écran:
Edit: Dans mes ressources, j'ai testé le style:
<item name="Android:navigationBarColor" tools:targetApi="21">@Android:color/white</item>
Mais les boutons sont blancs. Je voudrais le même moteur de rendu que la deuxième image.
À partir de l'API 27, il est maintenant possible d'utiliser le style de lumière de la barre de navigation:
<item name="Android:navigationBarColor">@Android:color/white</item>
<item name="Android:windowLightNavigationBar">true</item>
De la documentation :
windowLightNavigationBar
Si cette option est définie, la barre de navigation sera dessinée de manière à être compatible avec un arrière-plan de barre de navigation clair.
Pour que cela prenne effet, la fenêtre doit dessiner la barre système arrière-plans avec windowDrawsSystemBarBackgrounds et la navigation la barre ne doit pas avoir été demandée pour être translucide avec windowTranslucentNavigation. Correspond au réglage SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR dans la vue de décoration.
Utilisez ceci dans votre Activité .
if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.green));
}
la barre de navigation n'est pas censée être colorée
Lorsque vous personnalisez les barres de navigation et d'état, rendez-les transparentes ou modifiez uniquement la barre d'état. La barre de navigation doit rester noire dans tous les autres cas.
(source https://developer.Android.com/training/material/theme.html )
MAIS, vous pouvez utiliser cette bibliothèque pour réaliser vos objectifs :) https://github.com/jgilfelt/SystemBarTint
ajoutez cette ligne dans votre v21/style
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="Android:windowDrawsSystemBarBackgrounds">true</item>
<item name="Android:statusBarColor">@Android:color/transparent</item>
<item name="Android:navigationBarColor">@color/colorPrimaryDark</item>
</style>
Vous pouvez également définir par programme la barre de navigation du système d'éclairage dans l'API 26:
View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
Où View
pourrait être findViewById(Android.R.id.content)
.
Cependant rappelez-vous que:
Pour que cela prenne effet, la fenêtre doit demander
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
mais pasFLAG_TRANSLUCENT_NAVIGATION
.
Voir documentation .
utilisez cette simple ligne pour changer la couleur de la barre de navigation en fonction de la couleur de fond de votre écran
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.any_color));
}