onCreateOptionsMenu内容在片段之间保持不变

时间:2015-02-20 15:02:00

标签: android android-fragments android-viewpager android-optionsmenu

我有一个包含2个片段的ViewPager。片段1和片段2.它们都覆盖了最简单的onCreateOptionsMenu()

片段1

@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.fragment1, menu);
    //super.onCreateOptionsMenu(menu, inflater);
    return;
}

Fragment2

@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.fragment2_actionbar, menu); 
    //super.onCreateOptionsMenu(menu, inflater);
    return;
}

菜单xml文件的内容:

R.menu.fragment1

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appcompat="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/menu_add"
        android:title="sdfsdf"
        appcompat:showAsAction="always"/>

    <item
        android:id="@+id/menu_download_all"
        android:orderInCategory="1"
        android:title="@string/menu_download_all">
    </item>

</menu>

R.menu.fragment2_actionbar:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:appcompat="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/tools">
<item
    android:id="@+id/menu_add"
    android:title="@string/menu_search"
    appcompat:showAsAction="always"/>

</menu>

奇怪的是。 fragment1 xml菜单(&#34; sdfsdf&#34;)显示,ViewPager仅在fragment1上! fragment2菜单(@ string / menu_search)始终显示。当viewpager显示fragment1或fragment2时。

我不知道如何调试它。欢迎所有的想法。

编辑:我应该提一下,当我转到fragment1时,我可以看到片段1和2中的onCreateOptionsMenu()都被执行了,当我转到fragment2时,只执行了fragment2中的onCreateOptionsMenu()。所以我觉得菜单按原样显示。但是,为什么我选择fragment1时会执行片段2中的onCreateOptionsMenu()?

0 个答案:

没有答案