FragmentTransaction的replace()方法无法正常工作......
1)。我添加了一个片段f1并提交了它。 2)。我添加了一个片段f2并提交了它。 3)。我使用了replace()方法并使用片段f3来替换片段事务对象上的任何内容。
它只删除片段f1,但不删除片段f2。所以f2和f3是可见的。 我的期望是,只应显示片段f3。
我使用LinearLayout和垂直TextView作为CONTAINER。
答案 0 :(得分:0)
你可以使用它。
mFragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
答案 1 :(得分:0)
根据API reference,FragmentTransaction的替换方法将:
替换添加到容器中的现有片段。
public abstract FragmentTransaction replace(int containerViewId,Fragment fragment,String tag)
替换添加到容器的现有片段。这与使用相同的containerViewId 添加的所有当前添加的片段,然后使用相同的add(int,Fragment,String)调用 remove(Fragment)基本相同这里给出的论点。
<强>参数强>
- containerViewId - 要替换其片段的容器的标识符。
- fragment - 要放入容器中的新片段。
- tag - 片段的可选标记名称,以便稍后使用FragmentManager.findFragmentByTag(String)检索片段。
<强>返回强>
返回相同的FragmentTransaction实例。
你的期望是不是错了?
答案 2 :(得分:0)
使用FrameLayout作为容器而不是LinearLayout。