在 Android 中更改片段时如何使用 Material Design Transition?

How to used Material Design Transition when fragment changed in Android?

我喜欢这样的新 Transitions introduced with Android material design :

但是,我想在我的抽屉中选择一个项目后替换片段时使用它:

fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();

这可能吗?使用与 EnterTransition / ExitTransitionExplode 过渡动画相同的逻辑。

这些转换适用于 activities,不适用于 fragments,参见 below from documentation 这些是为 指定的windowExitTransition & windowEnterTransition

<style name="BaseAppTheme" parent="android:Theme.Material">
  <!-- enable window content transitions -->
  <item name="android:windowContentTransitions">true</item>

  <!-- specify enter and exit transitions -->
  <item name="android:windowEnterTransition">@transition/explode</item>
  <item name="android:windowExitTransition">@transition/explode</item>

  <!-- specify shared element transitions -->
  <item name="android:windowSharedElementEnterTransition">
    @transition/change_image_transform</item>
  <item name="android:windowSharedElementExitTransition">
    @transition/change_image_transform</item>
</style>

您可以尝试对片段实现相同的效果,并在 fragmenttransanction.

中指定转换