我有3个标签,每个标签都有一个片段。使用这些方法从一个切换到另一个时。第一次工作正常,并逐个标签找到,但第二次它找不到它,当它试图添加片段时有趣的是删除我错误java.lang.IllegalStateException: Fragment already added:
所以片段肯定在某处。
private void selectedSocialTab() {
if (!mSocialTab.isSelected()) {
mSocialTab.setSelected(true);
mProfileTab.setSelected(false);
mPlacesTab.setSelected(false);
if (!getResources().getBoolean(R.bool.make_grid)) {
FragmentManager manager = getFragmentManager();
Fragment frag = manager.findFragmentByTag("social");
if (frag == null) {
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.add(FRAGMENT_PLACE_RESOURCES, SocialScreenFragment.newInstance(), "social");
trans.commit();
Toast.makeText(mCtx, "NULL-social", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(mCtx, "NOT NULL-social", Toast.LENGTH_SHORT).show();
FragmentTransaction trans = getFragmentManager().beginTransaction();
trans.replace(FRAGMENT_PLACE_RESOURCES, frag);
trans.commit();
}
} else if (getResources().getBoolean(R.bool.make_grid)) {
super.replaceFragment(SocialScreenLargeFragment.newInstance(), FRAGMENT_PLACE_RESOURCES);
}
}
}
答案 0 :(得分:1)
不要替换,添加和显示片段。
变化:
trans.replace(FRAGMENT_PLACE_RESOURCES, frag);
为:
trans.show(frag);