如何在过渡期间设置背景?

How can I set the background during transition?

您好,我是过渡方面的新手。 在过渡期间,您可以看到隐藏的白色背景。

Activity-A --->Activity-B

(A中设置动画)

private fun setupWindowAnimations() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            // A (general activity) --> B ((this , detail activity))
            val slide = Slide(Gravity.LEFT)
            slide.duration = 500
            window.enterTransition = slide

            // A (general activity) <-- B ((this, detail activity))
            val fade = Fade()
            fade.duration = 1000
            window.returnTransition = fade

        }

(viewHolder-A中的动画触发)

override fun onClick(view: View?) {
        if (view != null) {
            val intent: Intent = Intent(view.context, DisksActivity::class.java)
            val bundle: Bundle = Bundle()
            bundle.putString(view.context.getString(R.string.EXTRA_DISK_TITLE), itemView.tag.toString())
            intent.putExtras(bundle)
            val sharedView: View = itemView.findViewById(R.id.cd_room_title)
            val transitionName: String  = view.context.getString(R.string.transition_disk_name_title)
            val options = ActivityOptionsCompat.makeSceneTransitionAnimation(
                    view.context as Activity, sharedView, transitionName)
            view.context.startActivity(intent,options.toBundle())
        }

    }

(B中设置动画)

private fun setupWindowAnimations() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            // A (general activity) --> B ((this , detail activity))
            val slide = Slide(Gravity.LEFT)
            slide.duration = 500
            window.enterTransition = slide

            // A (general activity) <-- B ((this, detail activity))
            val fade = Fade()
            fade.duration = 1000
            window.returnTransition = fade

        }
}

(两者的主要布局)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@drawable/rock_background"
  tools:context=".presentation.MainActivity">

如何在转换过程中设置背景? 要么 你知道一些解决方法吗?

谢谢!

设置window使用第二个主题的背景Activity可能会有所帮助。

创建一个 drawable 并将其命名为 background.xml 以设置为第二个 activity 的 window 背景 with shows ,直到加载布局 :-

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPrimary" />
</layer-list>

下一步是为 styles.xml

中的第二个 activity 创建主题
<style name="Theme" parent="Theme.AppCompat.NoActionBar">

    <item name="android:windowBackground">@drawable/background</item>

</style>

现在通过设置 android:theme="@style/Theme" 来设置第二个 activity 的主题 清单中 activity 标记内的属性。

希望对您有所帮助。