其他分享
首页 > 其他分享> > Android 4.2.2中未显示溢出菜单

Android 4.2.2中未显示溢出菜单

作者:互联网

我正在按照简单的教程,问题是它没有在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>

解决方法:

@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>

或者您可以在Application类的onCreate方法中使用此hack

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();
    }
}

但是这个黑客打破了兼容性,因为我知道不能与Action Bar Sherlock合作

标签:android,actionbarsherlock,android-actionbar,android-menu
来源: https://codeday.me/bug/20190625/1285546.html