两个溢出菜单可见

时间:2015-07-05 14:56:53

标签: android

我有两个以下菜单项:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:yourapp="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item android:id="@+id/action_search"
        android:title="@string/action_search"
        android:icon="@drawable/ic_search_white_24dp"
        yourapp:showAsAction="always|collapseActionView"
        yourapp:actionViewClass="android.support.v7.widget.SearchView"
        />

    <item android:id="@+id/action_about"
        android:title="@string/action_about"
        android:orderInCategory="100"
        yourapp:showAsAction="never"
        />
</menu>

溢出菜单样式:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="actionOverflowMenuStyle">@style/OptionsMenu</item>
</style>

<style name="OptionsMenu" parent="Widget.AppCompat.PopupMenu.Overflow">
    <item name="android:popupBackground">@color/ColorPrimary</item>
</style>

当应用程序运行时,可以看到两个溢出菜单:一个点击工具栏中的“3个点”(如上图所示,在右上角弹出),另一个点击菜单按钮时(默认样式,弹出屏幕底部。)

如何只显示其中一个菜单 - 最好是右上角弹出的菜单?

1 个答案:

答案 0 :(得分:0)

我遇到了和你一样的问题。并使用以下代码解决:

 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_MENU) {
          toolbar.showOverflowMenu();
          return true;
     }
     return super.onKeyUp(keyCode, event);
 }