Android Fragment切换动画(滑入滑出)

之前写过一篇Activity切换动画的文章Activity切换动画(滑入滑出)
本文还采用滑入滑出的方式,贴一下Fragment之间切换动画的实现,Fragment比Activity需要多考虑一点
activity 右侧滑入左侧滑出没问题,但是fragment来回切换不能总是从左侧滑入,所以这次需要使用4个xml动画
代码如下:
1.右侧滑入
from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="200"  //动画时间
        android:fromXDelta="100%p" //位移距离
        android:toXDelta="0"/>
</set>

2.右侧滑出
out_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android: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="http://schemas.android.com/apk/res/android">
    <translate
        android: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="http://schemas.android.com/apk/res/android">
    <translate
        android: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);

这样的实现效果是 单击个人中心 从右向左滑动,单击首页 从左向右滑 体验比较好。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值