第二次无法通过Tag找到片段

时间:2015-08-24 09:18:18

标签: android android-fragments

我有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);
                }
            }
        }

1 个答案:

答案 0 :(得分:1)

不要替换,添加和显示片段。

变化:

trans.replace(FRAGMENT_PLACE_RESOURCES, frag);

为:

trans.show(frag);