ActionBar 菜单项中的 orderInCategory 是什么?为什么它用于……?
What is orderInCategory in ActionBar menu item & why it is use for..?
我正在处理操作菜单项及其溢出项,这是我的 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>
我试图构建一个搜索项和一个溢出项,您可以在上面的代码中看到它们。我是 Action bar 菜单项的新手,所以我尝试 Google 它并且能够按我的需要让它工作。
在此我还要知道一件事。
1. 什么是 orderInCategory
和一些数字以及它的用途..?
android:orderInCategory
是一个整数属性,它规定菜单项在显示时在菜单中的显示顺序。
<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).
Menu Items in Overflow menu
are arranged from top
to bottom
in
the ascending order (i.e. 1,2,3 ->
top to bottom).
android:orderInCategory
实际上在 两个方面很有用 。
1. 对于 ActionBar
中的菜单项。
项目将根据升序从左到右出现在 ActionBar 中。
2. 对于 overflow
菜单中的菜单项。
溢出菜单项将根据您指定的升序从上到下显示。
android:orderInCategory
较高的值,较低的优先级。
我里面有一个Activity和一个Fragment,它们都有选项菜单,项目编号是1和3。
如果我设置android:orderInCategory=0
,activity菜单在fragment菜单上面,效果和我设置之前一样
但是如果我设置android:orderInCategory=1
,activity菜单在fragment菜单下面,这就是我想要的。(我也测试android:orderInCategory=5
测试过,还是一样效果。)
我正在处理操作菜单项及其溢出项,这是我的 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>
我试图构建一个搜索项和一个溢出项,您可以在上面的代码中看到它们。我是 Action bar 菜单项的新手,所以我尝试 Google 它并且能够按我的需要让它工作。
在此我还要知道一件事。
1. 什么是 orderInCategory
和一些数字以及它的用途..?
android:orderInCategory
是一个整数属性,它规定菜单项在显示时在菜单中的显示顺序。
<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 fromleft
toright
(orstart
toend
in RTL mode) in the ascending order (i.e. 1,2,3->
left to right).Menu Items in
Overflow menu
are arranged fromtop
tobottom
in the ascending order (i.e. 1,2,3->
top to bottom).
android:orderInCategory
实际上在 两个方面很有用 。
1. 对于 ActionBar
中的菜单项。
项目将根据升序从左到右出现在 ActionBar 中。
2. 对于 overflow
菜单中的菜单项。
溢出菜单项将根据您指定的升序从上到下显示。
android:orderInCategory
较高的值,较低的优先级。
我里面有一个Activity和一个Fragment,它们都有选项菜单,项目编号是1和3。
如果我设置android:orderInCategory=0
,activity菜单在fragment菜单上面,效果和我设置之前一样
但是如果我设置android:orderInCategory=1
,activity菜单在fragment菜单下面,这就是我想要的。(我也测试android:orderInCategory=5
测试过,还是一样效果。)