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

时间:2015-07-19 21:08:52

标签: android navigation-drawer

好的,我知道这是一个微不足道的问题,但由于某些原因它不适合我。我在其他答案中做了很多建议但是徒劳无功。我的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>

2 个答案:

答案 0 :(得分:9)

您应该使用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,不需要它。

答案 1 :(得分:7)

如果您使用的是Design支持库,则可以使用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更改文字的颜色。

相关问题