What is orderInCategory in ActionBar menu item & why it is use for..?

SaravanaRaja picture SaravanaRaja · Feb 25, 2015 · Viewed 41.9k times · Source

Im working on action menu item and its over flow item this is my main_menu.xml

<?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/menu_search"
    android:icon="@drawable/search"
    android:title="@string/start_new_project"
    app:showAsAction="always" />
<item
    android:id="@+id/menu_dts_overflow"
    android:icon="@drawable/ic_action_overflow_round"
    android:orderInCategory="11111" 
    android:title="Service"
    app:showAsAction="always">
    <menu>
        <item
            android:id="@+id/menu_newProject"
            android:icon="@drawable/newproject"
            android:title="@string/start_new_project"
            app:showAsAction="never" />


        <item
            android:id="@+id/menu_help"
            android:icon="@drawable/help"
            android:title="Service Tasks"
            app:showAsAction="never" />


        <item
            android:id="@+id/menu_signOut"
            android:icon="@drawable/signout"
            android:title="@string/menusignout"
            app:showAsAction="never" />

    </menu>
</item>

I tried to construct a search item and a overflow item which you can see in the above code. I'm new to Action bar menu items so i tried to Google it and was able to make it work as I need.

In this I have to know one more thing.

1. What is orderInCategory with some numbers and what for it is used..?

Answer

Y.S picture Y.S · Feb 25, 2015

android:orderInCategory is an integer attribute that dictates the order in which the menu items will appear within the menu when it is displayed.

<menu 
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_item_first"
        android:orderInCategory="1"
        android:showAsAction="never"
        android:title="@string/string_one"/>

    <item
        android:id="@+id/menu_item_second"
        android:orderInCategory="2"
        android:showAsAction="never"
        android:title="@string/string_two"/>

</menu>
  • Menu items in ToolBar are arranged from left to right (or start to end in RTL mode) in the ascending order (i.e. 1,2,3 -> left to right).

    horizontal menu items

  • Menu Items in Overflow menu are arranged from top to bottom in the ascending order (i.e. 1,2,3 -> top to bottom).

    vertical overflow menu