gpt4 book ai didi

android - 共享元素转换在三个或更多 Activity 之间中断

转载 作者:行者123 更新时间:2023-12-04 11:41:11 26 4
gpt4 key购买 nike

问题

我想实现Activity A和B之间以及Activity B和C之间的共享元素转换。

我所做的一切都是基于 android transition documentation .

之间没有问题:

  • A => B => 回到A
  • A => B 和 B => C => 返回 B

  • 但如果我这样做:
  • A => B 和 B => C => 返回 B => 返回 A

  • 最后一步不会有任何共享元素过渡(实际上不只是共享元素过渡,即使只有淡入淡出也可能丢失)。

    我一直在到处寻找解决方案,但似乎每个人都只需要 A => B(和 B => A)共享元素转换,但不再关心从 B => C 到 A 的转换。

    示例

    example我基于android的动画示例创建,其中Activity A = MainActivity,B = DetailActivity,C = DetailDetailActivity。单击 Activity B 上的按钮将导航到 Activity C。

    enter image description here

    最佳答案

    因为在执行C => B时,它会为B重新构造一个新的EnterTransitionCoordinator,替换旧的包含正确的mPendingExitNames重要的是表明 View 需要在 A 和 B 之间转换。

    public boolean startExitBackTransition(final Activity activity) {
    ArrayList<String> pendingExitNames = getPendingExitNames(); // here
    if (pendingExitNames == null || mCalledExitCoordinator != null) {
    return false;
    } else {
    // ...
    }
    }
    解决方案似乎有点棘手。您可以引用 ThreeActivityTransitionDemo并关注 SharedElementUtils .

    关于android - 共享元素转换在三个或更多 Activity 之间中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214907/

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