如何更改附加到导航视图的子菜单的文本和图标的颜色? [英] How to change color of text and icon of Sub-Menu attached to Navigation view?
问题描述
我想弄清楚如何更改实际附加到导航视图的子菜单项的颜色.以下代码实际上来自android studio中提供的Navigation Drawer的默认模板.
activity_main_drawer.xml
<块引用> <?xml version="1.0" encoding="utf-8"?><菜单xmlns:android="http://schemas.android.com/apk/res/android"><group android:checkableBehavior="single"><项目android:id="@+id/nav_camara"android:icon="@android:drawable/ic_menu_camera"android:title="导入"/><项目android:id="@+id/nav_gallery"android:icon="@android:drawable/ic_menu_gallery"android:title="画廊"/><项目android:id="@+id/nav_slideshow"android:icon="@android:drawable/ic_menu_slideshow"android:title="幻灯片"/><项目android:id="@+id/nav_manage"android:icon="@android:drawable/ic_menu_manage"android:title="工具"/></组><item android:title="沟通"><菜单><项目android:id="@+id/nav_share"android:icon="@android:drawable/ic_menu_share"android:title="分享"/><项目android:id="@+id/nav_send"android:icon="@android:drawable/ic_menu_send"android:title="发送"/></菜单></项目></菜单>
activity_main.xml
<块引用> <包括布局="@layout/app_bar_main"android:layout_width="match_parent"android:layout_height="match_parent"/><android.support.design.widget.NavigationViewandroid:id="@+id/nav_view"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_gravity="开始"机器人:fitsSystemWindows =真"机器人:背景=#512DA8"app:headerLayout="@layout/nav_header_main"app:menu="@menu/activity_main_drawer"app:itemTextColor="@drawable/nav_menu_item_color"app:itemIconTint="@drawable/nav_menu_item_color"/></android.support.v4.widget.DrawerLayout>
并且我有一个用于单击和正常颜色的可绘制文件,它实际上在上面使用.nav_menu_item_color.xml
<块引用><item android:color="@color/navTextHover" android:state_checked="true"/><item android:color="@color/navTextNormal"/></选择器>
因此,您可以看到我在下面附加的结果图像:-
颜色不适用于子菜单,所以,我想做的是..我想更改菜单项通信"和子菜单项发送"和共享"的颜色,因为它适用于根菜单项目
您的子菜单需要包含在菜单中 &组标签如下.这将允许您一次选择任一菜单项.您可以通过在 NavigationView.OnNavigationItemSelectedListener 中将项目设置为已选中来选择它们.
<group android:checkableBehavior="single"><项目android:id="@+id/nav1"android:icon="@drawable/myd1"android:title="导航 1"/></组></菜单></项目></菜单>
I am trying to figure out how I can change color of sub-menu items which is actually attached to navigation view. Following codes are actually from default template of Navigation Drawer which is available in android studio.
activity_main_drawer.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_camara" android:icon="@android:drawable/ic_menu_camera" android:title="Import" /> <item android:id="@+id/nav_gallery" android:icon="@android:drawable/ic_menu_gallery" android:title="Gallery"/> <item android:id="@+id/nav_slideshow" android:icon="@android:drawable/ic_menu_slideshow" android:title="Slideshow"/> <item android:id="@+id/nav_manage" android:icon="@android:drawable/ic_menu_manage" android:title="Tools"/> </group> <item android:title="Communicate"> <menu> <item android:id="@+id/nav_share" android:icon="@android:drawable/ic_menu_share" android:title="Share"/> <item android:id="@+id/nav_send" android:icon="@android:drawable/ic_menu_send" android:title="Send"/> </menu> </item> </menu>
activity_main.xml
<include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent"/> <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" android:background="#512DA8" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" app:itemTextColor="@drawable/nav_menu_item_color" app:itemIconTint="@drawable/nav_menu_item_color"/> </android.support.v4.widget.DrawerLayout>
and I have a drawable file for click and normal color which is actualy used above. nav_menu_item_color.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector> <item android:color="@color/navTextHover" android:state_checked="true" /> <item android:color="@color/navTextNormal" /> </selector>
So, you can see result image as I attached below :-
Colors not working for sub menu, so, what I want to do is .. I want to change color of menu item "communicate" and sub-menu item "send" and "share" as it is working for root menu items
Your submenu needs to be wrapped in a menu & group tag like below. This will allow you to select one of any of the menu items at a time. You can select them by setting the item as checked in your NavigationView.OnNavigationItemSelectedListener.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav1"
android:checked="true"
android:icon="@drawable/myd1"
android:title="Nav 1"
/>
</group>
<item android:title="@string/nav_item_subheading_app">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/nav1"
android:icon="@drawable/myd1"
android:title="Nav 1"
/>
</group>
</menu>
</item>
</menu>
这篇关于如何更改附加到导航视图的子菜单的文本和图标的颜色?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!