之前写过一篇Activity切换动画的文章Activity切换动画(滑入滑出)
本文还采用滑入滑出的方式,贴一下Fragment之间切换动画的实现,Fragment比Activity需要多考虑一点
activity 右侧滑入左侧滑出没问题,但是fragment来回切换不能总是从左侧滑入,所以这次需要使用4个xml动画
代码如下:
1.右侧滑入
from_right.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="/apk/res/android"><translateandroid:duration="200" //动画时间android:fromXDelta="100%p" //位移距离android:toXDelta="0"/></set>
2.右侧滑出
out_right.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="/apk/res/android"><translateandroid:duration="200"android:fromXDelta="0.0"android:toXDelta="100.0%p" /></set>
3.左侧滑入
from_left.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="/apk/res/android"><translateandroid:duration="200"android:fromXDelta="-100.0%p"android:toXDelta="0.0" /></set>
4.左侧滑出
out_left.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="/apk/res/android"><translateandroid:duration="200"android:fromXDelta="0"android:toXDelta="-100%p" /></set>
动画准备好后,在包含Fragment的Activity类中添加一下代码:
//我的Demo中只有两个Fragment 首页 和 个人中心 一左一右 这是左边的//需要加到mTransaction.add()和mTransaction.show()方法之前//首页的mTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);mTransaction.setCustomAnimations(R.anim.form_left,R.anim.out_right);//个人中心的mTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);mTransaction.setCustomAnimations(R.anim.slide_in_form_right,R.anim.slide_out_to_left);
这样的实现效果是 单击个人中心 从右向左滑动,单击首页 从左向右滑 体验比较好。