共享元素从活动到片段的过渡

时间:2019-10-18 13:27:42

标签: android android-fragments android-activity shared-element-transition

我有一个简单的Activity和一个ImageView

<RelativeLayout
    android:id="@+id/rl_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/iv_picture"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:transitionName="@string/pic_viewer_transition" />

</RelativeLayout>

我想与此ImageView中的Fragment共享此Activity。这是片段XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">

<ImageView
    android:id="@+id/iv_picture"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="centerInside"
    android:transitionName="@string/pic_viewer_trasition"/>

这是我提供共享的代码:

iv_picture.setOnClickListener {
        val f = PictureViewer()
        val args = Bundle().apply {
            putParcelable("TESTING", picInfo)
        }
        f.arguments = args
        f.sharedElementEnterTransition = TransitionCustom()
        f.sharedElementReturnTransition = TransitionCustom()


        supportFragmentManager.beginTransaction()
            .addSharedElement(iv_picture, activity.getString(R.string.pic_viewer_transition))
            .replace(R.id.rl_container, f)
            .addToBackStack(null)
            .commit()
    }

但是什么也没发生。这段代码创建并显示了我的片段,没有任何过渡。我在做什么错了?

0 个答案:

没有答案