如何制作从ViewPager到另一个Fragment的共享过渡动画?

Yur*_*yac 4 android android-fragments android-viewpager kotlin android-transitions

我有下一种情况。Activity[FragmentWithPager[PageWithGrid]]我想制作从list item到的传统动画,DetailFragment但我不知道wnat我做错了。我已经transitionNamelist item和中的视图中添加了相同的内容,fragment detail并尝试使用下面的代码制作过渡动画。

val fragmentTransaction = supportFragmentManager.beginTransaction()
transitionItems.forEach { view ->
    fragmentTransaction.addSharedElement(view, view.transitionName)
}

val fragment = DetailFragment()
val transitionSet = TransitionSet().apply {
     addTransition(ChangeTransform())
     addTransition(ChangeClipBounds())
     addTransition(ChangeBounds())
}
fragment.sharedElementEnterTransition = transitionSet
fragment.sharedElementReturnTransition = transitionSet

fragmentTransaction.replace(R.id.root, fragment)
fragmentTransaction.addToBackStack(null)
fragmentTransaction.commit()
Run Code Online (Sandbox Code Playgroud)

Yur*_*yac 5

我发现我做错了。如果您使用pager切换片段,则过渡名称对于列表和页面中的每个项目都必须是唯一的。将页面和列表索引添加到每个过渡名称后,动画开始起作用。

示例项目