@@ -24,7 +24,6 @@ import android.widget.FrameLayout
24
24
import android.widget.ImageView
25
25
import android.widget.LinearLayout
26
26
import android.widget.TextView
27
- import androidx.annotation.IdRes
28
27
import androidx.appcompat.widget.Toolbar
29
28
import androidx.coordinatorlayout.widget.CoordinatorLayout
30
29
import androidx.core.view.ViewCompat
@@ -36,25 +35,14 @@ import androidx.fragment.app.Fragment
36
35
import androidx.fragment.app.viewModels
37
36
import androidx.navigation.findNavController
38
37
import androidx.navigation.fragment.navArgs
39
- import androidx.transition.ChangeBounds
40
- import androidx.transition.ChangeTransform
41
- import androidx.transition.Transition
42
38
import 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
50
39
import com.google.android.material.appbar.CollapsingToolbarLayout
40
+ import com.google.android.material.transition.MaterialContainerTransform
51
41
52
42
class CheeseArticleFragment : Fragment () {
53
43
54
44
companion object {
55
45
const val TRANSITION_NAME_BACKGROUND = " background"
56
- const val TRANSITION_NAME_CARD_CONTENT = " card_content"
57
- const val TRANSITION_NAME_ARTICLE_CONTENT = " article_content"
58
46
}
59
47
60
48
private val args: CheeseArticleFragmentArgs by navArgs()
@@ -65,26 +53,12 @@ class CheeseArticleFragment : Fragment() {
65
53
super .onCreate(savedInstanceState)
66
54
67
55
// 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 )
72
58
73
59
viewModel.cheeseId = args.cheeseId
74
60
}
75
61
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
-
88
62
override fun onCreateView (
89
63
inflater : LayoutInflater ,
90
64
container : ViewGroup ? ,
@@ -102,11 +76,8 @@ class CheeseArticleFragment : Fragment() {
102
76
103
77
val background: FrameLayout = view.findViewById(R .id.background)
104
78
val coordinator: CoordinatorLayout = view.findViewById(R .id.coordinator)
105
- val mirror: MirrorView = view.findViewById(R .id.card_mirror)
106
79
107
80
ViewCompat .setTransitionName(background, TRANSITION_NAME_BACKGROUND )
108
- ViewCompat .setTransitionName(coordinator, TRANSITION_NAME_ARTICLE_CONTENT )
109
- ViewCompat .setTransitionName(mirror, TRANSITION_NAME_CARD_CONTENT )
110
81
ViewGroupCompat .setTransitionGroup(coordinator, true )
111
82
112
83
// Adjust the edge-to-edge display.
0 commit comments