场景
从宿主Activity跳转到插件下一个页面时,如果中间有一个透明的Activity用于处理业务逻辑,在oppo,一加手机中,下一个页面显示时会出现黑边,目前猜测是动画衔接有些错位 出现这个场景仍然有一些要求
- 插件坑位Activity全局透明
- 插件Activity主题为不透明
解决方案:
在宿主中新建一个anim文件 activity_plugin_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="false">
<translate
android:fromXDelta="100%"
android:fromYDelta="0%p"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>
这个时候我们在 透明Activity中设置
@Override
public void finish() {
super.finish();
try {
int resourceId = getResources().getIdentifier("activity_plugin_right_in", "anim", getPackageName());
overridePendingTransition(resourceId,0);
} catch (Throwable e) {
}
}
注意:
我这里是分离式插件化,插件resourceId和宿主不对齐,所以activity_plugin_right_in.xml不能放在插件中,否则获取到的resourceId传到overridePendingTransition中不生效
另外我的插件包名和宿主是一样的,所以使用getPackageName(),如果你的插件和宿主包名不一致,要填入宿主包名