单个容器有两个片段,如何从两个片段中替换一个片段?

时间:2012-08-31 18:05:37

标签: android android-layout android-ui

我在main.xml中有一个容器根目录。 在那个容器中,我添加了两个片段“Transaction”和“balance”。 基本上在添加交易余额后应该更新并且“交易”片段应该替换为“Stats”Fragment。

目前我使用的替换方式如下:

FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.root, BalFrag).commit();

但是上面的代码是删除“balance”片段并在“transaction”片段之后添加新片段。

2 个答案:

答案 0 :(得分:3)

在一个容器中使用2个碎片对我来说听起来不错,但我认为你应该能够用

之类的东西替换一个碎片
FragmentManager fm = getFragmentManager();
Fragment oldFragment = fm.findFragmentByTag("transaction"); // or keep a reference to it.
Fragment newFragment = getNewFragment() // whatever you do to get a fragment instance

FragmentTransaction ft = fm.beginTransaction();
ft.remove(oldFragment);
ft.add(R.id.root, newFragment, "Stats");
ft.commit();

答案 1 :(得分:0)

例如,我有第一个和第二个片段

if (fFirst != null && fFirst.isVisible()) {
    getSupportFragmentManager().beginTransaction().replace(R.id.container, fSecond);
} else {
    getSupportFragmentManager().beginTransaction().replace(R.id.container, fFirst);
}