突然想起把这些问题写个总结(遇到了再更新)
1.先写第一个,也是让我最懵逼的一个,搞了好几天都无果,直到我新弄了一个测试demo一个个排查才发现问题所在
<style name="horizontal_slide" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowAnimationStyle">@style/slide</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
原因就是当自定义的style中有
android:windowIsTranslucent
这一项的时候
其中自定义的动画切换效果
@style/slide
必须继承自 Animation.Translucent
否则会无效!
如下
<style name="slide" parent="@android:style/Animation.Translucent">
<item name="android:activityOpenEnterAnimation">@anim/in_from_right</item>
<item name="android:activityOpenExitAnimation">@anim/out_to_left</item>
<item name="android:activityCloseEnterAnimation">@anim/in_from_left</item>
<item name="android:activityCloseExitAnimation">@anim/out_to_right2</item>
</style>
2、在内部类中执行
startActivity(Intent intent);
方法也会导致切换动画无效问题
跟overridePendingTransition(,)一样,最好不要在内部类,比如Thread当中调用,用的时候用Handler来处理