Activity界面跳转出现闪屏问题

使用共享元素,界面切换的时候,出现了闪屏现象,跳转的时候,可以明显地看到界面闪白屏,很影响视觉效果。

原本的代码是这样的:

在v21-style.xml中,目标Activity的style是这样的:

<style name="AlbumTheme" parent="MaterialTheme.Base">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/background_dark</item>
</style>

然后是Transition的style:

<style name="ThumbTransitionStyle">
    <item name="android:transitionName">@string/translation_thumb</item>
</style>

在清单文件中,目标activity加上style:

android:theme="@style/AlbumTheme"

在需要进行共享的控件中加入:

style="@style/ThumbTransitionStyle"

在跳转的地方的代码是:

 Intent it = new Intent(mContext, AlbumActivity.class);

                ActivityOptionsCompat activityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(
                        mActivity,
                        new Pair<View, String>(mAlbumImg,mContext.getString(R.string.translation_thumb)));
                ActivityCompat.startActivity(mContext, it, activityOptions.toBundle());

做完以上这些之后,界面跳转有了共享元素切换的效果,但是界面出现了闪屏,而且从目标Activity返回的时候,闪屏问题更加严重。

最后解决的方案是,在上面values-21包下的style.xml中的AlbumTheme中再加上下面的代码

<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>

猜你喜欢

转载自blog.csdn.net/ckwccc/article/details/79923209