gpt4 book ai didi

android - fragment 到 fragment 的过渡 : postponeEnterTransition() does not work

转载 作者:行者123 更新时间:2023-11-29 16:30:55 31 4
gpt4 key购买 nike

我正在使用 Android X 转换在同一个托管 Activity 中通过两个 Fragment 之间的运动为内容制作动画。

我正在尝试为一个 ImageView 设置动画,该图像加载了 Glide 和一个 URL。

我遇到的问题是,无论两个 ImageViews 大小如何,在加载图像之前它们的大小都是 0,因此,转换捕获了错误的布局值,因此显示了缩小的动画 (动画大小为 0)。

我读过有关使用 postponeEnterTransition() 的信息,它应该与 startPostponedEnterTransition() 相关联,在两次调用之间延迟过渡。

这是模式:

  • fragment A,图片位于屏幕底部,宽度为屏幕宽度的一半。
  • fragment B,图像位于屏幕顶部,宽度为屏幕宽度。

点击 Fragment A 的图像时,将加载 Fragment B。

在 fragment B 的 onCreate 中,我使用 setSharedElementEnterTransition(transitions) 设置我的转换。然后我立即调用 postponeEnterTransition();

在 Fragment B 的 onCreateView 中,我等待 ImageView 在布局膨胀后预绘制(使用 ViewTreeObserver),然后调用 startPostponedEnterTransition()

在我的转换中使用断点和监听器,listener#onTransitionStarted 在我到达预绘制回调之前被触发,这证明转换捕获了错误的布局值。

此外,另一个证明 postponeEnterTransition() 没有任何效果的证据是,删除对 startPostponedEnterTransition() 的调用不会永远保持转换。

我做错了什么?当然,回到Fragment A时,也在播放同样的缩小动画……

最佳答案

您应该通过将 setReorderingAllowed(true) 添加到您的交易中来设置在您的 fragment 交易期间允许重新排序。

参见 Android docsthis blog post by Chris Banes 的重新排序部分了解更多上下文。

关于android - fragment 到 fragment 的过渡 : postponeEnterTransition() does not work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55654327/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com