如Google在此https://youtu.be/N_x7SV3I3P0中所提及的
view.animation仍然是Windows过渡动画的方法。
因此,我使用
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowAnimationStyle">@style/WindowAnimations</item>
</style>
<style name="WindowAnimations">
<item name="android:windowEnterAnimation">@anim/enter_activity</item>
<item name="android:windowExitAnimation">@anim/exit_activity</item>
</style>
我只有从Activity1(Hello World)到Activitity2(紫色)时才能进入enter转换。从Activity2返回到Activitiy1时类似,仅显示enter转换。退出转换永远不会触发。
下面显示的是结果。
看起来android:windowExitAnimation
无效? (即,如果我删除它,效果是相同的。)>
要解决,在我的Activity2中,我改为使用overridePendingTransition(R.anim.enter_activity, R.anim.exit_activity)
,如下所示。
class Main2Activity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main2) overridePendingTransition(R.anim.enter_activity, R.anim.exit_activity) } override fun finish() { super.finish() overridePendingTransition(R.anim.enter_activity, R.anim.exit_activity) } }
然后我得到想要的结果。
android:windowExitAnimation
中是否有错误?还是我想念什么?
p / s:我的过渡动画XML如下
enter_activity.xml
<set android:shareInterpolator="false" xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="2000" /> </set>
exit_activity.xml
<set android:shareInterpolator="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="2000" />
</set>
正如Google在此https://youtu.be/N_x7SV3I3P0 view中提到的。动画仍然是Windows过渡动画的方式。因此,我使用
看起来我需要改用下面的内容