处理 overridePendingTransition 黑色背

2019-07-27  本文已影响0人  树蜂

activity切换时,使用以下两个动画
slide_up_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="100%p"
        android:toYDelta="0"
        android:duration="300"
        />
</set>

slide_down_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0"
        android:toYDelta="100%p"
        android:duration="300"
        />
</set>

切换 activity 代码如下

startActivity(new Intent(MainActivity.this, SettingActivity.class));
overridePendingTransition(R.anim.slide_up_in, R.anim.slide_down_out);

正常情况下是没问题,但如果MainActivity下面还有其他显示界面(例如其他app的activity),则在启动动画时,会出现黑色背景。

解决

添加 fake_anim.xml,其中 duration时间与其他动画时间一致

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0%p"
        android:toYDelta="0%p"
        android:duration="300"
        />
</set>

使用如下切换 activity 代码

startActivity(new Intent(MainActivity.this, SettingActivity.class));
overridePendingTransition(R.anim.slide_up_in, R.anim.fake_anim);
上一篇 下一篇

猜你喜欢

热点阅读