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

时间:2018-07-29 17:40:35

标签: android material-design android-transitions

您好,我是新来的过渡人员。 在过渡期间,您会看到白色背景被隐藏。

活动A --->活动B

(A中的设置动画)

e

(viewHolder-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

        }

(B中的设置动画)

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())
        }

    }

(两者的主要布局)

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

        }
}

如何在过渡期间设置背景? 要么 您知道一些解决方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用主题为第二个Activity设置windowBackground可能会有所帮助。

创建一个可绘制对象并将其命名为background.xml,以将其设置为具有shows的第二个活动的窗口背景,直到加载布局:-

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

下一步是在styles.xml中为第二个活动创建一个主题

<style name="Theme" parent="Theme.AppCompat.NoActionBar">

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

</style>

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

希望这会有所帮助。