问题标签 [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 回答
978 浏览

android - 在片段之间共享元素转换期间拆分视图

我正在尝试为片段之间的过渡设置动画。

图1

但是在过渡视图开始时是分开的

图2

请告诉我如何避免这种情况?最初的观点必须在运动开始时消失。谢谢!

0 投票
0 回答
657 浏览

android - Lollipop 多个共享视图转换

我正在努力在我的应用程序上进行漂亮的过渡。我成功共享 1 个元素,但在共享多个元素时失败。以下代码仅对 3 个共享元素中的一个元素进行动画处理。我不知道为什么。这似乎是因为布局 xml 文件中列出的最后一个视图。

这是我所做的:
在我的主题中:

在活动 OnCreate :

在 Activity Clic 监听器中:

在 change_image_transform.xml 中:

在两个布局 xml

0 投票
1 回答
1124 浏览

android - 修复 SharedElementTransition 动画显示不佳的问题

我正在尝试使用共享的ImageView.

第一个有一个RecyclerView带有项目的单击侦听器,单击后,它应该通过转换启动另一个活动。

关闭已启动的活动时动画效果很好,但启动时却不行。

点击 的项目后RecyclerView,它会扩大一点,冻结一点,然后显示一个空白的黑色“窗口”,然后是另一个 ImageView,但它的动画效果并不流畅。

这是打开其他活动的代码:

编辑: 这是初始视图的布局代码:

提前致谢。

编辑 2: 这是一段视频,展示了它的外观:https ://drive.google.com/file/d/0Bw52d3_ZiSb9YWc2Z1Z4MnkwNm8/view?usp=sharing

0 投票
0 回答
1063 浏览

android - 恢复活动时棒棒糖过渡不起作用

按照 Alex Lockwood 很棒的博客文章中的步骤,我在几天内一直在尝试实现新的 Lollipop 活动和共享元素转换。但现在我面临一个问题。

我的应用程序使用 DrawerLayout 进行导航,但我也可以在单击其他视图和按钮时启动一些活动。我已经正确设置了所有活动的所有 Enter、Reenter、Return 和 Exit 转换以及调用:

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(activity, getSharedViewsPairs(activity)).toBundle());

对于这些活动之间的共享元素。

如果我是第一次启动活动,过渡效果很好。当我尝试启动/恢复之前已经调用但现在已暂停并且仍然存在于活动堆栈上的活动时,我的问题就出现了。当我尝试将此活动置于前台时,则没有过渡。

我还不得不说,我为我的所有活动设置了 Intent 标志FLAG_ACTIVITY_REORDER_TO_FRONT以便如果它们之前已经启动过,我不会再次启动它们。这和它有什么关系吗?我是否错过了一些在恢复之前通过转换启动的活动时需要调用的方法?

准备活动转换的代码:

作为

0 投票
0 回答
492 浏览

android - 在活动和片段之间共享元素

我尝试按照活动和片段的共享元素转换教程进行操作,但我在这里遇到了一种特殊情况。

为简化起见,我将使用单个 TextView 来解释我的问题。

我的问题是:我有一个带有回收器视图的片段,其中包含数据并使用简单的 TextView 显示。当我单击此 TextView 时,我打开一个片段,该片段使用后一个文本视图中包含的相同字符串。我想做的是在活动和创建的片段之间共享 TextView。这是我用来创建片段和共享元素的代码:

尽管设置了正确的过渡名称,但不会发生共享动画。我想知道这实际上是否可能。

有谁知道这是否可能?还是应该将我活动中的所有内容放入一个片段中,然后在两个片段之间共享元素?或其他任何东西。

感谢您的回复,我希望有人可以帮助我。

0 投票
2 回答
2364 浏览

android - android中共享元素顶部的内容转换

我正在尝试使用 Android 中的 SharedElements 和 Content Transitions。我试图结合内容转换和共享元素并创建一个特定的动画,但是我遇到了一个问题。在共享元素 (ImageView) 上的过渡结束后,我正在使用内容过渡来使用幻灯片过渡将文本视图设置为动画位置。然而,当 textViews 从底部滑动到它们在图像视图顶部的位置时,文本会位于 ImageView(共享元素)下方,然后仅出现在 ImageView 顶部。有没有办法做到这一点?

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我在这里分享一个简短的代码和一些解释这一点的截图:

Activity_A.java

活动_a.xml

Activity_B.java

活动_b.xml

0 投票
0 回答
934 浏览

android - 意图不适用于 onActivityReenter 中带有 SharedElement 转换的 Parcelable 对象

我正在研究 Android 中的共享元素转换,并完美地执行了动画。我面临的问题是使用 Intents 传递数据时。所以,我基本上从 ActivityA 启动 Intent,它是包含回收器视图的第一个屏幕,使用 TransitionName 执行 ImageTransform 并启动 ActivityB,其中包含包含 ViewPager 的详细信息活动。现在,当我按下返回按钮时,ActivityB 调用 finishAfterTransition 在其中我创建一个 Intent 并将结果设置如下:

学生模型与此链接中的回答相同。在 ActivityA 中,我正在使用

引发以下异常。

当我不传递学生对象并且一切都按预期工作时,所有动画都工作得很好,没有抛出任何异常。我还使用 setEnterSharedElementCallback 和 setExitSharedElementCallback 来映射视图及其转换名称,这与 Intent 无关。

我不明白为什么在 Intent 中传递一个 parcelable 对象不适用于转换。有解决方法还是我做错了?将不胜感激的建议。我在这里只展示了相关的代码。

0 投票
2 回答
1250 浏览

android - 共享元素转换(前景/背景)问题

我想知道是否可以更改共享元素转换的 z 顺序?看:

我有一个带有图像的布局,它填满了整个屏幕。图片前面是一个文本框,显示图片的标题。如果我单击文本框,就会开始转换到详细活动。因此,我实现了一个共享元素转换,其中全屏图像在细节视图中动画化为自身的较小版本。下图说明了这种行为。

在此处输入图像描述

我现在的问题是,在这两个活动中都是文本框,它们位于共享元素图像的上方。如果我从概述活动转到详细活动,我只会在共享元素转换完成后看到带有数字的圆形文本框。我想将带有数字的文本框放在共享元素转换上方,这样我也可以在这个视图元素上做动画。

关于如何解决这个问题的任何想法?

0 投票
0 回答
237 浏览

android - SharedElement Trans。片段之间不适用于 .add() 仅适用于 .replace()

我在两个片段之间使用 SharedElement 转换。.replace() 可以正常工作,但是如果我使用 .add(),则转换不起作用。我错过了什么吗?

onItemClickListener 启动新片段。

0 投票
0 回答
570 浏览

android-5.0-lollipop - Android Lollipop 过渡中的动画文本颜色

我们正在尝试进行转换,将一个 Activity 的 TextView 移动到另一个 Activity 的另一个 TextView。常见的真棒 Android Lollipop 过渡,用于动画共享视图。

在我们的场景中,第一个 TextView 是白色的,第二个是红色的。它也有不同的尺寸。

共享视图的过渡

我们遇到的问题是,如果我们仔细观察动画并且手机处于慢动作动画中,我们可以看到白色的 TextView 没有做任何动画。取而代之的是,红色的 TextView 在白色的上面生成,然后动画到最终位置。

我们想要实现的是在白色 TextView 移动到红色时淡出它,并从白色 TextView 淡入红色,同时对其进行动画处理。嗯......你知道,做一个令人难以置信的效果:·)

为了实现它,我们在主题定义中使用了过渡:

而且,在我们的 auto_transition.xml 文件中:

但是,可以肯定的是,这不是 Android 人希望它工作的方式。

如果有人有任何见识,那将非常感激。谢谢!