BackStackでFragment Animationを逆再生する方法とは?

以下のコードでフラグメント使用時に戻るボタンが押されると、バックスタックでのアニメーションが反転する仕組みだと思いました。

FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out);
ft.replace(R.id.viewContainer, new class(), "layout").addToBackStack(null).commit();
ソリューション

android documentation for custom animation]1によると。

変更します。

ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out);

へ。

ft.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out, R.anim.hyperspace_in, R.anim.slide_out );

で、バックスタックがアニメーションするようになりました - 逆で!

解説 (3)

正しいアニメーションを使用する 私は以下の方法を使用し、魅力的に動作しています。

slide_in_left.xml (スライド・イン・レフト

<?xml version="1.0" encoding="utf-8"?>


スライドイン(右).xml の場合

 <?xml version="1.0" encoding="utf-8"?>




スライド_アウト_レフト.xml





slide_out_right.xml(スライド・アウト・ライト)。

<?xml version="1.0" encoding="utf-8"?>




次に、フラグメントを追加する際に以下を使用します。

setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_left,
                                R.anim.slide_out_right, R.anim.slide_in_right)

で、100%動作するようになります。

解説 (4)
.setCustomAnimations(R.animator.fragment_fade_in,
        R.animator.fragment_fade_out,
        R.animator.fragment_fade_p_in,
        R.animator.fragment_fade_p_out)

と置き換えてください。

mFragmentManager.beginTransaction()
    .setCustomAnimations(R.animator.fragment_fade_in,
            R.animator.fragment_fade_out,
            R.animator.fragment_fade_p_in,
            R.animator.fragment_fade_p_out)
    .replace(R.id.main_container, FragmentPlayerInfo.getInstance(data))
    .addToBackStack(FragmentPlayerInfo.TAG)
    .commit();
解説 (3)