在我的应用程序中有一个FrameLayout,我在它上面添加了各种片段
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fargmentTag);
ft.commit();现在似乎当我使用ft.replace(R.id.fragment_content, fragment, fargmentTag);,然后在其他地方调用
getSupportFragmentManager().findFragmentByTag(fargmentTag); 我总是得到null。
但是,如果我使用add而不是replace,这个问题就解决了,但是出现了另一个问题,即每个片段都被添加到另一个片段的顶部,并且我可以在下面看到其他片段。
我更喜欢使用replace,但我需要保存的片段状态。还需要注意的是,我没有使用addToBackStack。
发布于 2013-05-20 22:56:11
试试这个,它会起作用的。
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fragmentTag);
ft.commitAllowingStateLoss();发布于 2013-05-20 22:37:33
你刚刚基本上回答了你自己的问题。使用addToBackStack()。
发布于 2016-05-04 20:01:15
FragmentManager:fm = getSupportFragmentManager(); fm.executePendingxxxx,试试看。
https://stackoverflow.com/questions/16651826
复制相似问题