Mar*_*kus 11 android android-animation android-fragments
我正在实现Fragment过渡动画.
我的exit动画是
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="together">
<objectAnimator
android:propertyName="scaleX"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="0.95"
android:duration="300"/>
<objectAnimator
android:propertyName="scaleY"
android:valueType="floatType"
android:valueFrom="1.0"
android:valueTo="0.95"
android:duration="300"/>
<objectAnimator
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="0"
android:valueTo="10dp"
android:duration="300"/>
</set>
Run Code Online (Sandbox Code Playgroud)
enter 动画是:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="x"
android:valueType="floatType"
android:valueFrom="1280"
android:valueTo="0"
android:duration="400"/>
Run Code Online (Sandbox Code Playgroud)
事务创建如下:
fragmentManager.beginTransaction()
.setCustomAnimations(enter, exit, popEnter, popExit)
.replace(CONTENT_CONTAINER_ID, newFragment)
.addToBackStack(null)
.commit();
Run Code Online (Sandbox Code Playgroud)
在正常的动画速度下,由于动画持续时间较短,不需要的效果几乎不可见,但是,当你放慢速度时,你可以清楚地看到,这z-order是错误的.
输入片段动画在退出片段动画下方.是否有解决方法来解决这个问题?
小智 4
我认为您可以尝试以下方法作为解决方法。
fragmentTr.setCustomAnimations(enter, exit);
fragmentTr.hide(currentFragment);
fragmentTr.add(containerId, newFragment, "aTag");
fragmentTr.show(newFragment);
fragmentTr.commit();
Run Code Online (Sandbox Code Playgroud)
不要使用replace()。我尝试了上面的方法,并且有效。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
4150 次 |
| 最近记录: |