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"
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>
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.
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.
I am trying to add items to the bottom action bar on android. I have placed the following into my manifest as required by what I've read on Google dev.
android:uiOptions="splitActionBarWhenNarrow"
and I have a layout file as follows:
<item
android:id="#+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="#string/menu_settings"
android:visible="true"/>
<item
android:id="#+id/activityhomemen"
android:orderInCategory="100"
android:showAsAction="always"
android:title="#string/activityhomemen"
android:visible="true"/>
<item
android:id="#+id/activity1men"
android:orderInCategory="100"
android:showAsAction="always"
android:title="#string/activity1men"
android:visible="true"/>
<item
android:id="#+id/activity2men"
android:orderInCategory="100"
android:showAsAction="always"
android:title="#string/activity2men"
android:visible="true"/>
<item
android:id="#+id/activity3men"
android:orderInCategory="100"
android:showAsAction="always"
android:title="#string/activity3men"
android:visible="true"/>
<item
android:id="#+id/activity4men"
android:orderInCategory="100"
android:showAsAction="always"
android:title="#string/activity4men"
android:visible="true"/>
<item
android:id="#+id/activity5men"
android:orderInCategory="100"
android:showAsAction="always"
android:title="#string/activity5men"
android:visible="true"/>
<item
android:id="#+id/activity9men"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="#string/activity5men"
android:visible="true"/>
<item
android:id="#+id/activity6men"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="#string/activity5men"
android:visible="true"/>
<item
android:id="#+id/activity7men"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="#string/activity5men"
android:visible="true"/>
<item
android:id="#+id/activity8men"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="#string/activity5men"
android:visible="true"/>
<item
android:id="#+id/activity9men"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="#string/activity5men"
android:visible="true"/>
When I run the application on the emulator I can see the first 5 items of the menu. When I click on the overflow button I see the remaining items. Should they not be appearing on the bottom bar because of what I inserted into the manifest?...
Any help is much appreciated.
Below is screen of emulator. As you can see, overflow contains items and no bar showing at bottom...
If you want always show those items at the bottom. You can use tab widget in addition to you action bar. It will look like action bar on 4.0+.
http://developer.android.com/reference/android/widget/TabWidget.html
Update:
http://developer.android.com/reference/android/support/v13/app/FragmentTabHost.html - here is this class, that helps to add fragment navigation