Menu group in toolbar need item dividers - android

<?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.

Related

Grouping item with title in toolbar item menu

I wanna grouping this following items, this is a toolbar item menu pic 1 . I want to change it, like below : pic 2 the last one. so what should i do ? please help me. Thanks
This is my xml code :
`
<item
android:id="#+id/action_search2"
android:orderInCategory="100"
android:icon="#drawable/ic_search"
myapp:actionViewClass="android.widget.SearchView"
android:title="Search"
app:showAsAction="always"
android:visible="false"/>
<item
android:id="#+id/filter_city"
android:orderInCategory="100"
android:icon="#drawable/ic_sort_black_24dp"
android:title="filter"
app:showAsAction="always"
android:visible="true">
<menu>
<item
android:id="#+id/cityAll"
android:title="SEMUA" />
<item
android:id="#+id/citySby"
android:title="SURABAYA" />
<item
android:id="#+id/cityJkt"
android:title="JAKARTA" />
<item
android:id="#+id/statusAll"
android:title="SEMUA STATUS" />
<item
android:id="#+id/statusPublish"
android:title="PUBLISH" />
<item
android:id="#+id/statusNotPublish"
android:title="NOT PUBLISH" />
<item
android:id="#+id/statusClose"
android:title="CLOSE" />
</menu>
</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"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view"
tools:context=".MenuActivity">
<item
android:id="#+id/action_search2"
android:orderInCategory="100"
android:icon="#drawable/ic_search"
myapp:actionViewClass="android.widget.SearchView"
android:title="Search"
app:showAsAction="always"
android:visible="false"/>
<item
android:id="#+id/filter_city"
android:title="City"
android:orderInCategory="100"
android:icon="#drawable/ic_sort_black_24dp"
android:title="filter"
app:showAsAction="always"
android:visible="true">
<menu>
<item
android:id="#+id/cityAll"
android:title="SEMUA" />
<item
android:id="#+id/citySby"
android:title="SURABAYA" />
<item
android:id="#+id/cityJkt"
android:title="JAKARTA" />
</menu>
</item>
<item
android:id="#+id/action_search2"
android:orderInCategory="100"
android:icon="#drawable/ic_search"
myapp:actionViewClass="android.widget.SearchView"
android:title="General"
app:showAsAction="always"
android:visible="false"/>
<menu>
<item
android:id="#+id/statusAll"
android:title="SEMUA STATUS" />
<item
android:id="#+id/statusPublish"
android:title="PUBLISH" />
<item
android:id="#+id/statusNotPublish"
android:title="NOT PUBLISH" />
<item
android:id="#+id/statusClose"
android:title="CLOSE" />
</menu>
</item>
</item>
</menu>
Here is your solution try this snippet -
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<item
android:id="#+id/cityAll"
android:title="SEMUA" />
<item
android:id="#+id/citySby"
android:title="SURABAYA" />
<item
android:id="#+id/cityJkt"
android:title="JAKARTA" />
<item
android:id="#+id/statusAll"
android:title="SEMUA STATUS" />
<item
android:id="#+id/statusPublish"
android:title="PUBLISH" />
<item
android:id="#+id/statusNotPublish"
android:title="NOT PUBLISH" />
<item
android:id="#+id/statusClose"
android:title="CLOSE" />
</menu>
Here is your output -

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>

How to add title to group on PopupMenu, not submenu

I want to add the title of the group of items of the submenu. I don't want to use the submenus which are hidden and open on its click, I want to implement a title of the group of menu items. So now my menu looks like this:
But I want to implement it like this:
Now my XML seems like this, but it's using a nested submenus:
<?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:id="#+id/group_1"
android:checkableBehavior="single"
>
<item
android:id="#+id/apps_sort_title"
android:title="#string/apps_sort_title"
app:showAsAction="ifRoom"
/>
<item
android:id="#+id/apps_sort_date"
android:title="#string/apps_sort_date"
app:showAsAction="ifRoom"
/>
<item
android:id="#+id/apps_sort_size"
android:title="#string/apps_sort_size"
app:showAsAction="ifRoom"
/>
</group>
<item android:title="#string/title_order">
<menu>
<group
android:id="#+id/group_2"
android:checkableBehavior="single"
>
<item
android:id="#+id/apps_sort_asc"
android:title="#string/sort_asc"
app:showAsAction="ifRoom"
/>
<item
android:id="#+id/apps_sort_desc"
android:title="#string/sort_desc"
app:showAsAction="ifRoom"
/>
</group>
</menu>
</item>
</menu>
Thanks in advance!
Set the tittle on group, you have to implement your menu XML like this.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="#+id/gp1"
android:checkableBehavior="single"
android:visible="true">
<item android:title="Group Title">
<menu>
<item
android:id="#+id/group_item_one"
android:title="Item one"/>
<item
android:id="#+id/group_item_two"
android:title="Item two"/>
<item
android:id="#+id/group_item_three"
android:title="Item three"/>
</menu>
</item>
</group>
<group
android:id="#+id/gp2"
android:checkableBehavior="single">
<item
android:id="#+id/group_two_item_one"
android:title="Item one"/>
</group>
Finally found the solution I needed to use the setGroupVisible() method of the menu object passed into the onPrepareOptionsMenu() method.
menu.setGroupVisible(R.id.gp1, false);
Happy coding!!

Image Icon with Action Bar's Option Menu Item

I want to display Action Bar's Option Menu items with Image Icon like one we use in Navigation Drawer Bar.
Right now, My app option menu is showing as below : How do I display Image icon with Item 1, Item 2 etc.
Below code solved my issue. from this link : How To show icons in Overflow menu in ActionBar
<item
android:id="#+id/empty"
android:icon="#drawable/ic_action_overflow"
android:orderInCategory="101"
android:showAsAction="always">
<menu>
<item
android:id="#+id/action_show_ir_list"
android:icon="#drawable/ic_menu_friendslist"
android:showAsAction="always|withText"
android:title="List"/>
</menu>
</item>
Here is the solution You are Looking for Copy this menu.xml And change icons and name as per your need in mipmap
<?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/main_menu"
android:actionViewClass="android.widget.ImageButton"
android:icon="#mipmap/menu"
android:orderInCategory="200"
android:title="#string/action_settings"
app:showAsAction="always">
<menu>
<item
android:id="#+id/home"
android:icon="#mipmap/home_menu"
android:title="Home" />
<item
android:id="#+id/edit_profile"
android:icon="#mipmap/my_account"
android:title="Profile" />
<item
android:id="#+id/my_account"
android:icon="#mipmap/my_account"
android:title="My Account" />
<item
android:id="#+id/messages"
android:icon="#mipmap/message1"
android:title="Messages" />
<item
android:id="#+id/notification"
android:icon="#mipmap/notification"
android:title="Notifications" />
<item
android:id="#+id/settings"
android:icon="#mipmap/settings"
android:title="Settings" />
<item
android:id="#+id/logout"
android:icon="#mipmap/logout"
android:title="Logout" />
</menu>
</item>
</menu>
Then create menu_main.xml like this
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:title="#string/action_settings"
app:showAsAction="never" />
</menu>
Same like a drawer view
<?xml version="1.0" encoding="utf-8"?>
<group android:checkableBehavior="single">
<item
android:id="#+id/navigation_item_attachment"
android:checked="true"
android:icon="#drawable/ic_attachment"
android:title="#string/nav_item_attachment" />
<item
android:id="#+id/navigation_item_images"
android:icon="#drawable/ic_image"
android:title="#string/nav_item_images" />
<item
android:id="#+id/navigation_item_location"
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>
new menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.yadav.bookedup.MainActivity">
<item
android:id="#+id/action_search"
android:title="#string/action_search"
android:orderInCategory="200"
android:icon="#drawable/abc_ic_search_api_mtrl_alpha"
app:showAsAction="ifRoom|collapseActionView"
/>
<item
android:id="#+id/action_notf"
android:title="Notification"
android:orderInCategory="200"
android:icon="#drawable/notf"
app:showAsAction="ifRoom|collapseActionView"
/>
<item
android:id="#+id/action_info"
android:orderInCategory="100"
android:title="Info"
app:showAsAction="never"
android:icon="#drawable/ic_image" />
<item
android:id="#+id/req_clg"
android:orderInCategory="100"
android:title="Request College"
app:showAsAction="never"
android:icon="#drawable/ic_image" />
<item
android:id="#+id/req_book"
android:orderInCategory="100"
android:title="Request Books"
app:showAsAction="never"
android:icon="#drawable/ic_image" />
<item
android:id="#+id/share_app"
android:orderInCategory="100"
android:title="Share the app"
app:showAsAction="never"
android:icon="#drawable/ic_image" />
<item
android:id="#+id/rate_app"
android:orderInCategory="100"
android:title="Rate the App"
app:showAsAction="never" />
<item
android:id="#+id/action_terms"
android:orderInCategory="100"
android:title="Terms & Conditions"
app:showAsAction="never" />
<item
android:id="#+id/action_about"
android:orderInCategory="100"
android:title="About Us"
app:showAsAction="never" />
<item
android:id="#+id/action_contct"
android:orderInCategory="100"
android:title="Contact Us"
app:showAsAction="never" />

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