使用菜单按钮在ActionBar上获得适当的用户体验?

che*_*gon 6 user-interface android android-menu android-actionbar

我有一个专为Android 2.2构建的应用程序,所以我没有使用3.0+内置的ActionBar类,而是使用几年前推出的Google旧版UI建议构建我自己的自定义ActionBar实现.

我的所有屏幕都有1到3个可以执行的操作,所以它们都非常适合ActionBar UI(Google建议最多有三个按钮).现在的问题是我的屏幕都没有常规选项菜单,因此当用户按下硬件菜单按钮时它们什么都不做.

根据Google的界面指南,这是正确的行为.如果您的活动没有选项菜单,则按下"菜单"按钮时不应执行任何操作.然而,我在用户测试期间发现,当用户按下菜单并且没有任何反应(并且每个用户都尝试过,通常多次)时,用户非常困惑.他们说他们欣赏通过ActionBar在屏幕上显示的动作,但同时他们希望菜单按钮做一些事情.

我一直在关注Google的第一方应用程序,看起来他们总是有足够的选项可以在ActionBar已满后加载选项菜单.Google+似乎在传统方式中使用"菜单"按钮来获取具有一个的手机上的溢出选项,并且它们会在ActionBar中显示一个下拉菜单,用于不支持的手机.如果我有三个以上的动作,那将会有效,但我目前没有.

似乎满足用户期望的唯一方法是将一些没有价值的垃圾选项放入选项菜单中,以便在按下按钮时发生某些事情.我真的不想那样做.有人知道处理这个问题的好方法吗?我应该单独留下菜单按钮并期望人们发现它什么都不做?

Jak*_*ton 4

我认为可以安全地假设大多数用户不知道菜单按钮的存在,并且最好将所有可操作的项目显示在屏幕上。Google 的用户测试已经揭示了这一点,这就是为什么他们选择从 Android 3.0 开始消除菜单并使用内置操作栏,并在最近的 4.0 版本中达到顶峰。

需要考虑的是在 3.0 之前的选项菜单/3.0 之后的溢出菜单中添加一个“关于”项目。这可能会弹出一个对话框,其中包含有关应用程序的简单信息(例如版本、许可、网站链接、作者等)。这样,如果他们碰巧按下菜单按钮,就会有一些东西,但为了正确地充分利用每个活动的潜力,这不是必需的。

我有一个为 Android 2.2 构建的应用程序,因此我没有使用 3.0+ 内置 ActionBar 类,而是使用几年前推出的 Google 较旧的 UI 推荐来构建我自己的自定义 ActionBar 实现。

作为动作栏库的作者,这句话让我感到不安。在 3.0 之前的版本和 3.0 之后的本机操作栏上使用自定义操作栏实现是相当简单的。看一下 Google 的Action Bar Compat示例。

...或者,您知道,您也可以使用像ActionBarSherlock这样的库来为您完成此操作!</shamelessPlug>