我想在 android 操作栏选项卡的单个选项卡中显示 2 个不同的片段。
我会做的是这样的:
public class Frag1 extends Fragment {
@Override
public void onCreateOptionsMenu (Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.frag1_menu, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item1:
break;
case R.id.item_GoToFrag2:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.remove(Frag1.this);
Fragment mFragment = Fragment.instantiate(getActivity(), Frag2.class.getName(), null);
ft.add(android.R.id.content, mFragment, Frag2.class.getName() );
ft.commit();
break;
}
return true;
}
}
Frag2 的代码完全相同,唯一的区别在于 onOptionsItemSelected 的情况如下:
case R.id.item_GoToFrag1:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.remove(Frag2.this);
Fragment mFragment = Fragment.instantiate(getActivity(), Frag2.class.getName(), null);
ft.add(android.R.id.content, mFragment, Frag1.class.getName() );
ft.commit();
break;
一切似乎工作正常,问题是当我切换到不同的选项卡时,与 Frag2 相关的图标仍然对所有其他选项卡可见,我真的不明白为什么,我也调用 getActivity().invalidateOptionsMenu( ); 但没有成功....任何人都可以帮助我吗?