我在main.xml中有一个容器根目录。 在那个容器中,我添加了两个片段“Transaction”和“balance”。 基本上在添加交易余额后应该更新并且“交易”片段应该替换为“Stats”Fragment。
目前我使用的替换方式如下:
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.root, BalFrag).commit();
但是上面的代码是删除“balance”片段并在“transaction”片段之后添加新片段。
答案 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);
}