how to customize nevegation_menu in android using menu item.xml - android

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_profile"
android:icon="#drawable/ic_my_profile"
android:title="#string/nav_item_my_profile" />
</group>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_merge"
android:icon="#drawable/ic_merge_contact"
android:title="#string/nav_item_merge" />
<item
android:id="#+id/nav_export"
android:icon="#drawable/ic_merge_contact"
android:title="#string/nav_item_export" />
<item
android:id="#+id/nav_notifications"
android:icon="#drawable/ic_notifications"
android:title="#string/nav_item_notifications" />
</group>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_share"
android:icon="#drawable/ic_share_app"
android:title="#string/nav_item_share" />
<item
android:id="#+id/nav_rate"
android:icon="#drawable/ic_rate"
android:title="#string/nav_item_rate" />
</group>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_report"
android:icon="#drawable/ic_report"
android:title="#string/nav_item_report" />
<item
android:id="#+id/nav_faq"
android:icon="#drawable/ic_faq"
android:title="#string/nav_item_faq" />
<item
android:id="#+id/nav_about"
android:icon="#drawable/ic_about"
android:title="#string/nav_item_about" />
</group>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_logout"
android:icon="#drawable/ic_logout"
android:title="#string/nav_item_logout" />
</group>
</menu>
this is my navigationmenu.xml
my current Screen using given xml is below.
my expected screen is below i have all image i just want separate all item in group like given screen also i want set border and background with white please suggest me how to do this i am unable to do this i dont know how to achieve my expected screen is below

Related

Android Drawer Layout centered

I'm not finding how to create a icon over text centered in the menu of a DrawerLayout. Using standard Drawer layout file with menu items. Tried adding android:gravity but that does not seem to help. Thoughts?
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item
android:layout_gravity="center_horizontal"
android:id="#+id/nav_backpack"
android:icon="#drawable/person"
android:title="Backpack" />
<item
android:id="#+id/nav_messages"
android:icon="#drawable/messages"
android:title="Messages" />
<item
android:id="#+id/nav_library"
android:icon="#drawable/book"
android:title="Library" />
<item
android:id="#+id/nav_calendar"
android:icon="#drawable/calendar"
android:title="Calendar" />
<item
android:id="#+id/nav_progress"
android:icon="#drawable/book"
android:title="Progress" />
<item
android:id="#+id/nav_account"
android:title="Account" />
<item
android:id="#+id/nav_help"
android:title="Help" />
<item
android:id="#+id/nav_logout"
android:title="Logout" />
</group>
<group android:checkableBehavior="none">
<item android:title="About">
<menu>
<item
android:id="#+id/nav_version"
android:icon="#drawable/ic_menu_share"
android:title="v1.1(03)" />
</menu>
</item>
</group>
</menu>

Error:(6) error: XML or text declaration not at start of entity

My android project gives this error while I'm trying to build it.I found several solutions which tell me to remove whitespace initially. But unfortunately, I don't have any whitespace. So can you please let me know why my error occurred and possible solution?
My XML is here :
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<?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_allplace"
android:icon="#drawable/ic_all_places"
android:title="#string/nav_title_all_place" />
<item
android:id="#+id/nav_categories"
android:icon="#drawable/ic_categories"
android:title="#string/nav_title_categories" />
<item
android:id="#+id/nav_map"
android:icon="#drawable/ic_map"
android:title="#string/nav_title_map" />
<item
android:id="#+id/nav_ar"
android:icon="#drawable/ic_ar_camera"
android:title="#string/nav_ar_map" />
</group>
<group android:checkableBehavior="none">
<item android:title="#string/nav_title_my_activities">
<menu>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_review"
android:icon="#drawable/ic_rate_review"
android:title="#string/nav_title_rates_and_reviews" />
<item
android:id="#+id/nav_gallery"
android:icon="#drawable/ic_collections"
android:title="#string/nav_title_gallery" />
<item
android:id="#+id/nav_logout"
android:icon="#drawable/ic_cancel"
android:title="#string/nav_title_sign_out" />
</group>
</menu>
</item>
</group>
<group android:checkableBehavior="none">
<item android:title="#string/setting_test">
<menu>
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_about"
android:icon="#drawable/ic_about"
android:title="#string/str_about" />
</group>
</menu>
</item>
</group>
</menu>
Remove the extra
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

Menu group in toolbar need item dividers

<?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">
<item
android:id="#+id/action_filter"
android:icon="#drawable/arrows_sync_icn"
android:orderInCategory="102"
android:title="Filter"
app:showAsAction="always"
>
<menu>
<group android:id="#+id/group_1">
<item
android:id="#+id/action_latest_story"
android:title="Latest stories"
/>
</group>
<group android:id="#+id/group_2">
<item
android:id="#+id/action_most_liked"
android:title="Most liked"
/>
</group>
<group android:id="#+id/group_3">
<item
android:id="#+id/action_most_shared"
android:title="Most shared"
/>
</group>
<group android:id="#+id/group_4">
<item
android:id="#+id/action_most_read"
android:title="Most read"
/>
</group>
</menu>
</item>
<item
android:id="#+id/action_notification"
android:actionLayout="#layout/lyt_notification_count"
android:icon="#drawable/notification_navigation"
android:orderInCategory="101"
android:title="Notification"
app:showAsAction="always" />
<item
android:id="#+id/action_search"
android:icon="#drawable/search_navigation"
android:orderInCategory="100"
android:title="Search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always" />
</menu>
So this is what I'm doing now. I need to draw a item divider between each item(Orderincatogory = 102). I don't know how to do that please help if anyone know the answer. These are in toolbar and I'm testing in kitkat and lollypop device.

Divider in Navigation Drawer using a xml 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>

Android NavigationView menu group divider [duplicate]

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>

Categories

Resources