我有一个包含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()?