我正在用另一个片段替换片段。我希望第一个片段以淡出效果消失,第二个片段以淡入效果显示。这是怎么做到的?
答案 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();
希望这适合你。
更新:有关详细信息,请转到
答案 2 :(得分:3)
值得补充的是,setCustomAnimations也可以有4个参数:
FragmentTransaction setCustomAnimations (int enter,
int exit,
int popEnter,
int popExit)
设置特定的动画资源以运行片段 进入和退出此交易。 popEnter和popExit 特别是当进入/退出操作时,将播放动画 弹出后面的堆栈。