neither nesting nor movement of menuItems and groups up and down wrt each other is taking place.
Android Studio version - 2.3.1
enter image description here
here is the code you can use,
<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="com.example.akshaymanagooli.adggbtbrt.MainActivity">
<item
android:id="#+id/action_settings"
android:orderInCategory="100"
android:title="settings"
app:showAsAction="never" />
<item
android:id="#+id/item"
android:orderInCategory="100"
android:title="items"
app:showAsAction="never" >
<menu>
<item
android:id="#+id/item1"
android:orderInCategory="100"
android:title="item 1"
app:showAsAction="never" />
<item
android:id="#+id/item2"
android:orderInCategory="100"
android:title="item 2"
app:showAsAction="never" />
</menu>
</item>
</menu>
So idea is inside an item create a new menu block and add your sub items in there so it'll show you a arrow mark like dropdown thing.
Related
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>
<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=".MainActivity">
<item
android:id="#+id/action_settings"
android:title="Settings"
android:orderInCategory="100"
app:showAsAction="never" />
<item android:id="#+id/action_search"
android:orderInCategory="200"
android:title="Search"
android:icon="#android:drawable/ic_search_category_default"
app:showAsAction="ifRoom" />
<item android:id="#+id/action_user"
android:orderInCategory="300"
android:title="User"
android:icon="#android:drawable/ic_dialog_info"
app:showAsAction="ifRoom" />
</menu>
I'm experimenting with android action bar and I'm confused how the settings and other actions are added to my action bar from the menu.
How did android determine that the first item in my list is to be added the three dot menu?
Because you asked android to not show it as action, like this:
app:showAsAction="never"
while for other items you show them when there is enough space to show:
app:showAsAction="ifRoom"
I want to show a popup of option like the image on the click of action button( 3 ... icon).
I tried to do it by option menu but icon are not coming . Please suggest me how can I add icon as well.
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="ui.dealroomcontent.DealRoomContentActivity">
<item
android:id="#+id/action_view_details"
android:title="View room details"
android:orderInCategory="100"
android:icon="#drawable/ic_dealroom_details_normal"
app:showAsAction="never" />
<item
android:id="#+id/action_add_file"
android:title="#string/action_create_file"
android:orderInCategory="100"
android:icon="#drawable/ic_dealroom_createfolder_normal"
app:showAsAction="never" />
<item
android:id="#+id/action_add_folder"
android:title="#string/action_create_folder"
android:icon="#drawable/ic_dealroom_createfile_normal"
android:orderInCategory="100"
app:showAsAction="never" />
<item
android:id="#+id/action_upload_from_camera"
android:title="#string/action_upload_from_camera"
android:icon="#drawable/ic_dealroom_uploadcamera_normal"
android:orderInCategory="100"
app:showAsAction="never" />
<item
android:id="#+id/action_upload_from_gallery"
android:title="#string/action_upload_from_gallery"
android:icon="#drawable/ic_dealroom_uploadgallery_normal"
android:orderInCategory="100"
app:showAsAction="never" />
<item
android:id="#+id/action_upload_from_local"
android:title="#string/action_upload_from_local"
android:orderInCategory="100"
android:icon="#drawable/ic_dealroom_upload_normal"
app:showAsAction="never" />
<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=".MainActivity">
<item
android:id="#+id/action_more"
android:icon="#drawable/ic_more_white"
android:title="#string/action_more"
android:orderInCategory="100"
app:showAsAction="always">
<menu>
<item
android:id="#+id/action_settings"
android:icon="#drawable/ic_settings_black"
android:title="#string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
<item ... />
</menu>
</item>
</menu>
The ic_more_white is the icon of 3...
I wish this can help you.
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"
I have this menu on my android app
<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="com.example.app.MainActivity">
<item
android:id="#+id/action_settings"
android:title="root"
app:showAsAction="always">
<menu>
<item
android:title="item 1"
app:showAsAction="always" />
<item
android:title="item 2"
app:showAsAction="always" />
<item
android:title="item 3"
app:showAsAction="always" />
</menu>
</item>
On API 14+ it works as expected: click on button gives me dropdown menu.
But on API 8 it works strange
Where is my problem? What should I do?