Overflow Actionbar items not displaying on bottom bar - android

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

Related

How to change the Action bar action icons depending on theme

I have an app where I allow the user to change the theme to change through preferences. I am just changing the from Theme.Holo to Theme.Holo.Light . Everything works fine, except the action bar action icons.
How do I change the icons depending upon theme? Currently they are hardcoded in menu.xml as follows:
<item android:id="#+id/action_search"
app:showAsAction="collapseActionView|always"
android:icon="#drawable/ic_action_search"
android:orderInCategory="50"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="#string/action_search"/>
<item
android:id="#+id/action_expandall"
android:orderInCategory="55"
app:showAsAction="never"
android:title="#string/action_expandall"/>
<item
android:id="#+id/action_collapseall"
android:orderInCategory="60"
app:showAsAction="never"
android:title="#string/action_collapseall"/>
<item
android:id="#+id/action_selecteverything"
android:orderInCategory="101"
app:showAsAction="never"
android:title="#string/action_selecteverything"/>
<item
android:id="#+id/action_selectallcategories"
android:orderInCategory="102"
app:showAsAction="never"
android:title="#string/action_selectallcategories"/>
<item
android:id="#+id/action_selectallfeeds"
android:orderInCategory="103"
app:showAsAction="never"
android:title="#string/action_selectallfeeds"/>
<item
android:id="#+id/action_selectnone"
android:orderInCategory="104"
app:showAsAction="never"
android:title="#string/action_selectnone"/>
<item
android:id="#+id/action_settings"
android:orderInCategory="105"
app:showAsAction="never"
android:icon="#drawable/action_settings"
android:title="#string/action_settings"/>
<item
android:id="#+id/action_refresh"
android:orderInCategory="107"
app:showAsAction="always"
android:icon="#drawable/navigation_refresh"
android:title="#string/action_refresh"/>
<item
android:id="#+id/action_accept"
android:orderInCategory="108"
app:showAsAction="always"
android:icon="#drawable/navigation_accept"
android:title="#string/action_accept"/>
<item
android:id="#+id/action_logout"
android:orderInCategory="109"
app:showAsAction="never"
android:title="#string/action_logout"/>
<item
android:id="#+id/action_about"
android:orderInCategory="110"
app:showAsAction="never"
android:title="#string/action_about"/>
One posible solution is to create two different menus.xml holding the light and dark icons and before you inflate the menu, check what the current theme is and choose one or another.
EDIT:
Here #Steven Byle has resolved this in a more beautiful way (which is using themes): https://stackoverflow.com/a/14608585/2025299

Custom rows for menu items in action bar

I am trying to create kind of list view with custom rows in menu in action bar. something like this:
I have searched a lot on web but could not find anything useful. How can I achieve this thing? I know you can bind custom views with items in menu but how?
I want to bind list view with this item:
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="#string/action_settings"/>
I had figured out after a while. If you want to list items with just icon and title in over flow menu, you need to do nesting of items within items or group them using menu tag.
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="#+id/action_settings"
android:icon="#drawable/ic_action_overflow"
android:orderInCategory="100"
android:showAsAction="always">
<menu>
<item
android:id="#+id/add_source"
android:icon="#drawable/add_on"
android:orderInCategory="100"
android:showAsAction="never"
android:title="#string/add_source"/>
<item
android:id="#+id/channel_setup"
android:icon="#drawable/channelsetup_on"
android:orderInCategory="100"
android:showAsAction="never"
android:title="#string/channel_setup"/>
</menu>
</item>
<item
android:id="#+id/time"
android:orderInCategory="99"
android:showAsAction="always"
android:title="#string/time_title"/>
<item
android:id="#+id/weather"
android:icon="#drawable/ic_action_cloud"
android:orderInCategory="98"
android:showAsAction="always"
android:title="#string/weather_title"/>
<item
android:id="#+id/search"
android:actionViewClass="android.widget.SearchView"
android:icon="#drawable/ic_action_search"
android:orderInCategory="97"
android:showAsAction="collapseActionView|always"
android:title="#string/search_title"/>
</menu>

Not able to get both Icon and Image in Android Actionbar button

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"

ActionBar appcompat submenu

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.

how do i keep my all menus in a dropdown item and home menue at the left point?

i have added menues in my menue item in xml.now i want to keep the home icon only at the very right of the action bar and the others will remain in three dots and when someone clicks them they will collapse down in a group.
that is my xml
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="#string/action_settings"/>
<item android:id="#+id/Homebar"
android:title="Home"
android:orderInCategory="1"
android:showAsAction="always"
/>
<item android:id="#+id/infobar"
android:title="Info"
android:orderInCategory="2"
android:showAsAction="collapseActionView"
/>
<item android:id="#+id/servicebar"
android:title="Services"
android:orderInCategory="3"
android:showAsAction="always"
/>
<item android:id="#+id/onlinetoolsbar"
android:title="Online tools"
android:orderInCategory="4"
android:showAsAction="always"
/>
<item android:id="#+id/mediacenterbar"
android:title="Media center"
android:orderInCategory="5"
android:showAsAction="always"
/>
i solved it by adding an icon at the very right of the top and put the drop down on action.

Categories

Resources