MenuItem.SHOW_AS_ACTION_IF_ROOM如何工作?

Pēt*_*une 9 android android-actionbar

ActionBar入门......

对于MenuItem.SHOW_AS_ACTION_IF_ROOM文档说:

如果系统确定有空间,则将此项目显示为操作栏中的按钮.

我的问题是,系统如何确定是否有空间,我可以影响/调整该决定吗?

在我的情况下,我有一些菜单项适合显示为动作按钮 - 如果有足够的空间.在较小的屏幕上,它们占用足够的空间来使动作栏的标题变得非常灵活.在这种情况下,我宁愿他们采取行动溢出,而不是模糊标题.

PS.我正在使用ActionBarSherlock并且没有检查本机ActionBar是否完全相同.如果原生ActionBar不允许"if-room"操作项过度缩小标题,那么很酷,我会去寻找ActionBarSherlock中的错误.

M.Q*_*.Q. 8

根据官方Android设计指南(http://developer.android.com/design/patterns/actionbar.html):

操作栏容量由以下规则控制:

  • 主操作栏中的操作按钮可能不会超过条形宽度的50%.底部操作栏上的操作按钮可以使用整个宽度.
  • 与密度无关的像素(dp)中的屏幕宽度决定了适合主操作栏的项目数:
    • 小于360 dp = 2个图标
    • 360-499 dp = 3个图标
    • 500-599 dp = 4个图标
    • 600 dp和更大= 5个图标


Ore*_*est 1

我是 ActionBarSherlock 用户,我建议您浏览沃顿商学院的资源来寻找答案。

据我了解,他使用 onMeasure 方法进行布局,通过定义标题、徽标和菜单项视图的摘要宽度来检查标题、徽标和菜单项视图是否可以放置在操作栏中。

如果我相信我的记忆,你可以在 BaseMenuPresenter 类中检查他的逻辑。