【问题标题】:Actionbar (Navigation bar?) vs menubutton操作栏(导航栏?)与菜单按钮
【发布时间】:2013-01-28 11:34:29
【问题描述】:

我有一个全屏运行并依赖于菜单按钮的应用程序。我没有意识到像 Galaxy Tab 这样的设备使用了一个不再有菜单按钮的操作栏。当我触摸菜单按钮时,我的应用当前会加载一个显示设置菜单的片段:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    FragmentManager lFM = getSupportFragmentManager();
    SettingsDialogFragment lSettingsDialog = new SettingsDialogFragment();
    lSettingsDialog.show(lFM, "Settings");

    return false;    
}

我了解可以向操作栏添加自定义图标,按下该图标可能会导致与菜单按钮相同的行为。我不确定的是如何实现这一点。

我如何知道设备没有菜单按钮而我需要在操作栏上添加图标?它不能像检查 SDK 版本那样简单,因为动作栏显然是在蜂窝中引入的,但是我的 Galaxy Note 运行冰淇淋三明治并且没有动作栏(它仍然有一个菜单按钮)。我不想放弃任何不动产,因此无法在我的主布局中添加按钮或菜单选项。

我刚刚在谷歌开发者上看到:

导航栏 Android 4.0 手机新增,导航栏为 仅出现在没有传统硬件密钥的设备上。 它包含设备导航控件“返回”、“主页”和“最近”,以及 还会显示为 Android 2.3 或更早版本编写的应用程序的菜单。

所以我尝试将我的应用程序的目标版本设置为 8。而不是菜单,我得到一个按钮,允许我更改应用程序的屏幕大小 - 但没有菜单按钮。

【问题讨论】:

    标签: android android-actionbar


    【解决方案1】:

    我有一个全屏运行并依赖于菜单按钮的应用程序。

    这在 两年 中一直是个坏主意。

    我没有意识到像 Galaxy Tab 这样的设备使用的操作栏不再有菜单按钮。

    此类设备已经存在 两年

    当用户点击菜单按钮时,我的应用当前会加载一个显示设置菜单的片段

    这从来都不是一个合适的设计举措。请允许存在的 MENU 按钮正常运行,在 Android 1.x/2.x 上显示选项菜单并在 Android 3.0+ 上触发操作栏溢出。

    我怎么知道设备没有菜单按钮

    http://developer.android.com/reference/android/view/ViewConfiguration.html#hasPermanentMenuKey()

    【讨论】:

    • 当用户点击菜单键时显示菜单有什么问题?在这种情况下,我不喜欢默认选项菜单,因此我创建了从 DialogFragment 派生的内容,而不是“选项”,我可以混合使用按钮、复选框和微调器来创建设置菜单。我唯一的其他选择是要么放弃屏幕的一部分(我不想要),要么以某种方式在水龙头上显示我的菜单或长按屏幕上的某处,这两者都不可接受。感谢最后一个链接 - 它允许我让这些设备在点击返回键时弹出设置菜单。
    • @Lieuwe:“我不喜欢默认选项菜单”——像这样玩噱头的开发人员会在媒体上受到嘲笑,因为许多用户和权威人士抱怨 Android 开发人员是无纪律的懒汉,无法创建行为与设备上其他应用程序类似的应用程序。 “我创建了从 DialogFragment 派生的东西,而不是“选项”,我可以混合使用按钮、复选框和微调器来创建设置菜单”——这很好,但不要破解 MENU 按钮来显示它。通过操作栏项目、按钮或手势显示它。
    • 我了解您的 cmets。另一方面 - 我不在乎我什至不使用的 Android 上的其他应用程序是如何工作的。在这种情况下,只有我和其他几个人运行的是我自己的应用程序,我喜欢菜单按钮显示自定义菜单而不是默认外观选项菜单这一事实。如果我想被告知我可以创建和不能创建什么以及我应该如何创建它,我会做 iOS。 slob mode> 我知道这种方法有时会导致上述问题 - 但它们只需要在发生时加以修复。
    • @Lieuwe:适合自己。但请记住,StackOverflow 不仅仅是您个人的资源。它服务于庞大的社区,包括成为 Android 开发人员的第一支持点。当人们在他们的回答中包含您认为超出您的具体关注点的建议时,请记住,答案可能是在考虑到更多的受众时编写的。
    • 要点——我也已经接受了你的回答,包括告诉我不要像这样滥用菜单按钮。虽然这里的情况并非如此,但有时我确实发现很难在“正确”的事情和付钱给我们开发某些东西并有其他想法的人之间做出选择。
    猜你喜欢
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多