Android アクション バー タブの 1 つのタブ内に 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( ); しかし、成功しませんでした....誰かが私を助けることができますか?