Android Activity和Fragment Options菜单排序

Joh*_*han 4 android android-optionsmenu android-actionbar

我最多有两个由我的活动创建的选项菜单项.根据显示的当前片段(使用选项卡控件进行更改),我显示另外一个或两个项目.

创建的所有项目应始终显示(在任何给定时间最多3个).

我的问题是关于物品的订购.我找不到任何标准.我的活动项目应该是否正确,然后将项目左侧的项目分段?或相反亦然?

谢谢

Kar*_*uri 6

如果您android:orderInCategory在菜单XML中使用该属性,它们可以是您喜欢的任何顺序.

如果您没有指定此值,那么它将默认为某个值(可能为零).由于您的所有商品都具有此默认值,因此订单将取决于以下内容:

  • 您在XML中声明项目的顺序
  • 您的片段获得onCreateOptionsMenu回调的顺序.

Activity onCreateOptionsMenu首先获取回调,因此这些项目将首先添加到菜单对象中.然后它将相同的调用分派给它的片段.我没有深入到源代码中告诉你Android如何决定哪个片段首先获得回调(如果有定义的顺序),但由于orderInCategory是相同的,所以项目应该添加到菜单.所以你最终会得到

  • 活动的菜单项以XML顺序排列
  • "First"片段的XML顺序菜单项
  • 下一个片段的菜单项按XML顺序排列
  • 等等