【问题标题】:Fragment exitTransition overlaps enterTransition片段 exitTransition 与 enterTransition 重叠
【发布时间】:2021-07-23 20:23:18
【问题描述】:

对于动画片段,我想根据提供的输入在运行时声明动画。因为FragmentTransaction.setCustomAnimations只使用静态xml文件,所以我使用Fragment.setEnterTransitionFragment.setExitTransition(setCustomAnimations不是一个选项)。

我遇到的问题是,当执行“向前”推送动画时,传入的片​​段预计会滑过传出的片段,而传出的片段会向左滑动(不完全,所以传入的片段会重叠它)。但是,退出的片段被绘制在传入片段的顶部:

对于向后导航,此副作用提供了预期的行为。

我相信这也是setCustomAnimationshave seen a solution there to swap the top two views of the fragment container 的问题。

但是,由于某种原因,此方法不适用于 Fragment 转换 API。

有没有人遇到过这个问题并找到了解决方案?

【问题讨论】:

  • 正在调查更多。如果过渡扩展Visibility,消失的视图似乎被添加到sceneRoot 的ViewOverlay。这意味着它总是最后绘制在所有内容之上:android.googlesource.com/platform/frameworks/base/+/master/core/…。但是,我不清楚为什么这是不可配置的。也许解决方案根本不使用Visibility,但似乎能够配置出现/消失视图的绘制顺序是抽象应该提供的。

标签: android android-fragments android-transitions


【解决方案1】:

我也有同样的问题。我找不到解决方案,所以我创建了以下问题:

希望他们能对此有所作为。

Google 推荐单一活动、片段等。这一切都很好,但是像你解释的那样简单的用例在这么多年之后才被打破是不可接受的。无话可说。

【讨论】:

  • 正在调查它——你的Transition 扩展Visibility 吗?如果是这样,我怀疑消失的视图可能总是重叠的原因是可见性似乎将消失的视图添加到sceneRootViewOverlay。这意味着它总是最后绘制在所有内容之上:android.googlesource.com/platform/frameworks/base/+/master/core/…。但是,我不清楚为什么这是不可配置的。
  • 是的,我的过渡扩展了可见性(幻灯片等)。我不是专家,但从我目前阅读的内容(包括您的评论)来看,确实看起来任何 Visibility 的子类都会导致问题。似乎进入的视图没有添加到叠加层中。因此,它将在下面。我第一次开始使用 FragmentTransaction.setCustomAnimations。但是,在过渡期间导航返回时,过渡会变得很奇怪。 popExiting 片段将位于 popEntering 片段下方。 SetEnterTransition 和 SetExitTransition 好像没有这个问题。
猜你喜欢
  • 1970-01-01
  • 2013-06-30
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 2014-03-05
  • 1970-01-01
相关资源
最近更新 更多