第一种:通过 设置动画 的方式
1.首先在在res/anim文件夹下创建两个xml文件:fade_out.xml和slide_in.xml
2.定义动画后,可以通过调用FragmentTransaction.setCustomAnimations(),并通过其资源ID传递动画资源。
如下:
fragmentTransaction.setCustomAnimations(R.anim.slide_in,R.anim.fade_out);
fragmentTransaction.commit();//必须提交事务
第二种:通过 设置过渡 的方式
1.在res/transition文件夹下创建fade_out.xml和slide_in,xml两个文件,如下:
2.然后直接给fragment设置过渡
总:设置动画和设置过渡的区别:
设置动画是在Activity中使用getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.slide_in,R.anim.fade_out)来设置动画,在提交的同一个事务中,该Activity中包含的所有fragment切换时都会有这个动画效果。
设置过渡是直接给fragmnet设置过渡效果,不论哪个包含fragment的Activity都不需要去设置它的动画,也就是说fragment的切换效果可以直接供不同的Activity使用
那么,设置动画和设置过渡同时使用会怎么样?是会使用哪个动画效果呢?
嗯。。。这是不被允许的,二者是冲突的。
详情链接:
https://developer.android.google.cn/guide/fragments/animate#set-transitions
https://developer.android.google.cn/guide/fragments/animate#set-transitions