问题标签 [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 投票
3 回答
5185 浏览

android - 共享元素过渡适用于 FragmentTransaction.replace() 但不适用于 FragmentTransaction.add()

当我使用片段“替换”时,新的共享元素转换有效,但我似乎无法使其工作片段“添加”。在这两种情况下,我都使用相同的容器。

更多细节:

活动-布局->

在启动 Activity 时,我将 Fragment1 添加到屏幕

在 Fragment1 布局中的视图的单击事件中 -> 我将 Fragment2 添加到屏幕上。我在第一个 Fragment 的 onCreateView 中设置了监听器

}

我在两个片段的布局中都有这个图像视图

FragmentTransaction.add()现在,如果我使用添加第二个片段,过渡不起作用,但如果我使用它,它会起作用FragmentTransaction.replace()。我怎样才能使它与 add() 一起工作?有可能吗?

0 投票
0 回答
558 浏览

android - 如何在 Activity 转换期间使用共享元素快照视图?

我对List<View> sharedElementSnapshots传递给SharedElementCallback'sonSharedElementStart()onSharedElementEnd()方法的参数感到困惑。大概这些快照视图是为了在共享元素转换期间用作临时占位符。例如,假设活动A显示了缩略图,活动B显示了同一图像的高分辨率版本,加载和显示需要几秒钟。不必等待高分辨率图像完成加载,快照视图可以临时代替它使用。

我感到困惑的部分是快照视图最初是如何使用的。它们是否应该被添加到活动的视图层次结构中?或者也许它们应该被添加到窗口装饰视图中ViewOverlay?无论哪种方式,我都看不到此时如何切换过渡共享元素视图...在andonMapSharedElements()之前调用,这意味着过渡名称到共享元素的最终映射已经建立。onSharedElementStart()onSharedElementEnd()View

任何提示将不胜感激。

0 投票
2 回答
1776 浏览

animation - 延迟共享元素转换以完成状态列表动画

我一直在尝试在 Lollipop 上共享元素转换。我有一个 recyclerview 可以加载一些卡片,然后单击卡片会在下一个活动中展开到其详细信息。

我在卡片上设置了涟漪效果和 StateListAnimator。但是这些是不可见的,因为过渡在这些效果完成之前就开始了。

有什么方法可以延迟过渡,以便它可以等待状态列表动画师和涟漪完成?

这是我使用的代码

提前致谢

0 投票
3 回答
4007 浏览

android - 使用 add() 而不是 replace() 的片段共享元素转换?

我正在尝试在片段之间进行共享元素转换,使用replace()添加第二个片段时一切正常,但是在代码库add()中使用了很多,但是使用它时,转换只是跳到结束值

是否可以在添加的片段之间进行过渡? 谢谢

0 投票
0 回答
1978 浏览

android - 取消 Android Lollipop 上的共享返回过渡

我在玩 Lollipop 的 Activity Transition。

我在 Activity A 中有一个按钮,单击该按钮会调用 Activity B。在 Activity B 中,我将覆盖 onBackPressed() 并调用 finishAfterTransition()

活动 B 只有两个具有背景颜色的相对布局块。我已经将共享元素从 Button 过渡到其中一个块,并且效果很好。甚至返回过渡也有效。

但是我遇到的问题是我无法取消共享元素返回转换并实现正常的退出转换。

目的是将两个块滑出屏幕,顶部一个从顶部滑出,底部一个从底部滑出。如果我启用了共享元素转换,那将不起作用。

我尝试在活动 B 上设置退出转换并将 null 设置为 sharedElementReturn 转换。不起作用。

我尝试使用幻灯片转换在活动 A 上设置重新进入转换,但仍然在后按时反转了共享元素转换。

如果我关闭共享元素转换,从 Activity B 到 A 的返回效果是完美的。

有任何想法吗?

0 投票
1 回答
1690 浏览

android - 将重新输入动画更改为列表的另一个项目

我有一个带有图像的 RecyclerView,当我按下图像时,应用程序会打开另一个包含 ViewPager 的活动,该 ViewPager 具有相同的图像,但位于我选择的位置。

我已经在 Lollipop 中完成了转换,以便在被调用的活动中使用 supportPostponeEnterTransition 和 supportStartPostponedEnterTransition 在活动之间共享此图像,以等待 viewPager 加载图像以开始转换。

当我进入被调用的活动并且当我按下时,转换就可以了。

我面临的问题是,如果我移动到被调用活动的 ViewPager 中的另一个图像,当我按下它时,它会动画它在开始时选择的图像,而不是当前选择的图像。

我已经能够将动画图像更改为在调用的活动中选择的图像:

但它正在返回到调用活动列表中原始图像的相同位置。

如何使图像返回到其在调用活动列表中的位置?

0 投票
6 回答
11329 浏览

java - Android - 调用活动完成()的共享元素转换

我正在努力使应用程序更具材料性,而我只是坚持如何实现一些共享元素转换。我有一个活动 A 启动另一个 B 然后调用 finish() 以便将其从后堆栈中删除。就我而言,我想在两个活动之间共享一个元素,但是一旦它从 A 传递到 B,A 就不再重要了。如果我在 startActivity(ctx,intent, bundle) 之后不调用 finish() ,则退出/进入动画效果很好。但是,如果我调用完成,在动画开始之前会有一个非常难看的闪烁。

有什么我忽略了,或者只是不可能做我想做的事?

0 投票
0 回答
461 浏览

android - 使用键盘调整大小重新进入活动时棒棒糖共享元素转换

我正在处理两个活动之间的棒棒糖转换。我有一个共享元素,我通过与活动 A 和 B 之间的过渡来制作动画。在活动 B 中,会弹出一个键盘并调整窗口大小。进入活动 B 时动画看起来很棒。问题是当返回活动 A 时共享元素转换看起来很糟糕,因为窗口大小仍然基于键盘调整它的大小(即使键盘在返回时自动最小化) A 最终窗口的大小是正确的)。

我尝试在离开活动 B 并调用 finishAfterTransition 之前手动隐藏软输入。不幸的是没有运气!我也尝试过推迟共享元素转换,但这也效果不佳。一种解决方案是当用户按下以完成活动 B 时有一个微小的延迟(10 毫秒),以便在离开之前给窗口时间来调整自身大小,但这对我来说感觉很糟糕。

任何想法都非常感谢!

0 投票
1 回答
2348 浏览

android - Android 共享元素动画对我不起作用

我正在遵循https://developer.android.com/training/material/animations.html上的说明并尝试在活动之间实现具有共享元素的动画,但这对我不起作用,我搜索了很多但可以没有找到答案,有没有人可以帮忙看看?太感谢了!

我的步骤:

1、在我的“res”目录下创建一个目录“transition”,然后在里面创建一个文件list_to_details.xml:

2、在我的“res”目录下创建一个目录“values-v21”,然后在里面创建一个文件styles.xml(设置上面第1步定义的transition):

3、将应用主题设置为新样式文件中定义的“AppTheme”

4、在Activity A和B的共享元素中添加transitionName:A:B:

5、在Activity A中添加启动Activity B的代码:

6、尝试app但没有播放动画,我猜可能是我在Activity B中有一个异步任务来加载图片,但是我尝试了推迟EnterTransition后它仍然不起作用,我也尝试了getSharedElementEnterTransition ,但调试器显示它为空,请参阅我的代码:

我的步骤有什么错误或遗漏吗?非常感谢任何帮助!

0 投票
2 回答
968 浏览

android - Gmail 应用程序 - Lollipop Shared Elements 转换

我知道这个问题被问了很多次,但我仍然无法找到解决方案。

好吧,我们都知道 Lollipop Shared Elements 过渡只适用于棒棒糖设备,但最近对 Gmail 应用程序的更新在棒棒糖之前具有相同的动画效果(我猜是从 4.​​1 开始)。

Yplan 应用程序也有同样的效果。

如何做到这一点?我猜他们正在使用共享元素转换