How could I remove icons gap in float action menu. I want to have settings without icons.
See images:
Here menu code
<item
android:id="#+id/menu_delete"
android:icon="#android:drawable/ic_menu_delete"
android:showAsAction="ifRoom"
android:title="Delete email"
android:titleCondensed="Delete">
</item>
<item
android:id="#+id/menu_more"
android:icon="#drawable/abc_ic_menu_moreoverflow_normal_holo_light"
android:title="Settings"
android:showAsAction="always">
<menu>
<item
android:id="#+id/submenu_readAllJobs"
android:title="#string/ReadAllJobsEmail"/>
<item
android:id="#+id/submenu_deleteAllJobs"
android:title="#string/DeleteAllJobsEmail"/>
</menu>
</item>
Resolved problem by changing menu code to following:
<item
android:id="#+id/menu_delete"
android:icon="#android:drawable/ic_menu_delete"
android:showAsAction="ifRoom"
android:title="Delete email"
android:titleCondensed="Delete">
</item>
<item
android:id="#+id/submenu_readAllJobs"
android:title="#string/ReadAllJobsEmail"
app:showAsAction="never"
/>
<item
android:id="#+id/submenu_deleteAllJobs"
android:title="#string/DeleteAllJobsEmail"
app:showAsAction="never"
/>
Result image:
Related
I have a NavigationView in my app. Inside the menu for the NavView, I have two sub menus:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="#+id/nav_group_one"
android:title="SubMenu A">
<menu>
<item
android:checkable="true"
android:title="One"/>
<item
android:checkable="true"
android:title="Two"/>
</menu>
</item>
<item
android:id="#+id/nav_group_two"
android:title="SubMenu B">
<menu>
<item
android:checkable="true"
android:title="Three"/>
<item
android:checkable="true"
android:title="Four"/>
</menu>
</item>
</menu>
In my activity's onNavigationItemSelected() I would like to be able to figure out which sub menu the selected item is in. How would I do this?
So far I haven't found an existing solution at this time, however I have found a workaround:
To solve this with minimal additional XML overhead, wrap each set of sub-menu items in a group, with an Id:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="#+id/nav_group_one"
android:title="SubMenu A">
<menu>
<group id="#+id/nav_group_wrapper_one">
<item
android:checkable="true"
android:title="One"/>
<item
android:checkable="true"
android:title="Two"/>
</group>
</menu>
</item>
<item
android:id="#+id/nav_group_two"
android:title="SubMenu B">
<menu>
<group id="#+id/nav_group_wrapper_two">
<item
android:checkable="true"
android:title="Three"/>
<item
android:checkable="true"
android:title="Four"/>
</group>
</menu>
</item>
</menu>
This way, one can simply call item.getGroupId() to infer the sub-menu it is contained within.
I have an ActionBar with 5 Items but app (no matter horizontally or vertically) shows only 4 Item icons. Additional Item is visible after clicking More (ellipsis) button. I turned of Title and Home and still app displays only 4 Items on the right of the screen.
How to extend default space in ActionBar for custom Items?
It might simply be the case that you haven't set the android:showAsAction attribute for the menu items, so by default it is hiding them once there is a certain number. Try setting android:showAsAction="always" for all of the items.
Oh, Yes menu/main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="pl.waw.miechoo.gpsspeed2.MainActivity"
>
<item android:id="#+id/menu_information"
android:icon="#drawable/ic_action_about"
android:title="Info"
/>
<item
android:id="#+id/menu_screen_orientation"
android:icon="#drawable/synchronization"
android:menuCategory="container"
android:orderInCategory="0"
android:showAsAction="ifRoom"
android:title="#string/menu_screen_orientation_string"
android:titleCondensed="#string/menu_screen_orientation_condensed_string">
<menu>
<group
android:id="#+id/action_settings"
android:checkableBehavior="single"
android:enabled="true"
android:menuCategory="container"
android:visible="true" >
<item
android:id="#+id/menu_screen_orientation_landscape"
android:title="#string/menu_screen_orientation_landscape_string">
</item>
<item
android:id="#+id/menu_screen_orientation_portrait"
android:title="#string/menu_screen_orientation_portrait_string">
</item>
<item
android:id="#+id/menu_screen_orientation_auto"
android:title="#string/menu_screen_orientation_auto_string">
</item>
</group>
</menu>
</item>
<item
android:id="#+id/menu_meause_unit_type"
android:icon="#drawable/checklist"
android:menuCategory="container"
android:orderInCategory="1"
android:showAsAction="always"
android:title="#string/measureUnitType"
android:titleCondensed="#string/measureUnitTypeCondensed">
<menu>
<group
android:checkableBehavior="single"
android:enabled="true"
android:visible="true" >
<item
android:id="#+id/menu_mps"
android:title="#string/menu_mps_string"/>
<item
android:id="#+id/menu_kmph"
android:title="#string/menu_kmph_string"/>
<item
android:id="#+id/menu_mph"
android:title="#string/menu_mph_string"/>
<item
android:id="#+id/menu_fps"
android:title="#string/menu_fps_string"/>
<item
android:id="#+id/menu_knots"
android:title="#string/menu_knots_string"/>
<item
android:id="#+id/menu_mach"
android:title="#string/menu_mach_string"/>
<item
android:id="#+id/menu_c"
android:title="#string/menu_c_string"/>
</group>
</menu>
</item>
<item
android:id="#+id/menu_hud"
android:icon="#drawable/gear"
android:menuCategory="container"
android:orderInCategory="2"
android:showAsAction="always"
android:title="#string/menu_hud">
<menu>
<group
android:checkableBehavior="single"
android:enabled="true"
android:visible="true" >
<item
android:id="#+id/menu_hud_off"
android:title="#string/menu_hud_off">
</item>
<item
android:id="#+id/menu_hud_on"
android:title="#string/menu_hud_on">
</item>
</group>
</menu>
</item>
<item
android:id="#+id/menu_precision"
android:icon="#drawable/compass"
android:menuCategory="container"
android:orderInCategory="2"
android:showAsAction="always"
android:title="#string/menu_precission_string">
<menu>
<group
android:checkableBehavior="single"
android:enabled="true"
android:visible="true" >
<item
android:id="#+id/menu_prec_0"
android:title="0">
</item>
<item
android:id="#+id/menu_prec_1"
android:title="0,0">
</item>
<item
android:id="#+id/menu_prec_2"
android:title="0,00">
</item>
<item
android:id="#+id/menu_prec_3"
android:title="0,000">
</item>
<item
android:id="#+id/menu_prec_4"
android:title="0,0000">
</item>
<item
android:id="#+id/menu_prec_5"
android:title="0,00000">
</item>
<item
android:id="#+id/menu_prec_6"
android:title="0,000000">
</item>
</group>
</menu>
</item>
I try to implement a drawer with new component of material design : NavigationView.
It's work very well. When I select an item changes its color change well with android:checkableBehavior="single".
<group
android:checkableBehavior="single">
<item
android:id="#+id/drawer_home"
android:checked="true"
android:icon="#drawable/ic_home_black_24dp"
android:title="#string/home"/>
<item
android:id="#+id/drawer_favourite"
android:icon="#drawable/ic_favorite_black_24dp"
android:title="#string/favourite"/>
...
<item
android:id="#+id/drawer_settings"
android:icon="#drawable/ic_settings_black_24dp"
android:title="#string/settings"/>
</group>
The problem come when I try to use section in drawer. It's this case, I can't use android:checkableBehavior="single" and I lost the color change in the selection of an item.
<item
android:id="#+id/section"
android:title="#string/section_title">
<menu>
<item
android:id="#+id/drawer_favourite"
android:icon="#drawable/ic_favorite_black_24dp"
android:title="#string/favourite"/>
<item
android:id="#+id/drawer_downloaded"
android:icon="#drawable/ic_file_download_black_24dp"
android:title="#string/downloaded"/>
</menu>
</item>
try this:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="#+id/drawer_home"
android:checked="true"
android:icon="#drawable/ic_home_black_24dp"
android:title="#string/home"/>
<item
android:id="#+id/drawer_favourite"
android:icon="#drawable/ic_favorite_black_24dp"
android:title="#string/favourite"/>
...
<item
android:id="#+id/drawer_settings"
android:icon="#drawable/ic_settings_black_24dp"
android:title="#string/settings"/>
<item
android:id="#+id/section"
android:title="#string/section_title">
<menu>
<group android:checkableBehavior="single">
<item
android:id="#+id/drawer_favourite"
android:icon="#drawable/ic_favorite_black_24dp"
android:title="#string/favourite"/>
<item
android:id="#+id/drawer_downloaded"
android:icon="#drawable/ic_file_download_black_24dp"
android:title="#string/downloaded"/>
</group>
</menu>
</item>
</group>
</menu>
you can check this solution for details..
I am unable to set a submenu item as checked
As a workaround until the bug reported by Fondesa is fixed you can use this:
Menu Definition
<item android:checkable="true" ...>
Styling
<item android:state_selected="true" android:color="#color/error_color"/>
This will properly highly the menu item when selected.
Note that this will not address the requirement:
android:checkableBehavior="single"
You will have to handle that manually.
In my application android I would like to add an actionbar like this (that it have a submenu)
my xml code is
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="#+id/menu_item_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always"
android:icon="#drawable/abc_ic_search"
android:title="Search Products">
</item>
<item
android:id="#+id/menu_Home"
app:showAsAction="never"
android:icon="#drawable/abc_ic_search"
android:showAsAction="ifRoom|withText"
android:title="Home"/>
<item
android:id="#+id/menu_favourite"
app:showAsAction="never"
android:icon="#drawable/abc_ic_search"
android:showAsAction="ifRoom|withText"
android:title="favourite"/>
<item
android:id="#+id/menu_Balance"
app:showAsAction="never"
android:icon="#drawable/abc_ic_search"
android:showAsAction="ifRoom|withText"
android:title="Balance"/>
<item
android:id="#+id/menu_logout"
android:icon="#drawable/abc_ic_search"
app:showAsAction="never"
android:showAsAction="ifRoom|withText"
android:title="Logout"/>
</menu>
in android sdk 2.x the result it's not what i want
i tryed also
<item
android:id="#+id/root_menu"
DetailsPage:showAsAction="always"
android:icon="#drawable/abc_ic_menu_moreoverflow_normal_holo_light"
android:title="More">
<menu>
<item
android:id="#+id/menu_Home"
DetailsPage:showAsAction="ifRoom|withText"
android:icon="#drawable/abc_ic_search"
android:showAsAction="ifRoom|withText"
android:title="Home"/>
<item
android:id="#+id/menu_Balance"
DetailsPage:showAsAction="ifRoom|withText"
android:icon="#drawable/abc_ic_search"
android:showAsAction="ifRoom|withText"
android:title="Balance"/>
<item
android:id="#+id/menu_logout"
android:icon="#drawable/abc_ic_search"
DetailsPage:showAsAction="ifRoom|withText"
android:showAsAction="ifRoom|withText"
android:title="Logout"/>
</menu>
</item>
what I what to do to have the same picture plz ( maybe menu popup ?)
help me plz
Changing the namespace from app to compat solved my problem:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:compat="http://schemas.android.com/apk/res-auto" >
<item
android:id="#+id/action_submenu"
android:title="#string/action_submenu"
android:icon="#drawable/abc_ic_menu_moreoverflow_normal_holo_dark"
compat:showAsAction="always">
<menu>
<item
android:id="#+id/action_settings"
android:title="#string/action_settings"
compat:showAsAction="always"/>
<item
android:id="#+id/action_example"
android:title="#string/action_example"
compat:showAsAction="withText|ifRoom"/>
</menu>
</item>
</menu>
Your using the namespaces in the wrong way. To have the showAsAction property to work properly you have to use the "app" namespace not the android one. In your first try you're using it and every time you set showAsAction="never". That's why you're not getting the expected result.
Remove all your android:showAsAction="..." and set all the app:showAsAction="always" or ="ifRoom|withText"
Hope I answered your question, if I did please check it as right answer.
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