NavigationView 中的彩色图标

Colored Icons In NavigationView

美好的一天,有没有办法在导航抽屉上显示彩色图标? 不对它们进行着色或将它们设置为黑色,并且在导航抽屉中单击时它们每个都会有相应的颜色(highlight/background)。

就像Google商店应用程序抽屉。

是的,您可以使用菜单组项目添加彩色图标:

<item
        android:id="@+id/drawer_artist"
        android:icon="@drawable/artist"
        android:title="Artists"/>

并突出显示所选项目使用下面的代码作为默认值 selection:

navigationView.getMenu().getItem(0).setChecked(true);

并且您可以通过调用select(突出显示)项目

onNavigationItemSelected(navigationView.getMenu().getItem(0));

编辑

如果您使用的是导航视图,您可以编辑用于更改图标颜色的选项,如下所示:

    <android.support.design.widget.NavigationView
    android:id="@+id/navigation"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    android:background="@drawable/bg_all"

    app:itemIconTint="@android:color/white"
    app:itemTextColor="@android:color/white"
    app:theme="@style/list_item_appearance"
    app:menu="@menu/drawer_menu" >

编辑

如果您设置 navigationView.setItemIconTintList(null);,您将获得彩色图标。

您可以在 Activity.Class

中设置
navigationView.setItemIconTintList(null);

您可以在菜单中执行此操作 xml,例如在您的代码中将 checked 设置为 true

<item
    android:id="@+id/home_action"
    android:checked="true"
    android:icon="@drawable/home"
    android:title="@string/home" />