@@ -24,7 +24,6 @@ import android.widget.FrameLayout
2424import android.widget.ImageView
2525import android.widget.LinearLayout
2626import android.widget.TextView
27- import androidx.annotation.IdRes
2827import androidx.appcompat.widget.Toolbar
2928import androidx.coordinatorlayout.widget.CoordinatorLayout
3029import androidx.core.view.ViewCompat
@@ -36,25 +35,14 @@ import androidx.fragment.app.Fragment
3635import androidx.fragment.app.viewModels
3736import androidx.navigation.findNavController
3837import androidx.navigation.fragment.navArgs
39- import androidx.transition.ChangeBounds
40- import androidx.transition.ChangeTransform
41- import androidx.transition.Transition
4238import com.example.android.motion.R
43- import com.example.android.motion.demo.FAST_OUT_SLOW_IN
44- import com.example.android.motion.demo.LARGE_COLLAPSE_DURATION
45- import com.example.android.motion.demo.LARGE_EXPAND_DURATION
46- import com.example.android.motion.demo.plusAssign
47- import com.example.android.motion.demo.sharedelement.MirrorView
48- import com.example.android.motion.demo.sharedelement.SharedFade
49- import com.example.android.motion.demo.transitionTogether
5039import com.google.android.material.appbar.CollapsingToolbarLayout
40+ import com.google.android.material.transition.MaterialContainerTransform
5141
5242class CheeseArticleFragment : Fragment () {
5343
5444 companion object {
5545 const val TRANSITION_NAME_BACKGROUND = " background"
56- const val TRANSITION_NAME_CARD_CONTENT = " card_content"
57- const val TRANSITION_NAME_ARTICLE_CONTENT = " article_content"
5846 }
5947
6048 private val args: CheeseArticleFragmentArgs by navArgs()
@@ -65,26 +53,12 @@ class CheeseArticleFragment : Fragment() {
6553 super .onCreate(savedInstanceState)
6654
6755 // These are the shared element transitions.
68- sharedElementEnterTransition =
69- createSharedElementTransition(LARGE_EXPAND_DURATION , R .id.article_mirror)
70- sharedElementReturnTransition =
71- createSharedElementTransition(LARGE_COLLAPSE_DURATION , R .id.card_mirror)
56+ sharedElementEnterTransition = MaterialContainerTransform (requireContext(), true )
57+ sharedElementReturnTransition = MaterialContainerTransform (requireContext(), false )
7258
7359 viewModel.cheeseId = args.cheeseId
7460 }
7561
76- private fun createSharedElementTransition (duration : Long , @IdRes noTransform : Int ): Transition {
77- return transitionTogether {
78- this .duration = duration
79- interpolator = FAST_OUT_SLOW_IN
80- this + = SharedFade ()
81- this + = ChangeBounds ()
82- this + = ChangeTransform ()
83- // The content is already transformed along with the parent. Exclude it.
84- .excludeTarget(noTransform, true )
85- }
86- }
87-
8862 override fun onCreateView (
8963 inflater : LayoutInflater ,
9064 container : ViewGroup ? ,
@@ -102,11 +76,8 @@ class CheeseArticleFragment : Fragment() {
10276
10377 val background: FrameLayout = view.findViewById(R .id.background)
10478 val coordinator: CoordinatorLayout = view.findViewById(R .id.coordinator)
105- val mirror: MirrorView = view.findViewById(R .id.card_mirror)
10679
10780 ViewCompat .setTransitionName(background, TRANSITION_NAME_BACKGROUND )
108- ViewCompat .setTransitionName(coordinator, TRANSITION_NAME_ARTICLE_CONTENT )
109- ViewCompat .setTransitionName(mirror, TRANSITION_NAME_CARD_CONTENT )
11081 ViewGroupCompat .setTransitionGroup(coordinator, true )
11182
11283 // Adjust the edge-to-edge display.
0 commit comments