2017-03-22 20 views
0

私は動的にタグが付いたフラグメントを追加すると、親が破棄されても破棄されませんか?

ベースの活動は何も(BaseActivity)を持っていないことで、単純なのLinearLayoutを持つUIを構築するための一つの活性を使用していますアンドロイドアプリケーションおよびフラグメントの数を持っている

私はそれにフラグメントを追加(BaseFragment)

2つのフラグメントの1つを追加するには、すべての子をリスト(SerialFragment)として表示し、もう1つをウィザードスタイル(WizardFragment)で表示します。

これらの各c (質問の場合)

BaseActivityから移動すると、BaseFragmentのonDestroy()は呼び出されますが、onDestroy()は呼び出されません子断片の

私が(破壊されます)BaseFragmentと他人との間にそう

FragmentTransaction trans = parent.getFragmentManager().beginTransaction(); 
set_default_animation(trans); //this just adds a custom animation 
trans.replace(R.id.wizard_content, QuestionFragment.NewInstance(),question_id.toString()); //in case of a wizard 
trans.add(R.id.list_content,QuestionFragment.NewInstance(), question_id.toString());//in case of a list 
trans.commit(); 

唯一の違いのような子断片を追加し、SECTION_ID(他の人に、私は彼らにタグを追加することですまたはquestion_id)を使用して、findFragmentByTagを使用してそれらを取得できます。

しかし、ユーザーがこのアクティビティから移動すると、BaseFragmentのonDestroy()が呼び出されます。

私はタグを使用して追加していない唯一のフラグメントであるという事実はこれですか?

私はサポートフラグメントマネージャーを使用していないことに注意してください。ノーサポートフラグメントマネージャーはgetFragments()を含んでいないので、必要なフラグメントを見つけるためにタグを使用します。

はまた、私は、私はタグを削除し、親のフラグメントへの参照を追加することにより、上記のをテストすることができ

上記の断片のいずれかにtrueにインスタンスを保持フラグを設定していないことに注意してください、それは意味しますそれが問題でない場合は、私が避けたいリファクタリングがたくさんあります。あなたはすべてをリファクタリングした後

答えて

0

を提供することができる任意の助けを事前に

おかげで、(私はまだそれらを削除しても)タグは問題ではなかったようです

私のためにそれを固定し何、使用していますgetChildFragmentManager()の代わりに、getFragmentManager()ベース・ビューが破棄されますとき、GUI

をそのように更新するために、その子がaswell

それが誰か

を役に立てば幸い削除されます
関連する問題