我有以下菜单xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_totalCerdit"
android:showAsAction="always"
android:title="-100"/>
<item
android:id="@+id/actions_saved"
android:icon="@android:drawable/btn_star"
android:showAsAction="always"
android:title="@string/action_settings"/>
<!-- Settings, should always be in the overflow -->
<item
android:id="@+id/action_settings"
android:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/action_full_text"
android:showAsAction="never"
android:title="@string/action_full_list"/>
<item
android:id="@+id/action_saved_text"
android:showAsAction="never"
android:title="@string/action_favorites_list"/>
<item
android:id="@+id/logout"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/log_out"/>
</menu>
在Samsung Note2上部署时,操作栏会显示所有不具有android:showAsAction="never"
的项目。按下三星内置左下方菜单按钮时会显示具有该属性的那些。
在对Nexus4进行描述时,我看到所有带有android:showAsAction="never"
的项目作为&#34; 3点&#34;的子菜单项目
如何使这3个点出现并在note2中表现与nexus4相同?
答案 0 :(得分:1)
在Compatibility Definition Document中,Google表示Android 4.4+设备不应为菜单功能实现专用的物理按钮。所以以后的设备会很好。
但似乎NoteII在Action栏中设置了Overflow菜单按钮(3点菜单按钮)。如果你真的想在NoteII上做这件事,我发现了一个旧的黑客:
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) {
// presumably, not relevant
}
答案 1 :(得分:0)
试试这个:
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
return true;
}
将此添加到您的所有Activity
课程。现在,您将在Note 2和Nexus 4上看到相同的内容。
答案 2 :(得分:0)
只需实施此方法
@Override
public boolean onCreateOptionsMenu(Menu menu) {present.
getMenuInflater().inflate(R.menu.yourfile.xml, menu);
return true;
}