web-dev-qa-db-fra.com

Android Lollipop change la couleur de la barre de navigation

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.

enter image description here

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>
90
user3065901

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.

159
Zielony

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>
60
Bolling

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)

28
D_Alpha

Vous pouvez ajouter la ligne suivante dans le dossier values-v21/style.xml :

<item name="Android:navigationBarColor">@color/theme_color</item>
8
Pratik Butani

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.

1
Lelouch

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.

0
Dawid Polakowski
  1. Créer une couleur noire: <color name="blackColorPrimary">#000001</color> (not #000000)
  2. Écrire dans le style: <item name="Android:navigationBarColor" tools:targetApi="Lollipop">@color/blackColorPrimary</item>

Le problème est que Android version supérieure rend trasparent pour # 000000

0
Fariz Agayev