问题标签 [shared-element-transition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
900 浏览

android - 共享元素返回过渡闪烁

我正在为活动返回到调用活动时编写自定义返回转换。过渡将完成活动的内容淡入调用活动的最终位置。但是,当该动画完成时,调用活动的共享元素只会闪烁到最终位置。

这是我的过渡片段createAnimator

我似乎无法找到一种方法来告诉重新进入转换中的视图同时淡入。在上面的动画师中,startValues.viewandendValues.view似乎对应于同一个对象(这就是为什么我必须将开始视图重新定位到其原始位置的原因)。

0 投票
2 回答
3472 浏览

android - 与 CoordinatorLayout 和 CollapsingToolbarLayout 结合使用时,共享元素转换不起作用

我的应用程序主屏幕包含图像的网格视图。当用户选择图像时,将使用共享元素转换启动详细活动,该转换将所选网格图像动画化为位于详细活动中 CardView 中的配对图像。

在升级我的详细视图 XML 布局以包含 CoordinatorLayout 和 CollapsingToolbarLayout 后,共享元素转换将图像视图移动到详细活动(“进入”活动)中的错误位置。该框架似乎忽略了整个 AppBarLayout 和内部 CollapsingToobarLayout 的偏移量,并动画到包含目标图像视图的 CardView 上方没有 CollapsingToolBarLayout 时图像的大致位置。

通过在 activity_detail.xml 中的 3 个 CardView 中的任何一个中添加一个 ImageView(带有 transitionName),可以在 Chris Banes 的cheesesquare 示例应用程序中复制该问题:

然后在 CheeseListFragment.java 的 onBindViewHolder 中设置共享元素转换,如下所示:

如果您运行应用程序并单击奶酪列表项,您将了解过渡动画如何将图像移动到目标活动视图中不正确(太高)的偏移量。动画完成后,图像将“变形”到正确的位置。

任何关于可能的变通办法的想法都将非常受欢迎。

0 投票
1 回答
442 浏览

android - 重新打开堆栈中的现有活动时共享元素转换重新排序到前面

我从那里有一个活动 A,我打开活动 B,并将共享元素传递给它。它可以很好地为过渡设置动画,但是当我返回 Activity A 然后再次转到 Activity B 时,它仍然在堆栈中使用

共享元素转换未运行。

对于常规动画,您可以在 onNewIntent 中调用 overridePendingTransition() 以运行动画。https://stackoverflow.com/a/8327091

我尝试在那里调用 startPostponedEnterTransition() 但什么也没发生。

这是我允许转换的代码

开始活动的代码

我试过搞乱 setSharedElementReturnTransition 和 setSharedElementReenterTransition 但什么也没发生。

有没有办法手动触发共享元素转换来解决这个问题。

0 投票
1 回答
1018 浏览

android - 带有嵌套视图的共享元素转换

我整理了一个简单的示例应用程序来尝试使用嵌套视图进行共享元素转换(github 上的源代码)。在这种情况下,它是 CardView 中的 ImageView。我得到以下结果:

图片

如您所见,虽然父视图 (CardView) 可以很好地为子视图 (ImageView) 设置动画。它看起来像是从 CardView 未来位置的左上角开始动画。

适配器

原来的布局

目标布局

任何帮助,将不胜感激。

2015 年16 月 11 日更新:看起来这个问题已经在 Marshmallow 上解决了,但在 Lollipop 上仍然存在(至少在模拟器上)。

0 投票
2 回答
2353 浏览

android - Android共享元素转换仅在离开活动时才起作用而不是在进入时

我正在使用共享元素转换来动画从活动 A 到活动 B 的图像视图。我为此使用以下代码:

我的主题是:

“logo”是A和B中图像视图的transitionName。但我注意到虽然图像按预期从B->A过渡,但从A->B的过渡不起作用,只是有一个淡入淡出两个活动之间的动画。

我做错了什么,如何解决这个问题以使图像也从 A->B 动画?

注意:A 是一个具有图像回收器视图的活动,每个活动都打开一个详细活动(B),图像在两个活动之间转换。

谢谢!

0 投票
2 回答
3037 浏览

android - 如何在 ViewPager 片段中应用共享元素动画?

我想在 ViewPager 中使用 SharedElement 从一个 Fragment 过渡到另一个 Fragment 为视图设置动画。

我在 ViewPager 中有 3 个片段,每个片段在 XML 文件中都有一个具有相同转换名称的 TextView。

现在,当 ViewPager 滑动另一个 Fragment 时,我希望看到 SharedElement 的实际效果。

0 投票
1 回答
245 浏览

android - android gif 共享元素过渡

我知道如何为图像进行共享元素转换。有没有办法我们可以做 gif 共享元素转换?当我们点击一​​个gif时,它会弹出一个全屏视图。或者我们可以暂停 gif,然后进行共享元素转换?

任何帮助,将不胜感激。谢谢。

0 投票
5 回答
18727 浏览

android - 如何知道共享元素转换何时结束

Shared Element Transitions在活动之间工作。过渡工作正常,但我想知道共享元素过渡何时结束,以便我可以显示其他内容。

我尝试在要过渡到的活动中使用onSharedElementEndin SharedElementCallback,但在过渡开始之前会调用它。

我可以听另一个回调吗?

0 投票
1 回答
139 浏览

android - 这部动画到底是怎么回事?

我正在使用来自 Shared Element lib 的 makeSceneTransitionAnimation API 调用将折叠工具栏标题中的图像共享到详细视图活动。忽略 FAB 看起来不合适的地方,如果我能让它看起来更好,我计划将它们滑出动画的一部分。

看起来很可怕:https ://youtu.be/Js91TAvwrV0

继承人的代码:

折叠工具栏发件人

详细视图接收器

0 投票
1 回答
64 浏览

android - Android Material Design 与 ContentObserver

我会尽力解释我的问题。

在我搜索在哪里注册/取消注册我的 ContentObserver 时,我看到多个答案说它应该在 onResume / onPause 或 onStart / onStop 但不在 onCreate / onDestroy 中。假设我在 onStart / onStop 中注册/取消注册,以确保我的视图仍然使用新数据进行更新,我获取数据然后在注册 ContentObserver 之前在 onStart 方法中刷新我的视图。

一切正常,直到... SharedElement 与 Material Design 过渡。

因为Imagine Activity A 注册到Data-A 并在onStart 中刷新数据所以View。当用户触摸一个项目时,它会对这个项目的细节运行一个 SharedElement 动画:Activity B with Data-A[n]

问题是当我从活动 B 回到活动 A 时,由于数据的刷新,我的列表中的原始项目不再存在,并且我的动画没有所需的行为。

你对此有什么想法吗?