Viv*_*mar 5 xml android menu submenu navigation-drawer
我想弄清楚如何更改实际附加到导航视图的子菜单项的颜色。以下代码实际上来自android studio中可用的Navigation Drawer的默认模板。
activity_main_drawer.xml
Run Code Online (Sandbox Code Playgroud)<?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>
活动_main.xml
Run Code Online (Sandbox Code Playgroud)<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>
我有一个用于单击和正常颜色的可绘制文件,上面实际使用了它。nav_menu_item_color.xml
Run Code Online (Sandbox Code Playgroud)<?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>
颜色不适用于子菜单,所以,我想做的是..我想更改菜单项“通信”和子菜单项“发送”和“共享”的颜色,因为它适用于根菜单项
更改导航视图中标题和子标题的颜色并将以下代码粘贴到res>values>styles.xml中
<style name="NavigationViewStyle">
<item name="android:textSize">16sp</item> <!-- menu item text size-->
<item name="android:listPreferredItemHeightSmall">40dp</item><!-- menu item height-->
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">#FFB300</item>
</style>
Run Code Online (Sandbox Code Playgroud)
NavigationView 将标题颜色设置为 textcolor secondary ,将子标题颜色设置为 textColor Primary 。
最后,在navigationView中添加这个样式
<android.support.design.widget.NavigationView
android:id="@+id/navview"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#022F56"
app:headerLayout="@layout/sidebar_header"
app:theme="@style/NavigationViewStyle"
app:menu="@menu/sidebar_home"/>
Run Code Online (Sandbox Code Playgroud)
就这样,快乐编码。
您的子菜单需要包含在菜单和组标签中,如下所示。这将允许您一次选择任何菜单项之一。您可以通过在 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5646 次 |
| 最近记录: |