我展示了一个片段A,它实现了一个带有多个片段(嵌套片段)的ViewPager。
在我的嵌套片段中,我使用以下方法为菜单充气。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.my_menu, menu);
super.onCreateOptionsMenu(menu, inflater);
}
此问题已被问及here。我尝试了所有无效的答案。
我的问题是 一切工作正常。但是当我打开另一个片段(它没有任何选项菜单)并返回到上一个视图寻呼机片段,同时单击菜单项onOptionsItemSelected未触发。当我在viewpager中滑动片段并返回到前一个片段时,当我单击菜单项时它会触发。
答案 0 :(得分:1)
因为viewpager一次维持3个片段。所以当你回来时,它将菜单可见性状态设置为真实到最后一个片段。这就是为什么你的菜单项点击不点火。
在您在案例片段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;
}
}