i am trying to make my OnOptionMenu looks like this:
Any ideas on how to make it close to it??
Edit:
here is what i did:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/item1"
android:title="ajouter"
android:icon="#drawable/ic_action_plus"
android:showAsAction="always">
</item>
<item
android:id="#+id/item2"
android:title="rechercher"
android:icon="#drawable/ic_action_loupe"
android:showAsAction="always">
</item>
<item
android:id="#+id/item3"
android:title="editer"
android:icon="#drawable/ic_action_crayon"
android:showAsAction="ifRoom">
</item>
<item
android:id="#+id/item4"
android:title="supprimer"
android:icon="#drawable/ic_action_poubelle"
android:showAsAction="ifRoom">
</item>
<item
android:id="#+id/item5"
android:title="à propos"
android:showAsAction="ifRoom"
android:icon="#drawable/ic_action_poubelle">
</item>
<item
android:id="#+id/item6"
android:title="Quitter"
android:showAsAction="ifRoom"
android:icon="#drawable/ic_action_poubelle">
</item>
</menu>
but it still looks the same, i still get a quiet classic menu.( just the item's title on a list)
here is how it looks:
http://img651.imageshack.us/img651/3007/resultax.th.png
by the way do i have to inflate the actionbar menu and the menu on the bottom with two different inflaters??
any additional ideas??
Create resource file in res/menu and inflate it in onCreateOptionsMenu() Activity-method
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="#+id/help"
android:title="Help"
android:icon="#drawable/ic_1/>
<item android:id="#+id/keyboard"
android:title="Keyboard"
android:icon="#drawable/ic_2" />
<item android:id="#+id/exit"
android:title="Exit"
android:icon="#drawable/ic_3/>
</menu>
It is very easy, you can do this in xml file itself
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="#+id/Non_Veg"
android:title="Non Veg"
android:icon="#drawable/hamburger">
<menu>
<item
android:id="#+id/Chicken"
android:title="Chicken"/>
<item
android:id="#+id/Butter_Chicken"
android:title="Butter Chicken" />
<item
android:id="#+id/Mutton"
android:title="Mutton" />
<item
android:id="#+id/Beef"
android:title="Beef" />
<item
android:id="#+id/Ham"
android:title="Ham" />
</menu>
</item>
</menu>
Here in item tag you can directly use the android:icon property to set the icon of the menu, hope I helped.
Related
I'm trying to get a menu layout where I have 2 icons next to each other which both have dropdown options. Currently it's being annoying and putting all the items in the default option menu like this:
image
<?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:title="#string/menu_sort"
android:id="#+id/menu_sort"
app:showAsAction="always"
android:icon="#drawable/ic_baseline_sort_24">
<item android:title="Distance"/>
<item android:title="Salary"/>
<item android:title="Date Posted"/>
</item>
<item
android:title="#string/menu_filter"
android:id="#+id/menu_filter"
app:showAsAction="always"
android:icon="#drawable/ic_baseline_filter_list_24">
<item android:title="Freelance"/>
<item android:title="Zero Hour"/>
<item android:title="Part Term"/>
<item android:title="Internship"/>
</item>
</menu>
Maybe this can help....
<?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:title="#string/menu_sort"
android:id="#+id/menu_sort"
app:showAsAction="always"
android:icon="#drawable/ic_baseline_sort_24">
<menu>
<item android:title="Distance"/>
<item android:title="Salary"/>
<item android:title="Date Posted"/>
</menu>
</item>
<item
android:title="#string/menu_filter"
android:id="#+id/menu_filter"
app:showAsAction="always"
android:icon="#drawable/ic_baseline_filter_list_24">
<menu>
<item android:title="Freelance"/>
<item android:title="Zero Hour"/>
<item android:title="Part Term"/>
<item android:title="Internship"/>
</menu>
</item>
</menu>
You add <menu></menu> inside an item and add submenu items there....
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!!
I downloadet a template and I have this problem:
https://gyazo.com/5161740a619bacb8aa8bd430a3e40b2d
The "Inbox" button is too close to the top and it looks bad.
I want to set a marginTop from 10dp, is that possible?
Here is my "drawermenu.xml"
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Inbox"
android:id="#+id/nav_item_inbox"
android:icon="#drawable/inbox" />
<item android:title="Sent"
android:id="#+id/nav_item_sent"
android:icon="#drawable/sent"/>
<item android:title="Drafts"
android:id="#+id/nav_item_draft"
android:icon="#drawable/draft"/>
<item android:title="Others">
<menu>
<item
android:title="Spam"
android:icon="#drawable/spam"/>
<item
android:title="Bin"
android:icon="#drawable/bin"/>
</menu>
</item>
<group android:id="#+id/group_settings_id">
<item android:title="Settings"
android:icon="#drawable/settings"/>
<item android:title="Help"
android:icon="#drawable/help"/>
</group>
</menu>
Is there any way to change the Item color programmatically of the selected item
in the navigation drawer?
I'am able to use the app:itemTextColor, but the problem is if i used this,
the checked in the menu item will not highlight.
<?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_home"
android:icon="#drawable/ic_home_black_24dp"
android:title="Home" />
<item
android:id="#+id/nav_search"
android:icon="#drawable/ic_search_black"
android:title="Search Location" />
<item
android:id="#+id/nav_fav"
android:icon="#drawable/ic_favorite"
android:title="Favorites" />
<item
android:id="#+id/nav_route"
android:icon="#drawable/ic_place"
android:title="Route" />
<item
android:id="#+id/nav_recent"
android:icon="#drawable/ic_nav_route"
android:title="Recent Location" />
</group>
<item android:title="Others">
<menu>
<item
android:id="#+id/nav_settings"
android:checked="true"
android:checkable="true"
android:icon="#drawable/ic_settings"
android:title="Settings" />
<item
android:id="#+id/nav_about"
android:icon="#android:drawable/ic_menu_send"
android:title="About" />
</menu>
</item>
</menu>
create a selector
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="#color/primary" android:state_checked="true" />
<item android:drawable="#android:color/transparent" />
</selector>
and set
app:itemBackground="#drawable/nav_view_item_background"
then the selected item will be highlighted.
if you want to change the text color then set
app:itemTextColor="#drawable/nav_view_item_textcolor"
and create a selector for it like
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#android:color/white" android:state_checked="true" />
<item android:color="#color/primary" />
</selector>
Note : Yasoda's answer not worked for me, which is true in most of the cases.
Though I set the state_checked is true and give it a drawable color, it seems the item is never checked.
For more search, I found the issue was happened with menu item. I hadn't given checked item to true in menu item in menu file.
Then I have to add a tag android:checkable=true to it.
and it works like charm.
menu layout.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/item1"
android:icon="#drawable/ic_menu_item1"
android:showAsAction="always"
android:title="#string/menu_item1">
</item>
<item
android:id="#+id/item2"
android:icon="#drawable/toolbox_item2"
android:showAsAction="always"
android:title="#string/menu_item2">
</item>
<item
android:id="#+id/item3"
android:icon="#drawable/ic_menu_item3"
android:showAsAction="always"
android:title="#string/menu_item3">
</item>
<item
android:id="#+id/item4"
android:icon="#drawable/ic_menu_item4"
android:showAsAction="always"
android:title="#string/menu_item4">
</item>
<item
android:id="#+id/item5"
android:icon="#drawable/ic_menu_item5"
android:showAsAction="always"
android:title="#string/menu_item5">
</item>
<item
android:id="#+id/item6"
android:icon="#drawable/ic_menu_item6"
android:showAsAction="always"
android:title="#string/menu_item6">
</item>
<item
android:id="#+id/item7"
android:icon="#drawable/ic_menu_item7"
android:title="#string/menu_item7"
android:titleCondensed="#string/menu_prev_item7">
</item>
<item
android:id="#+id/item8"
android:icon="#drawable/ic_menu_item8"
android:title="#string/menu_item8"
android:titleCondensed="#string/menu_next_item8">
</item>
//items which have group inside overflow shows an icon
<item
android:id="#+id/tools"
android:icon="#drawable/icon"
android:title="#string/menu_tools">
<menu>
<group
android:id="#+id/tools_group"
android:checkableBehavior="single" >
<item
android:id="#+id/tools_item9"
android:icon="#drawable/ic_menu_item9"
android:title="#string/menu_item9">
</item>
<item
android:id="#+id/tools_item10"
android:icon="#drawable/toolbox_item10"
android:title="#string/menu_item10">
</item>
<item
android:id="#+id/tools_item11"
android:icon="#drawable/ic_menu_item11"
android:title="#string/menu_item11"/>
</group>
</menu>
</item>
//problem from here
//items which doesn't have group inside overflow items doesn't shows an icon
<item // from here doesn't show icon for menu item present in overflow
android:id="#+id/color"
android:enabled="true"
android:icon="#drawable/icon"
android:title="#string/menu_color">
</item>
<group
android:id="#+id/page_group"
android:enabled="true"
android:visible="true" >
<item
android:id="#+id/page"
android:title="#string/menu_page_group">
<menu>
<item
android:id="#+id/page_clear"
android:icon="#drawable/ic_menu_pageclear"
android:title="#string/menu_page_clear">
</item>
</menu>
</item>
</group>
<item
android:id="#+id/export"
android:icon="#drawable/ic_menu_export"
android:title="#string/menu_export">
</item>
<item
android:id="#+id/settings"
android:icon="#drawable/ic_menu_setting"
android:showAsAction="never"
android:title="#string/menu_settings"
>
</item>
</menu>
// I want to set icon with text for menu item from #+id/color to last one