片段之间的动画过渡崩溃
Animating transition between fragments crashes
我正在尝试通过将当前片段向左淡化并从右侧淡入新片段来为两个片段之间的过渡设置动画。应用程序在运行时崩溃。
minSdkVersion:16
targetSdkVersion:23
模拟器 运行 api 版本 23
Activity代码
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.animator.enter_from_right, R.animator.exit_to_left);
transaction.replace(R.id.listFragmentContainer, fragment);
transaction.commit();
res/animator/enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<ObjectAnimator
android:fromXDelta="100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
res/animator/exit_to_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<ObjectAnimator
android:fromXDelta="0%" android:toXDelta="-100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
LogCat
02-17 12:00:25.028 16696-16696/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.eivind.ticktick, PID: 16696
java.lang.RuntimeException: Unknown animator name: ObjectAnimator
你只是错过了写 objectAnimator 元素
把ObjectAnimator改成objectAnimator这样
res/animator/enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
android:fromXDelta="100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
res/animator/exit_to_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
android:fromXDelta="0%" android:toXDelta="-100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
我正在尝试通过将当前片段向左淡化并从右侧淡入新片段来为两个片段之间的过渡设置动画。应用程序在运行时崩溃。
minSdkVersion:16
targetSdkVersion:23
模拟器 运行 api 版本 23
Activity代码
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.animator.enter_from_right, R.animator.exit_to_left);
transaction.replace(R.id.listFragmentContainer, fragment);
transaction.commit();
res/animator/enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<ObjectAnimator
android:fromXDelta="100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
res/animator/exit_to_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<ObjectAnimator
android:fromXDelta="0%" android:toXDelta="-100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
LogCat
02-17 12:00:25.028 16696-16696/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.eivind.ticktick, PID: 16696
java.lang.RuntimeException: Unknown animator name: ObjectAnimator
你只是错过了写 objectAnimator 元素
把ObjectAnimator改成objectAnimator这样
res/animator/enter_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
android:fromXDelta="100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>
res/animator/exit_to_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
android:fromXDelta="0%" android:toXDelta="-100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>