【问题标题】:How to include an unattached View in the activity transition?如何在活动转换中包含未附加的视图?
【发布时间】:2019-06-04 11:04:22
【问题描述】:

我绘制了一个未附加到任何父级的视图。

这是一个 RecyclerView 的装饰。当它的对应部分出现在列表中时,视图会停留在底部并消失。

这一切都很好,但是:

当我离开活动时,视图不会随着其他活动消失 活动转换中的视图。

它一直停留到动画结束然后消失 立即地。

(参见演示中的绿色大视图)

如何在活动的退出转换中包含这个未附加的视图?


我创建了一个最小的 Android Studio 项目来复制该问题: https://github.com/Ostkontentitan/transition-issue-demo

为了更好地查看问题,可能会将您的手机动画比例设置为 >= 5


这是一个演示:

【问题讨论】:

  • (我检查了你的示例项目,我得到了一堆错误的导入,不知道发生了什么)
  • 我刚刚通过克隆测试,导入AS,可以立即运行。直接尝试使用 gradle 或者从 AS 中删除并从 gradle 重新导入即可。
  • 我遇到了同样的问题。 androidx 与支持库。

标签: android android-activity android-view android-transitions


【解决方案1】:

transitionName 添加到 RecyclerView 的 xml 布局中。

您看到的过渡动画是因为ActivityOptions.makeSceneTransitionAnimation(this@ItemListActivity),如果您将transitionName 添加到视图中,它可以正常工作。

【讨论】:

    【解决方案2】:

    未受过教育的猜测

    (因为没试过,几个月没用过Transition Framework)

    TF(过渡框架)的工作方式是计算过渡的开始/结束值并执行实现此目的所需的动画。

    RecyclerView 装饰不是布局中的“视图”,所以 TF 不知道这个东西的存在。它当然知道您的 RecyclerView,因为它包含在动画的 ViewGroup 中。

    您可能已经知道这一点,但无论如何,我想我想在这里尝试做的是创建一个自定义转换框架转换(它们并不难做,您甚至可以查看TransitionEverywhere 并查看该库如何在框架中实现一些缺失的转换);在您的CustomTransition 中,您可以尝试插入动画值,以便回收器视图可以随着动画的进行重新装饰(就像动画的 alpha 值一样,您的自定义装饰器将使用所述 alpha“绘制”)。

    现在...事实上,我曾经做过类似的事情,其中​​自定义转换正在“驱动”一些外部视图(当时的原因):) 但是。 ..它不是 RecyclerView 项目装饰,我的只是“视图”,所以我不确定你是否可以通过这种方式进行装饰。

    我觉得值得一试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2013-06-03
      • 1970-01-01
      • 2013-04-09
      • 2023-03-16
      • 2019-02-06
      相关资源
      最近更新 更多