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
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:
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.
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.
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" />
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>
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 popupTheme
Toolbar
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.
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