我在 main.xml 中有一个容器根目录。在那个容器中,我添加了两个片段“交易”和“余额”。基本上在添加交易余额后应该更新并且“交易”片段应该替换为“统计”片段。
目前我正在使用替换:
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.root, BalFrag).commit();
但是上面的代码删除了“余额”片段并在“交易”片段之后添加了新的片段。
我在 main.xml 中有一个容器根目录。在那个容器中,我添加了两个片段“交易”和“余额”。基本上在添加交易余额后应该更新并且“交易”片段应该替换为“统计”片段。
目前我正在使用替换:
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.root, BalFrag).commit();
但是上面的代码删除了“余额”片段并在“交易”片段之后添加了新的片段。
在一个容器中使用 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();
例如,我有 fFirst 和 fSecond 片段
if (fFirst != null && fFirst.isVisible()) {
getSupportFragmentManager().beginTransaction().replace(R.id.container, fSecond);
} else {
getSupportFragmentManager().beginTransaction().replace(R.id.container, fFirst);
}