无法按标签找到片段

时间:2015-07-29 08:53:43

标签: android android-fragments

我有一些片段,名为frag1,直到frag12。他们按订单制作/调用。因此,frag1替换为frag2后,frag2替换为frag3,依此类推。在frag10,我需要回到frag2。但是当我尝试通过null访问Frag2时,我总是tag

首先,从frag1移动到frag2时,我就这样做了

FragmentTransaction transaction =  getFragmentManager().beginTransaction(); 
transaction.replace(((FrameLayout) container).getId(), 
                        new Frag2(getActivity(), container), 
                        "frag2");
transaction.addToBackStack(null);
transaction.commit();

然后,在frag10,我尝试了这个

Fragment frag2 = getChildFragmentManager().findFragmentByTag("frag2");

结果是,frag2null

可能发生了什么?哪里有Frag2

3 个答案:

答案 0 :(得分:1)

您的所有片段都由getFragmentManager添加/替换,因此它们位于相同的FragmentManager中 但是当检索frag2时,您调用了getChildFragmentManager,因此当然frag2为空 试试这个:

Fragment frag2 = getFragmentManager().findFragmentByTag("frag2");

希望这有帮助。

答案 1 :(得分:-1)

你的遗失

ft.addToBackStack(tag);

请添加标签名称,以便提交片段并尝试使用相同的名称

答案 2 :(得分:-1)

在提交之前使用fragment.addToBackStack(TAG)