i need to have two beautifull section like this library in My NavigationView Drawer.xml
exactly like this:
http://i.stack.imgur.com/Sbhzu.jpg
i'm currently using this:
https://github.com/AkashBang/NavigationView
How we can do that?
solved, Here is the example:
<group android:checkableBehavior="single">
<item
android:id="#+id/menuItem1"
android:icon="#drawable/ic_dashboard"
android:title="MenuItem 1" />
<item
android:id="#+id/menuItem2"
android:icon="#drawable/ic_event"
android:title="MenuItem 2" />
<item
android:id="#+id/menuItem3"
android:icon="#drawable/ic_headset"
android:title="MenuItem 3" />
<item
android:id="#+id/menuItem4"
android:icon="#drawable/ic_forum"
android:title="MenuItem 4" />
</group>
<item android:title="Sub items" >
<menu>
<item
android:id="#+id/menuItem5"
android:icon="#drawable/ic_dashboard"
android:title="Sub item 5" />
<item
android:id="#+id/menuItem6"
android:icon="#drawable/ic_forum"
android:title="Sub item 6" />
</menu>
</item>
Related
I have designed a navigation view so as to understand how it works. I created all the fragments and I can navigate through the NavigationView. However,something strange happens. I will explain this with images:).
When I launch the app the home fragment appears. This is what I want.
Now I chose another menu from my navigation view.
Do you see what's happening? The ripple effect stays in Home menu. This is my menu xml code.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:title="Home options">
<menu>
<group android:checkableBehavior="single">
<item
android:checked="true"
android:id="#+id/home"
android:title="Home"
android:icon="#drawable/ic_hardware_keyboard_alt"
></item>
<item
android:checked="false"
android:id="#+id/sub_one"
android:title="Sub item 1" />
<item
android:checked="false"
android:id="#+id/sub_two"
android:title="Sub item 2" />
</group>
</menu>
</item>
<item
android:title="Favourite options"
>
<menu>
<group android:checkableBehavior="single">
<item
android:checked="false"
android:id="#+id/favorite"
android:title="Favorite"
android:icon="#drawable/favorite"
></item>
<item
android:checked="false"
android:id="#+id/sub_three"
android:title="Sub item 3" />
<item
android:checked="false"
android:id="#+id/sub_four"
android:title="Sub item 4" />
</group>
</menu>
</item>
<item
android:checked="false"
android:id="#+id/settings"
android:title="Settings"
android:icon="#drawable/ic_action_settings_applications"
></item>
</group>
Any ideas how to fix my problem?
Thanks Theo.
In your this code .
<item
android:checked="true"
android:id="#+id/home"
android:title="Home"
android:icon="#drawable/ic_hardware_keyboard_alt"
change this
android:checked="true"
to this
android:checked="false"
You can set check true that's why Home menu is always display checked.
I'm unable to change the colour of my sub menu header, please see the image below.
I can change the background of the NavigationView, the colour of the fonts and the colour of the icons but I can't find an answer on the sub menu header.
e.g.
<android.support.design.widget.NavigationView
android:id="#+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#color/white"
app:itemBackground="#color/white"
app:itemIconTint="#color/dark_green"
app:itemTextColor="#color/dark_green"
app:headerLayout="#layout/drawer_header"
app:menu="#menu/drawer" />
Here is my menu xml:
<group android:checkableBehavior="single">
<item
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:icon="#drawable/ic_place"
android:title="#string/nav_item_location" />
</group>
<item android:title="#string/nav_sub_menu">
<menu>
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item01" />
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item02" />
</menu>
</item>
Please advise. :-).
NavigationView Sub Menu problem
Try this code to do something like the image below
<menu>
<group android:checkableBehavior="single">
<item
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:icon="#drawable/ic_place"
android:title="#string/nav_item_location" />
</group>
<group android:checkableBehavior="single">
<item android:title="#string/nav_sub_menu">
<menu>
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item01" />
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item02" />
</menu>
</item>
</group>
</menu>
The difference with your code is that the code is inside a <group>...</group>
#Jorge
Like this?
<group android:checkableBehavior="single">
<item
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:icon="#drawable/ic_place"
android:title="#string/nav_item_location" />
</group>
<group android:checkableBehavior="single">
<item android:title="#string/nav_sub_menu">
<menu>
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item01" />
<item
android:icon="#drawable/ic_emoticon"
android:title="#string/nav_sub_menu_item02" />
</menu>
</item>
</group>
It doesn't seem to make a difference
I want to know if there is a way to tell the design support navigation drawer to only mark one item as selected, when I have sub-items which contain more items.
Code:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_1"
android:icon="#drawable/ic_icon"
android:title="Item 1"
android:checked="true"/>
<item
android:id="#+id/nav_2"
android:icon="#drawable/ic_icon"
android:title="Item 2" />
</group>
<item android:title="Subtitle 1">
<menu>
<item
android:id="#+id/nav_2"
android:icon="#drawable/ic_icon"
android:title="Item 3" />
<item
android:id="#+id/nav_4"
android:icon="#drawable/ic_icon"
android:title="Item 4" />
<item
android:id="#+id/nav_5"
android:icon="#drawable/ic_icon"
android:title="Item 5" />
</menu>
</item>
</menu>
I have Item 1 selected by default and it is the first fragment that appears when launching the app. When I press on an item in a subtitle, Item 5 for example, Item 1 still has the darker background and is colored in the accent color, while Item 5 is only colored in the accent color without the dark background. How can I archive that only one items gets marked at one time?
the group needs to be around all items like this:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_1"
android:icon="#drawable/ic_icon"
android:title="Item 1"
android:checked="true"/>
<item
android:id="#+id/nav_2"
android:icon="#drawable/ic_icon"
android:title="Item 2" />
<item android:title="Subtitle 1">
<menu>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_2"
android:icon="#drawable/ic_icon"
android:title="Item 3" />
<item
android:id="#+id/nav_4"
android:icon="#drawable/ic_icon"
android:title="Item 4" />
<item
android:id="#+id/nav_5"
android:icon="#drawable/ic_icon"
android:title="Item 5" />
</group>
</menu>
</item>
</group>
</menu>
I've been following the latest (?) tutorial of how to implement a Material Design Navigation Drawer side by side with this blogpost.
Instead of populating a list view it uses a menu resource (xml). Very neat and easy, but..
I can't figure out how to add dividers between menu items.
Image from Material Design spec:
menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/item_1"
android:checked="true"
android:icon="#android:drawable/ic_menu_info_details"
android:title="Item1"
/>
<item
android:id="#+id/item_2"
android:icon="#android:drawable/ic_menu_agenda"
android:title="Item2"
/>
<item
android:id="#+id/item_3"
android:icon="#android:drawable/ic_menu_mapmode"
android:title="Item3"
/>
<item
android:id="#+id/item_4"
android:icon="#android:drawable/ic_menu_help"
android:title="Item4"
/>
</group>
</menu>
I have tried dividing by groups, but it gives me no divider. When I added a submenu, I got a divider but also an unwanted header.
Like this:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/item_1"
android:checked="true"
android:title="Header1"
>
<menu>
<item
android:id="#+id/item_2"
android:icon="#android:drawable/ic_menu_agenda"
android:title="SubItem1"
/>
</menu>
</item>
<item
android:id="#+id/item_2"
android:icon="#android:drawable/ic_menu_agenda"
android:title="Item2"
/>
<item
android:id="#+id/item_3"
android:icon="#android:drawable/ic_menu_mapmode"
android:title="Item3"
/>
<item
android:id="#+id/item_4"
android:icon="#android:drawable/ic_menu_help"
android:title="Item4"
/>
</group>
</menu>
I want the divider, but not the header.
Thanks in advance, I appreciate the help!
To add a divider after each menu item provide unique id to each group item as shown below
<group
android:id="#+id/group_item_1"
android:checkableBehavior="single">
<item
android:id="#+id/nav_agreement"
android:icon="#mipmap/ic_launcher"
android:title="Agreement" />
</group>
<group
android:id="#+id/group_item_2"
android:checkableBehavior="single">
<item
android:id="#+id/nav_aboutus"
android:icon="#mipmap/ic_launcher"
android:title="About Us" />
</group>
<group
android:id="#+id/group_item_3"
android:checkableBehavior="single">
<item
android:id="#+id/nav_terms"
android:icon="#mipmap/ic_launcher"
android:title="Terms Condition " />
</group>
<group
android:id="#+id/group_item_4"
android:checkableBehavior="single">
<item
android:id="#+id/nav_chngpassword"
android:icon="#mipmap/ic_launcher"
android:title="Change Password" />
</group>
<group
android:id="#+id/group_item_5"
android:checkableBehavior="single">
<item
android:id="#+id/nav_signout"
android:icon="#mipmap/ic_launcher"
android:title="Sign Out" />
</group>
This question already has answers here:
How to create a simple divider in the new NavigationView?
(14 answers)
Closed 6 years ago.
Android support design library provide NavigationView:
<android.support.design.widget.NavigationView
...
app:menu="#menu/navigation_drawer_items" />
menu/navigation_drawer_items:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item .../>
...
</group>
<group android:checkableBehavior="single">
<item .../>
...
</group>
</menu>
How to add divider, separator or space between groups (like on picture)?
Just give a unique id to each group. It will create a separator automatically.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="#+id/group_feature"
android:checkableBehavior="single">
<item android:id="#+id/navdrawer_item_map"
android:checked="true"
android:icon="#drawable/ic_drawer_map"
android:title="#string/navdrawer_item_map"/>
</group>
<group android:id="#+id/group_settings"
android:checkableBehavior="single">
<item android:id="#+id/navdrawer_item_settings"
android:icon="#drawable/ic_drawer_settings"
android:title="#string/navdrawer_item_settings"/>
</group>
</menu>
you do something like this.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_home"
android:icon="#drawable/ic_dashboard"
android:title="Home" />
<item
android:id="#+id/nav_messages"
android:icon="#drawable/ic_event"
android:title="Messages" />
<item
android:id="#+id/nav_friends"
android:icon="#drawable/ic_headset"
android:title="Friends" />
<item
android:id="#+id/nav_discussion"
android:icon="#drawable/ic_forum"
android:title="Discussion" />
</group>
<item android:title="Sub items">
<menu>
<item
android:icon="#drawable/ic_dashboard"
android:title="Sub item 1" />
<item
android:icon="#drawable/ic_forum"
android:title="Sub item 2" />
</menu>
</item>
</menu>
this code is taken from the Design Library example app made by Chris Barnes https://github.com/chrisbanes/cheesesquare
I'm using it this way:
<group
android:id="#+id/group1"
android:checkableBehavior="single">
<item
android:id="#+id/menu1"
android:icon="#drawable/somedrawable"
android:title="Lorem ipsum" />
</group>
<group
android:id="#+id/group2"
android:checkableBehavior="single">
<item
android:id="#+id/menu2"
android:icon="#drawable/somedrawable"
android:title="Dolor it amet" />
</group>
IDs are important (+id/group1 and +id/group2). Without ids you won't see divider. It is working in my app.
Divider in NavigationMenuList achieved using grouping the Menu items but make sure you are giving group id #+id that is necessary.
Below is working code for you
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="#+id/gp_one"
android:checkableBehavior="single">
<item
android:id="#+id/nav_home"
android:icon="#drawable/ic_avatar"
android:title="Home" />
</group>
<group
android:id="#+id/gp_two"
android:checkableBehavior="single">
<item
android:id="#+id/nav_account"
android:icon="#drawable/ic_avatar"
android:title="My Account" />
<item
android:id="#+id/nav_orders"
android:icon="#drawable/ic_avatar"
android:title="My Orders" />
<item
android:id="#+id/nav_wishlist"
android:icon="#drawable/ic_avatar"
android:title="My Wishlist" />
</group>
<group
android:id="#+id/gp_three"
android:checkableBehavior="single">
<item
android:id="#+id/nav_rateus"
android:icon="#drawable/ic_avatar"
android:title="Rate Us" />
<item
android:id="#+id/nav_share"
android:icon="#drawable/ic_avatar"
android:title="Share" />
<item
android:id="#+id/nav_logout"
android:icon="#drawable/ic_avatar"
android:title="Logout" />
</group>
You can add your text between <item android:title="title_name"> and </item>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_display_image"
android:title="Load Image"
android:icon="#drawable/ic_menu_gallery"
app:showAsAction="always"
app:actionLayout="#layout/switch_nav_drawer"/>
<item
android:id="#+id/nav_camera"
android:icon="#drawable/ic_menu_camera"
android:title="Saved News" />
<item
android:id="#+id/nav_gallery"
android:icon="#drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="#+id/nav_slideshow"
android:icon="#drawable/ic_menu_slideshow"
android:title="Slideshow" />
</group>
<item android:title="Settings">
<menu>
<item
android:id="#+id/nav_manage"
android:icon="#drawable/ic_menu_manage"
android:title="Tools" />
</menu>
</item>
<item
android:id="#+id/about_us"
android:icon="#drawable/ic_info_black_24dp"
android:title="About Us"></item>
</menu>