Dans mon application, je dois changer la couleur de la barre de navigation inférieure. J'ai regardé beaucoup d'articles mais je ne trouve pas la solution. J'utilise appCompat library . Besoin d'aide s'il vous plaît. Merci d'avance.
v21/styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="Android:windowBackground">@drawable/bgpreview</item>
<item name="Android:colorPrimary">@color/MyColor</item>
<item name="Android:colorPrimaryDark">@color/MyColor</item>
<item name="Android:windowContentOverlay">@null</item>
<item name="Android:textColorPrimary">@color/MyColor</item>
<item name="colorAccent">@color/MyColor</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="Android:windowContentTransitions">true</item>
<item name="Android:windowAllowEnterTransitionOverlap">true</item>
<item name="Android:windowAllowReturnTransitionOverlap">true</item>
<item name="Android:windowSharedElementEnterTransition">@Android:transition/move</item>
<item name="Android:windowSharedElementExitTransition">@Android:transition/move</item>
<item name="windowActionBar">false</item>
<item name="Android:textAllCaps">false</item>
</style>
Cela peut être fait dans styles.xml en utilisant
<item name="Android:navigationBarColor">@color/theme_color</item>
ou
window.setNavigationBarColor(@ColorInt int color)
http://developer.Android.com/reference/Android/view/Window.html#setNavigationBarColor(int)
Notez que la méthode a été introduite dans Android Lollipop et ne fonctionnera pas avec la version <21 de l'API.
La deuxième méthode (fonctionne sur KitKat) consiste à définir la propriété windowTranslucentNavigation sur true dans le manifeste et à placer une vue colorée sous la barre de navigation.
Voici comment procéder par programme:
if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.your_awesome_color));
}
Utilisation de la bibliothèque Compat:
if (Android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}
Voici comment procéder avec xml dans le dossier values-v21/style.xml:
<item name="Android:navigationBarColor">@color/your_color</item>
Voici quelques façons de changer la couleur de la barre de navigation.
Par le XML
1- valeurs-v21/style.xml
<item name="Android:navigationBarColor">@color/navigationbar_color</item>
Ou si vous voulez le faire uniquement en utilisant les valeurs/dossier puis-
2- valeurs/style.xml
<resources xmlns:tools="http://schemas.Android.com/tools">
<item name="Android:navigationBarColor" tools:targetApi="21">@color/navigationbar_color</item>
Vous pouvez également changer la couleur de la barre de navigation en programmant.
if (Build.VERSION.SDK_INT >= 21)
getWindow().setNavigationBarColor(getResources().getColor(R.color.navigationbar_color));
En utilisant Compat Library-
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(ContextCompat.getColor(this, R.color.primary));
}
veuillez trouver le lien pour plus de détails - http://developer.Android.com/reference/Android/view/Window.html#setNavigationBarColor(int)
Vous pouvez ajouter la ligne suivante dans le dossier values-v21/style.xml :
<item name="Android:navigationBarColor">@color/theme_color</item>
Vous pouvez également modifier votre thème à l'aide de l'éditeur de thèmes en cliquant sur:
Outils -> Android -> Éditeur de thèmes
Ensuite, vous n'avez même pas besoin de mettre du contenu supplémentaire dans vos fichiers .xml ou .class.
Vous pouvez le changer directement dans styles.xml file\app\src\main\res\values \ styles.xml
Ce travail sur des versions plus anciennes, je le changeais dans KitKat et viens ici.
<color name="blackColorPrimary">#000001</color> (not #000000)
<item name="Android:navigationBarColor" tools:targetApi="Lollipop">@color/blackColorPrimary</item>
Le problème est que Android version supérieure rend trasparent pour # 000000