2016-07-22 8 views
5

私はその中にフラグメントAを持つアクティビティを持っています。フラグメントAは、その内部にフラグメントBをネストしています。そのImが、私はコードAndroidのアニメーションネストされたフラグメント

を使用して、フラグメントDでフラグメントAを切り替える何その後バックフラグメントB. に私をもたらし

 getChildFragmentManager().popBackStack(); 

をやった後

  getChildFragmentManager() 
       .beginTransaction() 
       .setCustomAnimations(R.anim.move_left_in, R.anim.move_left_out,R.anim.move_right_in, R.anim.move_right_out) 
       .replace(R.id.container, fragmentC) 
       .addToBackStack("nested") 
       .commit(); 

:私は、次のコードを使用してCとBを切り替えています

 getSupportFragmentManager() 
      .beginTransaction() 
      .setCustomAnimations(R.anim.move_up_in, R.anim.move_up_out, R.anim.move_down_in, R.anim.move_down_out) 
      .replace(R.id.fragment_holder, fragmentD) 
      .addToBackStack("fragments") 
      .commit(); 

このアニメーションがA-> Dトランザクションで再生されている間、BはトランザクションC-> Bのアニメーションを再生し、同じ結果を得るバックスタックをポップするのはなぜですか?

+0

libsのバージョンをサポートしていますか? – azizbekian

+0

私はあなたが実際に望むものを得ていません。この部分で少し詳しく説明できますか?A-> Dトランザクションのアニメーションが再生されている間、BはトランザクションC-> Bのアニメーションを再生し、同じ結果を得るバックスタックをポップすることによって、なぜですか? –

答えて

-1

使用サポートfragmnetManagerはなぜgetSupportFragmentManagerを使用することを意味し、getChildFragmentManagerを()を使用しないでください?

ネストされたフラグメントのBcz

私はあなたの問題は、このソリューションで解決している願っています。すでにアニメーションを設定しているので> D起こり、

- あなたはフラグメントA内の断片D.

でコンテンツをフラグメントAを切り替えると、その親とトランザクションAから切り離す:)

+0

なぜ彼は子フラグメントマネージャを使うべきではないのですか? – RadekJ

+0

私はフラグメントでアニメーションをやっている間にこの問題に直面していたので、私はそれを子マネージャからサポートマネージャに変更します。 –

+0

ここで確認できます。https://developer.android.com/reference/android/app/FragmentTransaction.html#setCustomAnimations%28int,%20int,%20int,%20int%29 –

0

をありがとうそれらのアニメーションによる遅延は、Bのアニメーションを最初に残しておいた理由です。 、次にA - > Dアニメーションです。

関連する問題