【问题标题】:Action bar - ifRoom option leaving too much space操作栏 - ifRoom 选项留下太多空间
【发布时间】:2013-05-27 11:26:46
【问题描述】:

我的操作栏有问题,我尝试在其上设置search view 以使搜索栏可展开。

这很好,除了我必须使用选项ifRoom 设置所有其他菜单项,以便在单击搜索图标时让搜索字段占据所有空间。

这部分也很好,除了太多的菜单项被推入菜单溢出,垂直屏幕上只剩下2个图标(包括搜索栏)。

我对另一个有 5 个菜单项的活动进行了另一项测试:

  1. 在第一种情况下,我将它们全部设置为android:showAsAction="always"
  2. 在第二种情况下,我将它们全部设置为 ``android:showAsAction="ifRoom"`

结果如下:

案例 1:

案例 2:

为什么如果我使用ifRoom,只显示2个图标,而实际上5个可以轻松填满?

因此,我的搜索视图项旁边只有一个菜单项可用...

谢谢!

【问题讨论】:

  • 为什么我使用ifRoom,只显示2个图标?? ----> stackoverflow.com/a/15832302/1168654
  • 我检查了您的链接,但它没有回答我的问题。我知道这与屏幕大小有关,但在这里我有足够的空间容纳超过 2 个图标。
  • 在 XML 文件中,您可以通过为 元素声明 android:showAsAction="ifRoom" 来请求菜单项显示为操作项。这样,只有在有可用空间时,菜单项才会出现在操作栏中以便快速访问。如果没有足够的空间,该项目将出现在溢出菜单中。希望你能理解。有关更多详细信息,请查看:developer.android.com/guide/topics/ui/actionbar.html
  • 是的,我有,其他选项出现在溢出菜单中,但我希望它们可以保留在操作栏上。无法直接访问菜单溢出。
  • @DhawalSodhaParmar 我认为他的问题(也是我的问题)与“ifRoom”设置无关,而是关于图标似乎有足够的空间但 Android 将它们置于溢出中的事实菜单(大概是因为 Android 认为没有足够的空间)。

标签: android android-actionbar android-search


【解决方案1】:

看起来这是一个设计决定:

杰克·沃顿说:

当包含在操作栏中时,有一个有限的最大值 基于设备的密度无关宽度的操作项。这 动作项目也不能覆盖超过动作宽度的一半 吧。

来自here

【讨论】:

【解决方案2】:

在 XML 文件中,您可以通过为 <item> 元素声明 android:showAsAction="ifRoom" 来请求将 MenuItem 显示为操作项。这样,MenuItem 将出现在ActionBar 中,以便仅在有可用空间时快速访问。如果没有足够的空间,该项目将出现在溢出菜单中。

所以你的答案是:

使用“ifRoom”请求一个项目出现在操作栏中,但是 允许系统在没有时将其移动到溢出菜单中 足够的空间。(在较小的屏幕上空间有限时)。

您可以使用android:showAsAction="always" 显示ActionBar 中的所有菜单。

【讨论】:

  • 谢谢,但如上所述,如果有可用空间,我希望图标显示在可见操作栏中,而不是显示在溢出中。
  • 我在这里解释是因为你明白为什么我们不能使用 ifroom 在操作栏中显示所有图标。在某种程度上,你不能使用'ifroom'来做到这一点
【解决方案3】:

“ifRoom”选项的最大图标数为 5(五个),即使我移动到我的 100 英寸屏幕尺寸的平板电脑 :-) 并在横向上拼命旋转它 请参阅 Jake Wharton 的回答中的链接(谢谢!)http://developer.android.com/design/patterns/actionbar.html

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多