こんにちは私は正しいことをしているのかわかりません。1つのアクティビティに複数のフラグメントがあります(同時に表示されていません)。フラグメントを追加するときに、前のインスタンスが存在するかどうかを確認する必要がありますか?互換性パッケージを使用していますが、フラグメント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); それはなんのためですか?バックスタックをポップしてトランザクションを維持できることは知っていますが、どのように、そして何のために使用できますか?それは必要ですか、それとも使用しない場合はスキップできますか?
ありがとう