当我执行getSupportFragmentManager()时。Popbackback()
它弹出后堆栈,并执行与弹出的后堆栈条目相关联的片段事务。
我有3个片段:
-FragmentA
-FragmentB
-FragmentC
“我的活动”在用户推广时执行3个事务:
片段A首先被添加到我的容器中
下面是我执行事务3的代码:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
fm.popBackStack();
ft.remove(fragmentB)
.add(R.id.container, fragmentC, tag)
.addToBackStack(null)
.commit();
事务1和事务2似乎工作正常。然而,当我尝试执行事务3时,会发生的情况是FragmentB被FragmentC替换,但FragmentC在它上面画出之前,FragmentA也出现了,FragmentA继续出现在FragmentC后面。
我做错了什么?如何用FragmentC替换FragmentB,而不让FragmentA出现在背景中。
我找到了一个变通方法,如果不是解决方案的话。
似乎在事务3中,当我删除FragmentB时,之前分离的FragmentA会自动添加。这就是为什么FragmentA出现在FragmentC后面。
解决方法是在删除FragmentA后再次分离FragmentA,如下所示:
ft.remove(fragmentB)
.detach(fragmentA) // Detach FragmentA that is automatically added by the removing of fragmentB
.add(R.id.container, fragmentC, tag)
.addToBackStack(null)
.commit();
我试图通过活动中按钮的onclick事件将一个主片段替换为另一个片段,但该片段恰好悬停在主片段上。 这是我的密码
我正在制作抽屉菜单,目前正在使用: getSupportFragmentManager()。开始交易()。替换(R.id.mainfragment,f1)。提交(); 但是正如你所看到的,它总是用新的片段替换主片段。谢谢!
我有一个活动和两个片段。片断a和片断b。 我需要实现像,最初碎片应该在那里。在之后,单击FragmentB应该在那里。 我的第二段代码:
问题内容: 我在小组活动中有一个片段,我想用另一个片段替换它: 在不使用活动组的情况下作为单独的项目完成时,它工作正常,当控件进入getview()时,每件事在日志猫中都可以正常工作,但是没有视图可见,甚至没有任何异常出现,我希望将书详细信息片段由部分详细信息片段代替。 图书详细信息片段的XML具有id book_description_fragment,而部分描述片段的xml具有id secti
我正在通过片段“A”调用从服务器获取数据。当我用“B”替换“A”时,在从“B”返回到“A”之后,每次都会调用片段“A”,因此每次都会生成HTTPGET。如何避免这种情况,并在活动中重用类似REORDER_to_FRONT的片段? 我正在使用此代码替换为新片段 当我反压时,
知道TargetFragment现在已被弃用,如何从DialogFragment调用片段的方法? 过去,我可以这样做: 父级碎片 对话框碎片 这不再可能,因为目标碎片现已弃用。 我读到可以使用setFragmentResultListener()传递变量,但是如何从DialogFragment调用ParentFragment.myMethod()方法呢?