在嵌套片段中使用OptionsMenu

fre*_*v20 5 android nested menu fragment

我使用在hostactivity MenuActivity中实现的NavigationDrawer模式。我的导航有3个项目:项目1,项目2,项目3。每个项目都绑定到一个片段。

当我单击项目1时,我显示了一个片段A,该片段实现了具有多个片段(嵌套片段)的ViewPager。

在我的嵌套片段中,我使用以下方法为菜单充气(效果很好!):

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.my_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)

但是,当我单击菜单的另一个元素(项目2->显示片段B或项目3->显示片段C)时,菜单(在嵌套片段中膨胀了)始终可见,但我希望它消失。

您对此问题有解决方案吗?先感谢您。

小智 1

我刚刚遇到了这个问题并通过以下方法解决了它:

@Override
public void onDestroyOptionsMenu() {
    this.setMenuVisibility(false);
    super.onDestroyOptionsMenu();
    Log.e(TAG, "onDestroyOptionsMenu");
}

@Override
public void onDestroyView() {
    onDestroyOptionsMenu();
    super.onDestroyView();
}
Run Code Online (Sandbox Code Playgroud)

我注意到onDestroyOptionsMenu没有被调用,所以我所做的只是从OnDestroyView方法调用它,并将菜单可见性设置为false