如何在替换片段时应用淡入/淡出动画

时间:2014-05-02 05:57:24

标签: android

我正在用另一个片段替换片段。我希望第一个片段以淡出效果消失,第二个片段以淡入效果显示。这是怎么做到的?

3 个答案:

答案 0 :(得分:44)

添加@MD代码

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();

ft.setCustomAnimations(R.anim.fade_in,
                R.anim.fade_out);
ft.replace(R.id.realtabcontent, fragment);
ft.commit();

当您弹出片段时,然后应用以下动画:

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_out, R.anim.fade_in);

ft.replace(R.id.realtabcontent, fragment);      
ft.commit();

和fadeIn的XML

<set xmlns:android="http://schemas.android.com/apk/res/android">
       <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
            android:duration="@android:integer/config_mediumAnimTime" />
</set>

和fadeOut的XML

<set xmlns:android="http://schemas.android.com/apk/res/android">
       <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
            android:duration="@android:integer/config_mediumAnimTime" />
</set>

答案 1 :(得分:10)

按下Fragment然后应用以下动画:

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();

ft.setCustomAnimations(R.anim.fade_in,
                R.anim.fade_out);
ft.replace(R.id.realtabcontent, fragment);
ft.commit();

当你弹出Fragment然后应用动画,如:

FragmentManager manager = getSupportFragmentManager();
FragmentTransaction ft = manager.beginTransaction();
ft.setCustomAnimations(R.anim.fade_out, R.anim.fade_in);

ft.replace(R.id.realtabcontent, fragment);      
ft.commit();

希望这适合你。

更新:有关详细信息,请转到

  1. http://android-er.blogspot.in/2013/04/implement-animation-in.html
  2. Animate the transition between fragments

答案 2 :(得分:3)

值得补充的是,setCustomAnimations也可以有4个参数:

FragmentTransaction setCustomAnimations (int enter, 
                                         int exit, 
                                         int popEnter, 
                                         int popExit)
  

设置特定的动画资源以运行片段   进入和退出此交易。 popEnter和popExit   特别是当进入/退出操作时,将播放动画   弹出后面的堆栈。