如果我为具有相同 viewId 的片段 A 和 B 调用 add(),然后尝试使用片段 C 在该 viewId 上调用 Replace(),则只有片段 A 被删除,最终得到片段 B 和 C。根据文档, A 和 B 都应该替换为 C...或者我读错了文档?
这是执行此操作的一种组合:
public class FragmentActivity extends SherlockFragmentActivity {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getSupportFragmentManager().beginTransaction().add(R.id.fragment, new FragmentA()).add(R.id.fragment, new FragmentB()).commit();
((Button) findViewById(R.id.swap)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment, new FragmentC()).commit();
}
});
}
}
查看文档,.replace 调用一个以片段作为参数的方法。所以我猜它只是为了替换一个片段。我真的不明白为什么你首先要向同一个 id 添加两个片段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)