我有两个以下菜单项:
<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个点”(如上图所示,在右上角弹出),另一个点击菜单按钮时(默认样式,弹出屏幕底部。)
如何只显示其中一个菜单 - 最好是右上角弹出的菜单?
答案 0 :(得分:0)
我遇到了和你一样的问题。并使用以下代码解决:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
toolbar.showOverflowMenu();
return true;
}
return super.onKeyUp(keyCode, event);
}