Dro*_*ner 4 android android-menu actionbarsherlock android-actionbar

我正在遵循简单的教程,问题是它没有在 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>
Run Code Online (Sandbox Code Playgroud)
@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>
Run Code Online (Sandbox Code Playgroud)
或者你可以在onCreate你的Application类的方法中使用这个 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();
}
}
Run Code Online (Sandbox Code Playgroud)
但是这个 hack 破坏了兼容性,据我所知不适用于 Action Bar Sherlock