閉じる

Fragment#getChildFragmentManager

Fragment間の親子関係を構築するのに使う。
Activity#getFragmentManagerでの一元管理でも最初はあまり気にならないのだけど、Fragmentを内包する Fragmentを作り始めるとかなり嫌なことに気がつく。
このことに思い当たったのが論理的には親子関係がある Fragmentの親側を removeしても、子側は removeされないという現実。
子側を作る時に Fragment#getChildFragmentManagerを使うようにするだけで解決する。
そして、親子関係が利用できるなら処理の対象となる Fragmentをタグなどを使って明示する必要が無くなる場面も少なくない。
一つ注意すべき点としては、親子関係があるので親が死ねば子も死ぬ点。
Activity#getFragmentManagerだけを使っているうちは子供と思って DialogFragmentを出し、親が再構築されても子供の DialogFragmentは死なないで都合良く動いていたけど、しっかりと親子関係が出来ると親が再構築された時点で子供の DialogFragmentも死んでしまうこと。
その辺をちゃんと考えて作らないと使いづらいアプリになってしまう。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)