首页 > 解决方案 > @anim/fragment_fade_enter 包含在哪里?

问题描述

@anim/fragment_fade_enter已包含在内,androidx.fragment:fragment-ktx:1.2.4但在我将其更新到版本后,1.3.3我似乎无法再解决它,我可以在网上找到它应该包含在 Androidx Core https://android.googlesource.com/platform/frameworks /base/+/master/core/res/res/animator/fragment_fade_enter.xml 但使用androidx.core:core-ktx:1.3.2也无济于事。

它是否被重构为另一个依赖项?

标签: androidandroid-jetpackandroid-architecture-navigationandroid-jetpack-navigation

解决方案


资源始终是API@anim/fragment_中使用的各种FragmentTransaction.TRANSIT_字段(即TRANSIT_FRAGMENT_FADE)的私有实现细节。FragmentTransaction.setTransition()

根据Fragment 1.3.0 发行说明

  • TRANSIT_ 动画更改:片段默认效果 、TRANSIT_FRAGMENT_OPENTRANSIT_FRAGMENT_CLOSETRANSIT_FRAGMENT_FADE现在使用Animator代替Animation。用于构建这些动画师的资源现在是私有的。

因此,如果您自己使用 Fragments,则应该使用setTransition()API,而不是手动使用任何私有动画师。

如果您使用的是 Navigation 组件,则该navigation-ui依赖项会在Navigation 2.3.1 版本提供公共动画师。您可以将它们用于:

  • @animator/nav_default_enter_anim
  • @animator/nav_default_exit_anim
  • @animator/nav_default_pop_enter_anim
  • @animator/nav_default_pop_exit_anim

截至目前,这些也是淡入淡出动画。


推荐阅读