web-dev-qa-db-fra.com

Qu'est-ce que orderInCategory dans l'élément de menu ActionBar & pourquoi l'utiliser? ..?

Je travaille sur un élément du menu action et son élément de débordement, c’est mon 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>

J'ai essayé de construire un élément de recherche et un élément de dépassement que vous pouvez voir dans le code ci-dessus. Je suis nouveau dans les éléments de menu de la barre d’action, j’ai donc essayé de le rechercher sur Google et de le faire fonctionner à ma guise.

En cela, je dois savoir une dernière chose.

1. Qu'est-ce que orderInCategory avec quelques chiffres et à quoi sert-il ..?

48
SaravanaRaja

Android:orderInCategory est un attribut entier qui détermine l’ordre dans lequel les éléments de menu apparaîtront dans le menu lorsqu’il sera affiché.

<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>
  • Les éléments de menu dans ToolBar sont disposés de left à right (ou start à end en mode RTL) dans l'ordre croissant (c.-à-d. 1,2,3 -> de gauche à droite).

    horizontal menu items

  • Eléments de menu dans Overflow menu sont disposés de top à bottom dans l’ordre croissant (c.-à-d. 1,2,3 -> de haut en bas).

    vertical overflow menu

103
Y.S

Android:orderInCategory est réellement utile dans deux façons.

1. Pour les éléments de menu dans ActionBar. Les éléments apparaissent de gauche à droite dans ActionBar en fonction de l'ordre croissant.

2. Pour les éléments de menu dans le menu overflow. Les éléments de menu de débordement seront affichés de haut en bas en fonction de l'ordre croissant que vous avez spécifié.

33
Apurva

Android:orderInCategoryValeur supérieure, priorité inférieure.

J'ai une activité et un fragment, toutes les deux ont un menu d'options et les numéros d'article sont 1 et 3.

Si je mets Android:orderInCategory=0, le menu des activités se trouve au-dessus du menu des fragments, le même effet avant de définir la valeur.

Mais si je mets Android:orderInCategory=1, le menu des activités se trouve en dessous du menu des fragments, et c’est ce que je veux (j’ai aussi testé Android:orderInCategory=5 testé aussi, toujours le même effet.)

6
W.Man