4

在此处输入图像描述

我正在遵循简单的教程,问题是它在 Android 4.2.2 中没有显示溢出菜单。如果我按下硬件菜单按钮,它会显示列出的菜单。

xml代码:

<item
    android:id="@+id/add_item"
    android:icon="@drawable/ic_action_emo_laugh"
    android:showAsAction="ifRoom"
    android:title="Emo Laugh"
  >
</item>
<item
    android:id="@+id/about"
    android:icon="@drawable/ic_action_emo_tongue"
    android:showAsAction="never"
    android:title="Emo TOngue"
    >
</item>

4

1 回答 1

5

@TalhaMir 对。如果您想确保溢出菜单始终可见,您可以使用此解决方法

<menu xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:id="@+id/capture" android:icon="@drawable/ic_action_capture" android:showAsAction="always"/>
       <item android:id="@+id/location" android:icon="@drawable/ic_action_location" android:showAsAction="always"/>
       <item android:showAsAction="always" android:icon="@drawable/abs__ic_menu_moreoverflow_holo_dark">
           <menu>
               <item android:id="@+id/terms_of_service" android:title="@string/ab_terms_of_service"/>
               <item android:id="@+id/privacy_policy" android:title="@string/ab_privacy_policy"/>
               <item android:id="@+id/help" android:title="@string/ab_help"/>
           </menu>
       </item>
   </menu>

或者你可以在你的类的onCreate方法中使用这个 hackApplication

private void getOverflowMenu() {

     try {
        ViewConfiguration config = ViewConfiguration.get(this);
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if(menuKeyField != null) {
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

但是这个 hack 破坏了兼容性,据我所知,它不适用于 Action Bar Sherlock

于 2013-03-08T07:10:02.747 回答