工具栏:始终显示溢出菜单按钮

时间:2014-12-08 16:08:48

标签: android android-support-library android-toolbar

问题:更新支持库并使用工具栏后,溢出菜单按钮始终显示在带有和不带硬件菜单按钮的设备上

我需要什么:我希望溢出菜单按钮仅在设备没有硬件菜单按钮时显示

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

帮助将不胜感激!

3 个答案:

答案 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。

相关问题