【问题标题】:menu option key does't appear - android菜单选项键不出现 - android
【发布时间】:2013-08-21 19:23:49
【问题描述】:

我是初学者,我为选项菜单编写了这些代码,但是在像 Nexus4 这样的新手机中没有出现菜单选项键(它应该出现在屏幕底部的返回键附近)。

我的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu1:
        menu1_action();
        return false;
    default:
        return super.onOptionsItemSelected(item);
    }
}

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/menu1"
    android:icon="@drawable/menu1
    android:showAsAction="ifRoom"
    android:title="@string/menu1"/>

有什么问题?

【问题讨论】:

  • 这取决于制造商。许多人不再有硬菜单按钮。而是使用ActionBarOverflow 菜单。如果设备没有,则无法显示按钮
  • 您可能熟悉的底部MENU按钮仅适用于Android 2.3.x或更低版本。新菜单假设在ActionBar 中,就像上下文菜单一样。这里有更多信息:developer.android.com/guide/topics/ui/menus.html

标签: android optionmenu


【解决方案1】:

但在 Nexus4 等新手机中没有出现菜单选项键(它应该出现在屏幕底部的返回键附近)

理想情况下,它不会。理想情况下,它将是操作栏中的“...”按钮,对于 Nexus 4 等缺少屏幕外菜单按钮的设备:

更多详情请见Say Goodbye to the Menu Button

【讨论】:

    【解决方案2】:

    好吧,我最近在 Android 4.x 版本中遇到了同样的问题。我真的不知道问题出在哪里,但请尝试在您的 manifest.xml 文件中添加以下行。

    android:targetSdkVersion="17";
    

    如果它对你有用,请告诉我。它在三星 Tab 2 中对我有用。

    编辑:

    对不起。我通过在设备上的测试再次确认,当我从 manifest.xml 文件中实际删除 targetSdkVersion 时,我的菜单出现在操作栏上,否则它会显示在标题栏上,我们可以在其中看到应用程序的名称。但是因为我需要使用没有标题栏的主题,所以我从 manifest.xml 中删除了 targetSdkVersion。

    【讨论】:

    • 这不是一个好的解决方案,这样做你说你的应用程序将被编译为旧的 SDK,当有一个硬件菜单按钮时。现在最好的做法是去掉这个菜单按钮,将选项放在操作栏中,正如 CommonsWare 所说。
    • 我同意,但我忘了修改我的答案。我在选项卡中观察到,当我从 manifest.xml 中删除 targetSdkVersion 时,它实际上在操作栏中显示了菜单,它位于平板电脑屏幕的底部。但是,当我删除 targetSdkVersion 行时,问题出现在 4.x 版本中,它带有翻译和淡入/淡出动画。视图根本没有出现,我在question 中提到过。
    猜你喜欢
    • 1970-01-01
    • 2012-03-18
    • 2014-02-08
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    相关资源
    最近更新 更多