Android活动和片段选项菜单的排序

4

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

所有创建的项目应始终显示(最多同时显示3个)。

我的问题实际上是关于项目排序的。我找不到任何标准。我的活动项目应该在最右边,然后是片段项目在它们左边吗?还是反之亦然?

谢谢

1个回答

7
如果您在菜单XML中使用android:orderInCategory属性,那么菜单项可以按照您喜欢的任何顺序排列。
如果您没有指定这个值,它会默认为某个值(可能是零)。由于所有项目都具有此默认值,因此顺序将取决于以下内容:
- 您在XML中声明项目的顺序 - 您的片段获得onCreateOptionsMenu回调的顺序。
Activity首先获取onCreateOptionsMenu回调,因此这些项目将首先添加到菜单对象中。然后它将相同的调用分派到其片段。我还没有深入研究源代码,无法告诉您Android如何决定哪个片段首先获得回调(如果甚至有定义的顺序),但由于orderInCategory相同,因此项目应该添加到菜单的末尾。因此,您最终会得到:
- Activity的菜单项目按照XML顺序 - “第一个”片段的菜单项目按照XML顺序 - 下一个片段的菜单项目按照XML顺序 - 等等。

我完全理解这一点。但更感兴趣的是标准是什么,因为我找不到任何相关的信息。现在我会像之前那样保留它,直到我找到确切的答案。 - Johan
1
菜单项的 android:menuCategory 属性给出了一个隐含的顺序。这些类别包括 systemcontainersecondaryalternative。活动中的菜单应该在 container 类别中,以出现在片段菜单之前。 - Afilu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接