嗨,我不确定我做的是否正确。我在一项活动中有几个片段(未同时显示)。当我添加片段时,我是否必须检查以前的实例是否存在?我正在使用兼容性包,我的片段 CameraFragment 是一个单独的类(在它自己的文件中):
private void addNewFragment(Fragment fragment, String tag) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.frag1, fragment, tag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
}
进而 :
public void startPicTaking() {
addNewFragment(CameraFragment.newInstance(), TAG_PIC_TAKING);
}
因此,每次用户单击按钮拍照时,我都会使用此方法,但是我应该验证片段是否已经存在并首先将其删除,还是静态方法 newInstance 确保片段不重复?
我已多次阅读该文档,但我不明白为什么这行: ft.addToBackStack(null); 它是干什么用的?我知道您可以弹出回栈并保留交易,但如何使用它以及用于什么目的?是否有必要,或者如果我不使用它,我可以跳过它?
谢谢