新片段在添加方法上挤压旧片段

时间:2014-03-19 23:15:45

标签: android android-fragments

我正在使用此代码:

    FragmentManager FManager = getFragmentManager();
    FragmentTransaction FTransaction =  FManager.beginTransaction();
    FTransaction.setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
    fragment.setArguments(fragment.getArguments());
    FTransaction.add(ResourceId, fragment, label);
    FTransaction.addToBackStack(backStack);
    FTransaction.commit();

我正在接受我的活动:

http://i.stack.imgur.com/K9NKy.png

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您要求片段管理器添加另一个片段,它正在这样做。你永远不会告诉它对原始片段做任何事情。如果你想删除exisitng片段并显示一个新片段,那么你应该调用:

FTransaction.replace(...)

而不是调用add。

如果通过xml布局文件添加了原始片段,则更难更换。处理这种情况有多个SO问题。

答案 1 :(得分:0)

我希望我简单的回答能帮到你。目前,您正在主片段上加载另一个片段。你需要"隐藏"或"删除"或"替换"与旧的。正如我在下面提到的那样

如果删除或隐藏

Fragment fr2 = fragmentManger.findFragmentByTag(Constants.TAG_Detail_Page);
if (fr2 != null)
    fragmentTransaction.remove(fr2);

对于"替换",您将新的片段分配给contentView:

FTransaction .replace(R.id.fragment_container, newFragment);