我的片段转换有自定义对象动画。在Android版本6(Marshmallow)之前动画没有问题。但是在6之后,我的动画片段在动画中相互重叠,如下所示
我的左侧滑动自定义动画
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:propertyName="x"
android:valueFrom="1000"
android:valueTo="0"
android:valueType="floatType" />
</set>
使用动画创建片段:
Fragment fr = new GameSizeFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.setCustomAnimations(R.animator.slide_in_left, R.animator.slide_out_right);
fragmentTransaction.addToBackStack(activeFragment);
fragmentTransaction.replace(R.id.fragmentPlace, fr);
fragmentTransaction.commit();
有人可以帮助我,为什么它会在版本6之后引起问题?
答案 0 :(得分:0)
我将我的Fragment用法更改为android.support.v4.app而不是android.app,它看起来像问题解决了。而不是使用对象动画师,你必须使用支持v4的动画
从右边的动画进入
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="100%"
android:toXDelta="0%" />
输入右侧动画
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0%"
android:toXDelta="-100%" />
然后创建你的碎片
android.support.v4.app.Fragment fr = new YourFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right);
fragmentTransaction.addToBackStack(activeFragment);
fragmentTransaction.replace(R.id.fragmentPlace, fr);
fragmentTransaction.commit();