无法在Android中更改导航抽屉图标的颜色

7

好的,我知道这是一个琐碎的问题,但出于某种原因它对我不起作用。我已经尝试了其他答案中建议的很多方法,但都没有成功。我的drawable文件夹里有白色图标。我甚至尝试从styles.xml文件中更改它,但也没有起作用。我正在我的Lollipop设备上测试它。任何帮助都将不胜感激。谢谢。

这是我的清单文件的一部分。

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_drawer"
        android:label="@string/app_name" >
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"
            tools:replace="android:value" />

        <activity
            android:name=".Activity_Splash"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
                android:name=".Activity_test"
                android:launchMode="singleInstance"
                android:theme="@style/AppTheme.Base"
                android:windowSoftInputMode="stateHidden" />

最后这是我的style.xml。v-21版本类似。

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:actionMenuTextColor">#fff</item>
        <item name="colorPrimary">@color/ColorPrimary</item>
        <item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
        <item name="drawerArrowStyle">@style/MyDrawerArrowToggle</item>
        <item name="windowActionBar">false</item>
        <item name="colorAccent">#fff</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>

你想让它变成什么颜色?现在是什么颜色? - srka
我想让它变成白色。现在它是黑色的。 - varunkr
2个回答

10

你应该将ThemeOverlay.AppCompat.Dark.ActionBar作为工具栏样式。它将colorControlNormal设置为android:textColorPrimary,在暗色主题下是白色的。并且它不会改变来自主样式的其他属性。

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" >
    ... 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
</android.support.v7.widget.Toolbar>

同时从主样式中删除drawerArrowStyle,它不是必需的。


8
如果您正在使用设计支持库,您可以使用app:itemIconTint属性修改图标颜色:
<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme"
    app:headerLayout="@layout/nav_header_main"
    app:itemIconTint="#f00"
    app:itemTextColor="#0f0"
    app:menu="@menu/nav_drawer" />

作为额外的奖励,上面还展示了如何使用app:itemTextColor更改文本颜色。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接