什么是ActionBar菜单项中的orderInCategory以及为什么它被用于..?

我工作的行动菜单项和溢出项目这是我的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> 

我试图构build一个search项目和溢出项目,你可以在上面的代码中看到。 我是新的动作酒吧菜单项,所以我试图谷歌它,并能够使其工作,因为我需要。

在这我必须知道一件事。

1.什么是orderInCategory与一些数字和它是什么使用..?

android:orderInCategory属性决定菜单项在菜单中显示的顺序。 菜单项从左到右按orderInCategory的整数值(即1,2,3 … – >从左到右)的升序排列。

android:orderInCategory实际上有两种用途。

1.对于ActionBar菜单项。 在ActionBar中,项目将从左到右出现,具体取决于升序。

2.用于overflow菜单中的菜单项。 溢出菜单项将根据您指定的升序从上到下显示。

android:orderInCategory 值越高,优先级越低。

我有一个活动和一个片段,他们都有选项菜单,项目号码是1和3。

如果我设置android:orderInCategory=0 ,活动菜单在片段菜单上方,在设置值之前效果相同。

但是,如果我设置了android:orderInCategory=1 ,活动菜单在片段菜单下面,那就是我想要的(我也testing了android:orderInCategory=5 ,效果也一样。)