为什么我的 Android onPrepareOptionsMenu 在我单击 MenuIten 时调用

Why my Android onPrepareOptionsMenu called when I click the MenuIten

我使用 onPrepareOptionsMenu 方法加载我的工具栏菜单,因为当我显示不同的框架时我需要更改菜单项。

现在我遇到一个问题,当我点击更多图标显示溢出菜单时,工具栏上的菜单项变成两个双倍,如图,有两个搜索菜单项

我调试了这个,发现当我点击更多菜单项时,onPrepareOptionsMenu方法会再次调用

这是我的代码

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_selection, menu);
    MenuItem item = menu.findItem(R.id.action_search);
    mSearchView.setMenuItem(item);
    return true;
}

我的菜单xml:

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


<item
    android:id="@+id/action_search"
    android:icon="@drawable/icon_menu_search"
    android:orderInCategory="100"
    android:title="@string/menu_hint_search"
    app:showAsAction="always" />

<item
    android:id="@+id/action_share_selection"
    android:orderInCategory="101"
    android:title="@string/menu_hint_share"
    app:showAsAction="never" />

<item
    android:id="@+id/action_feedback_selection"
    android:orderInCategory="102"
    android:title="@string/menu_hint_feedback"
    app:showAsAction="never" />

我能为此做什么?请帮忙!谢谢!

我仍然不知道原因,但我找到了一个我认为很愚蠢的方法是我 whi menu.clear(); 在我展开布局菜单之前。你们有没有更好的实现方式。