正如Siddharth Lele 所指出的,它已在最后一个 ABS 版本中被删除,以便与实际的 Action Bar 表现相同。所以乍一看放弃显示这个菜单是最好的选择。
但是,在我看来,某些设备的屏幕上显示溢出菜单而其他设备不显示是 Android 操作栏的一个重大设计缺陷。原因如下:
在具有硬件菜单键的设备中,菜单不会显示在操作栏中。最近设备的趋势是将硬件按钮的数量减少到最低限度,因为它被认为对用户更友好(并且因为 iphone 只有一个按钮,所以他们复制了这种设计)。其他制造商确实包含菜单按钮,但它是隐藏的,除非你按下它(是的,当你不再需要灯时它会亮起。这不是一个明智的设计,但同样,当所有按钮都关闭时,手机看起来更 iphonish)。
为了更好地理解这一点,让我们看一个例子:
用户A
有一个带有菜单键的设备。他正在使用他最喜欢的邮件客户端。配置邮件帐户的选项与常用选项(帮助、关于等)一起放置在溢出菜单中。他想添加第二个帐户,但不知道如何访问此菜单。屏幕上没有任何信息可以帮助他意识到该做什么。所以用户A
问他的朋友B
,他也在使用这个邮件客户端。用户B
拥有最新的 Nexus N+1 Googlephone,并且他能够在操作栏中查看溢出图标,因为他的设备没有硬件菜单键。他展示A
了如何通过打开此菜单添加第二个帐户。用户A
现在完全糊涂了,因为他们使用的是相同的应用程序版本。沮丧,A
可能会认为问题出在他的手机太旧了。B
也很困惑。
在这一点上,您可能会同时考虑两者A
,并且B
是不知道如何使用智能手机的傻瓜。但与桌面应用程序不同的是,绝大多数智能手机用户只知道他们设备的基础知识。他们以前的手机很可能是一个带有简单固件的键盘设备。电池没电了,他们去商店换了,但没货了。他们本可以在互联网上订购一个,但它比购买一部新手机要贵。因此,他们出售了一款支持触摸屏的手机,因为这就是如今的手机。现在他们必须面对一台配备成熟操作系统的小型计算机。更糟糕的是,这款手机只附带“快速入门指南”,要获得完整的手册,他们必须从互联网上下载 pdf。你猜怎么了?他们不会。
如果您正在开发移动应用程序,您应该假设用户可能对计算机、操作系统或类似应用程序一无所知。您应该使 GUI 在不同设备上看起来相似,以便人们可以学习并记住如何使用它。不要责怪 Action Bar 设计者:如果用户喜欢A
或B
不知道如何进入选项菜单,那首先是你的错。这就是为什么您应该包含一种访问始终可见的选项屏幕的方法。
后退键也会发生类似的事情。有些设备可能有硬件返回键,较新的设备通常没有。但是每当我们可以返回我们的应用程序时,我们总是会在操作栏中显示那个类似箭头的按钮,对吧?是的,我知道一个按钮在“导航树”中导航,而另一个按钮“回到过去”,但这也是另一个设计缺陷:对于普通用户来说,返回只是返回。他在屏幕上有这个按钮,他也可以使用硬件按钮,但这是可选的。溢出菜单也应该这样做。
因此,如果您(像我一样)认为这是一个重要的按钮,请不要放弃。提供一个常规的主选项菜单并用相关的子菜单填充它。将其设为操作按钮并为其分配一个描述性图标,甚至是像“菜单”这样的文字描述。您还可以模仿溢出菜单图标,只需使用以下可绘制对象之一:
// For ActionBarSherlock
abs__ic_menu_moreoverflow_normal_holo_dark.png
abs__ic_menu_moreoverflow_normal_holo_light.png
// For ActionBar
ic_menu_moreoverflow_normal_holo_light.png
ic_menu_moreoverflow_normal_holo_dark.png
此外:将图像复制粘贴到您的项目 res 文件夹中。您永远无法知道 ABS 的未来版本或 ActionBar 的下一个实现是否会包含它们。