更改方向时,Android项目从ActionBar移动到选项菜单

时间:2013-05-31 17:09:55

标签: android android-fragments android-actionbar

我有一个基于片段的应用程序,其中一些片段具有我想要作为按钮放入ActionBar的其他操作,而有些片段没有任何此类操作。我创建了一个xml菜单文件,其中包含所有片段的所有项目,我在运行时显示/隐藏,具体取决于当前使用以下组合显示的片段:

MenuItem item = menu.findItem(some_id);
item.setVisible(false);
MenuItem item = menu.findItem(some_other_id);
item.setVisible(true);

问题在于,当我查看没有菜单项的片段时,如果我更改设备方向然后更改为不同的片段 - 使用菜单项 - 这些项目不会显示在ActionBar中只能使用设备的“菜单”按钮访问。

所有菜单项都在xml文件中设置为android:showAsAction="always",但如果在查看没有菜单项的片段时完成最后一次方向更改,则它们始终无法显示在ActionBar中。这种情况发生在从纵向到横向和横向到纵向的变化中。

如何强制项目始终显示在ActionBar中?

1 个答案:

答案 0 :(得分:2)

两点:

  1. 根据ActionBar design document,即使是横向的10英寸平板电脑也只会在下面的图表中的操作栏中显示最多4个项目: Maximum number of icons in the ActionBar
  2. 假设您的数量低于ActionBar中显示的最大项目数,如果您希望片段在ActionBar出现时将其添加到Fragment,并在隐藏时删除,则不需要在单个xml菜单文件中手动显示/隐藏项目,而是根据Fragments - Adding items to the Action Bar guide在每个{{1}}个项目中添加项目。