Search code examples
androidandroid-actionbarandroid-menu

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


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..?


Solution

  • 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