2016-03-21 31 views
0

は、I)は、(getChildFragmentManager()、containerIdは、メソッド.addを使用して親断片コードで子断片を作成します。それから、childFragmentManager()、その同じcontainerIdと.replace()を使用してchildFragmentコードのonActivityCreated()メソッドの中でそのchildFragmentを置き換えようとしますが、この時点でfragmentTransactionオブジェクトまたはビューを見つけることができないものフラグメント "nameofchildfragclass"の私のcontainerIdのために。私は子供を交換しようとしたとき、私は私が子供を作成し、親に、子の内側にcontainerIdは年代その検証getChildFragmentManager()とcontainerIdは

は(本来あるべきと)同じです。 (あなたはサポートを使用していない場合やgetFragmentManager)ないgetChildFragmentManagerあなたがChildFragmentである

答えて

1

はgetSupportFragmentManagerを使用しています。

これはあなたがChildFragmentManagerを使用し、あなたのChildFragmentの親であるChildFragmentを作成したフラグメントマネージャを返します。

各フラグメントはgetFragmentManagerとgetChildFragmentManagerを持っています。

Fragment parent:childFragmentManagerを使用してChildを追加します。 getFragmentManagerは親のChildFragmentManagerを取得呼び出す:

フラグメントの子(追加フラグメントは、今、この親フラグメントの子です)。 getChildFragmentを呼び出すと、新しいFragmentManagerがこのフラグメント内に子を追加します。第二文は本当に私に混乱していることはありません何が必要)

+0

を使用するために必要な、 。私はそれを理解していない。子フラグメントを作成したフラグメントマネージャーは、getChildFragmentManager()です。 getSupportFragmentManager()は親を作成しました。 – BrettG

+0

でも私には意味がありません。私は子供を置き換えるためにgetSupportFragmentManager()を使ってみましたが、私はいくつかの奇妙な動作をしました。アプリがクラッシュすることはありませんが、フラグメントが置き換えられず、ちょうどちらつきます。 – BrettG

+1

はい、childFragmentManagerで作成したchildfragmentです。そのフラグメント(ChildFragment)では、フラグメントを切り替える必要があります。そのためには、このchildFragmentからgetSupportFragmentManagerを呼び出して、それを作成したマネージャーを取得する必要があります。 childFragmentのgetChildFragmentManagerは、childFragmentに子を追加するために使用される新しいfragmentmanagerを生成します。私はそれを少し明確にしたいと思っています。私はちょっと混乱していることを知っています。私は私の答えを編集しようとします。 – z3n105

0

子コード内の、子を置き換えるために、私は申し訳ありません

getParentFragment().getChildFragmentManager() 

ない

getChildFragmentManager() 
関連する問題