问题:更新支持库并使用工具栏后,溢出菜单按钮始终显示在带有和不带硬件菜单按钮的设备上
我需要什么:我希望溢出菜单按钮仅在设备没有硬件菜单按钮时显示
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/action_settings"
app:showAsAction="never"
android:title="@string/action_settings"/>
<item
android:id="@+id/import_data"
app:showAsAction="never"
android:title="@string/import_data"/>
活动中的
(ActionBarActivity)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
和onCreate:setSupportActionBar(mToolbar);
帮助将不胜感激!
答案 0 :(得分:2)
我找到了解决问题的方法:
1-不要再调用setSupportActionBar(mToolbar);
,而是直接使用工具栏
2-通过呼叫检查设备是否有硬件菜单按钮
ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(getApplicationContext()));
:
3-如果设备有菜单按钮我在onCreateOptionsMenu
中返回true,
否则我会在工具栏中夸大菜单
答案 1 :(得分:2)
您可以更改硬件菜单按钮的行为,以显示/隐藏工具栏溢出菜单。为此,请覆盖onKeyUp
的{{1}}方法。
Activity
答案 2 :(得分:0)
一切正常(至少对我而言)。
在您的活动的onCreate方法中执行:
boolean hasHarwareMenu = ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(getApplicationContext()));
if (!hasHarwareMenu) setSupportActionBar(toolbar);
并在onCreateOptionsMenu中正常膨胀menu.xml。