在嵌套片段中使用 OptionsMenu 不更新

Working with OptionsMenu in nested fragment not updating

我展示了一个片段 A,它实现了带有多个片段(嵌套片段)的 ViewPager。

在我的嵌套片段中,我使用以下方法扩充菜单。

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

这个问题已经有人问过 here。我尝试了所有的答案,但都不起作用。

我的问题是 当我打开另一个片段(它没有任何选项菜单)并在单击菜单项 onOptionsItemSelected 未触发时返回到上一个视图寻呼机片段时,一切正常fine.but。当我在 viewpager 中滑动片段并返回到上一个片段时,当我单击菜单项时它会触发。

这是因为 viewpager 一次保持 3 个片段处于活动状态。所以当你回来时,它会将菜单可见性状态设置为 true 到最后一个片段。这就是为什么您的菜单项点击没有触发。

在案例片段 A 中保留 viewpager 的片段中使用以下内容。

private boolean isInitial=true;

@Override
    public void onResume() {
        super.onResume();

        if (!isInitial) {
            int pos = viewpager.getCurrentItem();
            if (pageAdapter.getItem(pos).getUserVisibleHint() && pageAdapter.getItem(pos).isVisible()) {
                pageAdapter.getItem(pos).setMenuVisibility(true);
            }
        } else {
            isInitial = false;
        }
    }