我的应用中有一个标签主机。它使用片段活动并包含5个标签(片段) 在第3个选项卡中,有一个按钮,当我点击它时,它将转到另一个片段,即替换原始片段
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
tracker.send(MapBuilder.createEvent("click_button","Gallery","Gallery_select_" + Utility.getLocale(getActivity()),null).build());
Bundle bundle = new Bundle();
bundle.putSerializable("imageObj", images.get(position));
Fragment newFragment = (Fragment) new GalleryDetail();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
newFragment.setArguments(bundle);
transaction.replace(R.id.tabcontent, newFragment,"gallery_detail");
transaction.addToBackStack("gallery_detail");
transaction.commit();
}
});
然后问题将在这个流程中发生:
1)打开第3个标签
2)点击按钮转到下一级片段
3)点击其他标签,例如第一个标签
4)返回第3个标签(此时,它将在下一个级别片段而不是第一个级别)
5)按下后退按钮
02-19 02:16:46.427: E/AndroidRuntime(27697): java.lang.IllegalStateException: Fragment already added: PhotoGallery{43bc3500 #1 id=0x7f04003b Gallery}
如果退出第3个标签,如何返回第一个级别?我相信这会解决问题吗?谢谢你的帮助
答案 0 :(得分:0)
您可以尝试使用一对replace()
和add()
方法替换remove()
方法。或者您可以尝试使用SupportFragmentManager