【问题标题】:Android items move from ActionBar to options menu when changing orientation更改方向时,Android 项目从 ActionBar 移动到选项菜单
【发布时间】:2013-05-31 17:09:54
【问题描述】:

我有一个基于片段的应用程序,其中一些片段具有我想作为按钮放入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 中?

【问题讨论】:

    标签: android android-fragments android-actionbar


    【解决方案1】:

    两点:

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

    【讨论】:

    • 感谢您快速而全面的回答。我在每个片段中只有 1、2 或零个项目,所以第一点不应该引起问题。将研究第二点,看看是否可行。
    • 是的!每个片段的菜单项不会表现出这种行为,效果很好,也更容易维护。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多