在Android Studio默认模板中更改导航抽屉图标的颜色

Android Studio中新的默认导航抽屉活动模板

在这里输入图像说明

在菜单文件activity_main_drawer定义其标题和图标,如下所示:

 <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" /> ... 

我的示例中的第一项使用红色图标:

在这里输入图像说明

但是当我运行应用程序,图标的颜色仍然是黑色的。我已经testing了这个蓝色,绿色,黄色和紫色的图标,但结果是一样的。

在这里输入图像说明

我读了一些工具栏应该使用ThemeOverlay.AppCompat.Dark.ActionBar ,我的应用程序已经在styles.xml文件中使用了这个工具:

 <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" /> 

起初,我认为这与Android Studio的cachingfunction有关,所以我无效caching,并重新启动Android Studio没有运气。

基于@ MD的评论,我所需要做的就是添加:

 app:itemIconTint="@color/my_desired_colour" 

NavigationView (它位于activity_main.xml布局文件中)默认色调是黑色的,但是您可以使用更深的黑色阴影#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" /> 

创build一个新的风格:

 <style name="DrawerIconStyle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="color">@android:color/red</item> </style> 

和你的主题:

 <item name="drawerArrowStyle">@style/DrawerIconStyle</item> 

您必须更改所需颜色的颜色文件中的colorAccent:

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

这个解决scheme为我工作

基于@ojonugwa ochalifu和@ MD的评论,

你可以通过编写app:itemIconTint来实现,但是如果你写这个,导航抽屉图标的颜色也会改变。 我在研发过程中发现的简单易行的解决scheme是,您已经在AppBarLayout主题中定义了<item name="colorControlNormal">#FFE730</item> ,或者如果仅在没有AppBarLayout情况下使用Toolbar ,则还可以写<item name="colorControlNormal">#FFE730</item>在你的xml中的主题或Toolbar popupTheme<item name="colorControlNormal">#FFE730</item>

这也将改变活动后退箭头的颜色。

希望这可以帮助你面对这类问题的所有人。