Changer la couleur de L'icône de tiroir de Navigation dans le modèle par défaut de studio Android

La nouvelle Navigation par défaut Tiroir Activité de modèle dans Android Studio

enter image description here

définit ses titres et icônes dans un fichier de menu activity_main_drawer comme ceci:

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_camara"
        android:icon="@drawable/ic_action_emo_cool"
        android:title="Import" />
    <item
        android:id="@+id/nav_gallery"
        android:icon="@android:drawable/ic_menu_gallery"
        android:title="Gallery" />
    <item
        android:id="@+id/nav_slideshow"
        android:icon="@android:drawable/ic_menu_slideshow"
        android:title="Slideshow" />
        ...

Le premier élément dans mon exemple utilise une icône rouge:

enter image description here

mais quand je lance l'application, la couleur de l'icône reste noir.J'ai testé ceci pour les icônes bleu, vert, jaune et pourpre, mais le résultat est la même.

enter image description here

j'ai lu quelque part que la barre d'outils doit utiliser ThemeOverlay.AppCompat.Dark.ActionBar et mon application l'utilise déjà dans le styles.xml fichier:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

au départ, j'ai pensé que cela avait quelque chose à voir avec la fonction cache D'Android Studio, donc j'ai invalidé cache et redémarré Android Studio sans succès.

33
demandé sur Mochamad Taufik Hidayat 2015-10-29 09:37:58

4 réponses

D'après le commentaire de @MD, tout ce que j'avais à faire était d'ajouter:

app:itemIconTint="@color/my_desired_colour"

NavigationView (il se trouve dans activity_main.xml fichier de mise en page) la teinte par défaut est noire, mais vous pouvez utiliser une teinte de noir encore plus foncée en utilisant #000000

 <android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:itemIconTint="#000000"
    app:menu="@menu/activity_main_drawer" />
87
répondu ojonugwa ochalifu 2016-10-26 17:02:32

Créer un nouveau style:

<style name="DrawerIconStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="color">@android:color/red</item>
</style>
<item name="drawerArrowStyle">@style/DrawerIconStyle</item>
24
répondu Pablo Cegarra 2016-05-12 12:15:21

basé sur le commentaire de @ojonugwa ochalifu et @MD,

Vous pouvez obtenir en écrivant app:itemIconTint mais si vous écrivez ceci, la couleur de l'icône des tiroirs de navigation sera aussi changée. La solution simple et facile que j'ai trouvé après beaucoup de R&D est que vous avez définir <item name="colorControlNormal">#FFE730</item> dans le thème de AppBarLayout ou si vous utilisez Toolbar sans AppBarLayout, vous pouvez également écrire <item name="colorControlNormal">#FFE730</item> en thème ou popupThemeToolbar dans votre xml.

cela changera aussi la couleur de la flèche arrière de l'activité ainsi.

J'espère que cela vous aidera tous ceux qui sont confrontés à ce genre de problème.

2
répondu Smeet 2017-10-26 11:03:58

vous devez changer le colorAccent dans le fichier colors à quelle couleur vous voulez:

  <color name="colorAccent">whichever color required</color>

Cette solution a fonctionné pour moi

0
répondu Parth Anjaria 2016-03-02 09:04:53