是否可以通过导航抽屉更改单个项目的背景颜色?

时间:2018-11-04 21:32:37

标签: android navigation-drawer background-color menuitem

我有一个导航抽屉菜单,如下所示:

<?xml version"1.0" encoding="utf-8"?>
<menu
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:showIn="navigation_view">
    <group android:id="@+id/grp1"       android:checkableBehavior="single">
        <item
            android:id="@+id/nav_my_company"
            android:icon="@mipmap/ic_item_company_layer"
            android:state_checked="false"
            android:visible="false"
            android:title="@string/nav_my_company"/>
        <item
            android:id="@+id/nav_stock"
            android:icon="@mipmap/ic_item_stock_layer"
            android:state_checked="false"
            android:visible="false"
            android:title="@string/nav_stock"/>
        <item
            android:id="@+id/nav_discount"
            android:icon="@mipmap/ic_item_discount_layer"
            android:state_checked="false"
            android:visible="false"
            android:title="@string/nav_discount"/>
    </group>
</menu>

我正在尝试使单个项目具有不同的背景色(android:drawable =“ @ color / myRedColor”),如下所示:

 <item
            android:id="@+id/nav_stock"
            android:icon="@mipmap/ic_item_stock_layer"
            android:state_checked="false"
            android:visible="false"
            android:drawable = "@color/myRedColor"
            android:title="@string/nav_stock"/>

但是我不明白。

欢迎任何评论或建议。

谢谢

3 个答案:

答案 0 :(得分:0)

是-您可以创建一个xml文件,并将其包含在导航标签中:

<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:layout_marginTop="?android:attr/actionBarSize">

        <include layout="@layout/a_main_navigation_content" />

    </android.support.design.widget.NavigationView>

,并且可以在a_main_navigation_content.xml中使用自定义属性创建textView或您想要的任何内容。

,您将不再需要菜单项。

答案 1 :(得分:0)

为了使用导航抽屉的好处和使用自定义bg,您需要编写一个自定义导航适配器。然后,您可以膨胀任何想要的布局。创建一个扩展RecyclerView.Adapter<NavigationAdapter.ViewHolder>的类。

答案 2 :(得分:-1)

  

如果您想使用商品标签并执行此操作,则可以尝试使用BackgroundColorSpanand

s.setSpan(new BackgroundColorSpan(Color.RED),0,s.length(),0);