在导航抽屉中更改初始图标的颜色

时间:2018-04-19 02:09:19

标签: android colors navigation-drawer android-theme android-icons

我下载了一个导航抽屉样本,图标最初是黑色的。当它们被加载到菜单中时,它们变得粉红色,我无法在代码中的任何地方找到它变为粉红色的地方。

加载菜单:文字正确,但图标...

enter image description here

导航抽屉代码:

 <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_main2"
        app:menu="@menu/activity_main2_drawer"
        android:theme="@style/MyNavigationDrawer"/>

</android.support.v4.widget.DrawerLayout>

activity_main2_drawer代码:

enter image description here

导航抽屉主题:

<style name="MyNavigationDrawer" parent="AppTheme">
        <item name="colorPrimary">@color/colorAccent</item>
        <item name="android:icon">@color/colorAccent2</item>
        <item name="android:textColorPrimary">@color/colorAccent2</item>
    </style>

Apptheme:

enter image description here

2 个答案:

答案 0 :(得分:0)

检查没有这样的代码。

navigationView.setItemTextColor(ColorStateList1);
navigationView.setItemIconTintList(ColorStateList2);

可以使用此更改图标颜色。

int[][] states = new int[][] {
        new int[] {-android.R.attr.state_enabled}, // disabled
        new int[] {android.R.attr.state_enabled}, // enabled
        new int[] {-android.R.attr.state_checked}, // unchecked
        new int[] { android.R.attr.state_pressed}  // pressed

};

    int[] colors = new int[] {
            Color.WHITE,
            Color.BLUE,
            Color.WHITE,
            Color.WHITE
    };

    ColorStateList ColorStateList2 = new ColorStateList(states, colors);

根据您的要求,您不应该这样做。

答案 1 :(得分:0)

使用app:itemIconTint =&#34;你渴望的颜色&#34;在

<android.support.design.widget.NavigationView
            android:id="@+id/nav_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:itemIconTint="your desire color"
            android:fitsSystemWindows="true"
            app:headerLayout="@layout/nav_header_main2"
            app:menu="@menu/activity_main2_drawer"
            android:theme="@style/MyNavigationDrawer"/>

避免使用  @色/ colorAccent2  @色/ colorAccent2 风格。