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.
Related
This is my menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/menu_input_search"
android:title="#string/search"
android:orderInCategory="1"
app:actionViewClass="com.app.ui.widget.SearchView"
app:showAsAction="always"
android:visible="false"/>
<item
android:id="#+id/menu_search"
android:icon="#drawable/ic_search_tb"
android:orderInCategory="2"
android:visible="false"
app:showAsAction="always" />
<item
android:id="#+id/menu_favorite"
android:icon="#drawable/ic_favorite_border_tb"
android:orderInCategory="3"
android:visible="false"
app:showAsAction="always" />
<item
android:id="#+id/menu_filter"
android:icon="#drawable/ic_filter_tb"
android:orderInCategory="4"
android:visible="false"
app:showAsAction="always" />
</menu>
And sometimes, for some reasons, the "menu_favorite" icon doesn't display properly (sometimes in grey, sometimes nothing, etc.), it's crazy...
I don't understand why the second icon (filter) is appeared not properly (no padding on right?). Have you got some ideas guys?
This is my menu setup xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="#+id/menu_input_search"
android:title="#string/search"
android:orderInCategory="1"
app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="ifRoom"
android:visible="false"/>
<item
android:id="#+id/menu_search"
android:icon="#drawable/ic_search_tb"
android:orderInCategory="1"
android:visible="false"
app:showAsAction="ifRoom" />
<item
android:id="#+id/menu_filter"
android:icon="#drawable/ic_filter_tb"
android:orderInCategory="2"
android:visible="false"
app:showAsAction="always" />
</menu>
I have the following items in menu_main.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="net.ossrs.yasea.demo.MainActivity">
<item android:id="#+id/action_settings" android:title="action_settings"
android:orderInCategory="200" app:showAsAction="never" />
<item
android:id="#+id/menu_search"
android:menuCategory="system"
android:title="action_settings"
android:icon="#drawable/logo"
app:showAsAction="always"
/>
<item android:id="#+id/original_filter" android:title="Original" app:showAsAction="never"/>
<item android:id="#+id/beauty_filter" android:title="Beauty" app:showAsAction="never"/>
<item android:id="#+id/cool_filter" android:title="Cool" app:showAsAction="never"/>
<item android:id="#+id/early_bird_filter" android:title="Early Bird" app:showAsAction="never"/>
<item android:id="#+id/evergreen_filter" android:title="Evergreen" app:showAsAction="never"/>
<item android:id="#+id/n1977_filter" android:title="N1977" app:showAsAction="never"/>
<item android:id="#+id/nostalgia_filter" android:title="Nostalgia" app:showAsAction="never"/>
<item android:id="#+id/romance_filter" android:title="Romance" app:showAsAction="never"/>
<item android:id="#+id/sunrise_filter" android:title="Sunrise" app:showAsAction="never"/>
<item android:id="#+id/sunset_filter" android:title="Sunset" app:showAsAction="never"/>
<item android:id="#+id/warm_filter" android:title="Warm" app:showAsAction="never"/>
<item android:id="#+id/tender_filter" android:title="Tender" app:showAsAction="never"/>
<item android:id="#+id/toast_filter" android:title="Toast" app:showAsAction="never"/>
<item android:id="#+id/valencia_filter" android:title="Valencia" app:showAsAction="never"/>
<item android:id="#+id/walden_filter" android:title="Walden" app:showAsAction="never"/>
</menu>
My android icon is to small . So I want to increase the size of my android icon............
i am giving the android:height and android:width in my icon but nothing is changed.
One way would be to do it programmatically within onCreateOptionsMenu in the Activity that contains the menu by manipulating the icon as a drawable.
Here is an example from another question
Make Below entry in dimens.
<dimen name="design_navigation_icon_size" tools:override="true">40dp</dimen>
Please help me. I use the context menu in Action Bar (CAB). Listing menu has the following code
<?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/add_cxtmenu"
android:icon="#android:drawable/ic_menu_add"
android:showAsAction="always"
android:orderInCategory="1"
android:title="edit"/>
<item/>
<item
android:id="#+id/edit_cxtmenu"
android:icon="#android:drawable/ic_menu_edit"
android:showAsAction="always"
android:orderInCategory="2"
android:title="edit"/>
<item
android:id="#+id/delete_cxtmenu"
android:icon="#android:drawable/ic_menu_delete"
android:showAsAction="always"
android:orderInCategory="3"
android:title="delete"/>
</menu>
So the menu should consist of three items. Each item has a parameter android:showAsAction="always"
In the end, I had to get three icons on the panel ActionBar. But in reality, I have two icons together into a button overflowbutton. How to fix it? I can not find the answer to this problem.
Theme my app
<style name="AppTheme" parent="#style/Theme.AppCompat.Light">
Try this.
<?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/add_cxtmenu"
android:icon="#android:drawable/ic_menu_add"
app:showAsAction="always"
android:orderInCategory="1"
android:title="edit"/>
<item/>
<item
android:id="#+id/edit_cxtmenu"
android:icon="#android:drawable/ic_menu_edit"
app:showAsAction="always"
android:orderInCategory="2"
android:title="edit"/>
<item
android:id="#+id/delete_cxtmenu"
android:icon="#android:drawable/ic_menu_delete"
app:showAsAction="always"
android:orderInCategory="3"
android:title="delete"/>
</menu>
Try to change this:
android:showAsAction="always"
For this:
app:showAsAction="always"
Also you couldnĀ“t have enought room. Try to remove your title or do it small.
I am using a Split ActionBar & I have successfully inflated the menu for my fragment
When i used below code ::
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="#string/action_settings"/>
<item
android:id="#+id/home"
android:orderInCategory="1"
android:showAsAction="always"
android:title="Search"/>
<item
android:id="#+id/java"
android:orderInCategory="2"
android:showAsAction="always"
android:title="Share"/>
<item
android:id="#+id/android"
android:orderInCategory="3"
android:showAsAction="always"
android:title="Account"/>
</menu>
I get the output as::
When i use second code in an another usecase::
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="#string/action_settings"/>
<item
android:id="#+id/home"
android:icon="#drawable/ic_action_search"
android:orderInCategory="1"
android:showAsAction="always"
android:title="Search"/>
<item
android:id="#+id/java"
android:icon="#drawable/ic_action_share"
android:orderInCategory="2"
android:showAsAction="always"
android:title="Share"/>
<item
android:id="#+id/android"
android:icon="#drawable/ic_action_person"
android:orderInCategory="3"
android:showAsAction="always"
android:title="Account"/>
</menu>
I get the output as below::
Problem I am facing::
I am not able to get both Icon and button text ?
Is it not possible to obtain both ? if so how ?
Or is it we have to use only either one of them ?
You should use 'withText' value as well in the showAsAction attribute.
So the menu item will now look like,
<item
android:id="#+id/android"
android:icon="#drawable/ic_action_person"
android:orderInCategory="3"
android:showAsAction="always|withText"
android:title="Account"/>
Also, note it will ultimately depend upon the space available in the ActionBar. One cannot force it and in case if space is not enough it will end up as an overflow for the overflowing content.
Try android:showAsAction="always|withText"