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>
<?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
When I changing icon in navigation drawer items by using (drawable > image asset > 'Action bar and tab icon') or (copy + past ) in drawable folder, in app menu icon shows the 'Theme color' witch was selected form " image asset > 'Action bar and tab icon' > Theme ".
I tried to all the three theme but main icon can not be shown
Here the apps screenshot and activity_main_drawer.xml file and xml file screenshot
<?xml version="1.0" encoding="utf-8"?>
<group android:checkableBehavior="single">
<item android:id="#+id/nav_us"
android:icon="#drawable/eee"
android:title="US" />
<item android:id="#+id/nav_world" android:icon="#drawable/bbb"
android:title="World" />
<item android:id="#+id/nav_tech" android:icon="#drawable/f_g_h"
android:title="Tech" />
<item android:id="#+id/nav_sports" android:icon="#drawable/f_g_h"
android:title="Sports" />
<item android:id="#+id/nav_worl" android:icon="#android:drawable/ic_dialog_dialer"
android:title="World" />
<item android:id="#+id/nav_tec" android:icon="#android:drawable/ic_dialog_dialer"
android:title="Tech" />
<item android:id="#+id/nav_sport" android:icon="#android:drawable/ic_dialog_dialer"
android:title="Sports" />
</group>
<item android:title="Communicate">
<menu>
<item android:id="#+id/nav_share" android:icon="#android:drawable/btn_star"
android:title="About us" />
<item android:id="#+id/nav_send" android:icon="#android:drawable/ic_menu_send"
android:title="Contact us" />
</menu>
</item>
<?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_camera"
android:icon="#drawable/ic_menu_camera"
android:title="Import" />
<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" />
<item
android:id="#+id/nav_manage"
android:icon="#drawable/ic_menu_manage"
android:title="Tools" />
</group>
<item android:title="Communicate">
<menu>
<item
android:id="#+id/nav_share"
android:icon="#drawable/ic_menu_share"
android:title="Share" />
<item
android:id="#+id/nav_send"
android:icon="#drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
Please have a look like this.
below is my xml code where vector image works on items but does not work on its parent. I have given comment for those two parents.I also wish to give colored icons there later and textcolor white.
<?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_camera"
android:icon="#drawable/ic_menu_camera"
android:title="Import" />
<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="Communicate"
android:icon="#drawable/ic_menu_share">
<!-- above image not visible but below visible-->
<menu>
<item
android:id="#+id/nav_share"
android:icon="#drawable/ic_menu_share"
android:title="Share" />
<item
android:id="#+id/nav_send"
android:icon="#drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
<item android:title="Setting"
android:icon="#drawable/ic_menu_share">
<!-- above image not visible but below visible -->
<menu>
<item
android:id="#+id/nav_share1"
android:icon="#drawable/ic_menu_share"
android:title="Share" />
<item
android:id="#+id/nav_send1"
android:icon="#drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
Here "Communicate " and "Setting" not showing icons
Put them in menu if you want to show icons also:
<group android:checkableBehavior="single">
<item
android:id="#+id/nav_camera"
android:icon="#drawable/ic_menu_camera"
android:title="Import" />
<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>
<menu>
<item android:title="Communicate"
android:icon="#drawable/ic_menu_share">
<item
android:id="#+id/nav_share"
android:icon="#drawable/ic_menu_share"
android:title="Share" />
<item
android:id="#+id/nav_send"
android:icon="#drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
<menu>
<item android:title="Setting"
android:icon="#drawable/ic_menu_share">
<item
android:id="#+id/nav_share1"
android:icon="#drawable/ic_menu_share"
android:title="Share" />
<item
android:id="#+id/nav_send1"
android:icon="#drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
You can change the textcolor of all menu item using: app:itemTextColor="#android:color/white" attribute in xml code of navigation view.
Edit
You will get the colored icons if you use either
app:itemIconTint="null" in xml or
navigationView.setItemIconTintList(null); in your java code.
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>