0

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

目前我正在使用替换:

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

但是上面的代码删除了“余额”片段并在“交易”片段之后添加了新的片段。

4

2 回答 2

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();
于 2012-08-31T18:14:14.320 回答
0

例如,我有 fFirst 和 fSecond 片段

if (fFirst != null && fFirst.isVisible()) {
    getSupportFragmentManager().beginTransaction().replace(R.id.container, fSecond);
} else {
    getSupportFragmentManager().beginTransaction().replace(R.id.container, fFirst);
}
于 2014-10-24T04:52:45.677 回答