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

android - 暂停时自定义循环显示转换导致“java.lang.UnsupportedOperationException”?

我创建了一个自定义循环显示转换,用作 Activity 的进入转换的一部分(具体来说,我通过调用将转换设置为窗口的进入转换Window#setEnterTransition()):

这可以正常工作。但是,当我在转换中间单击“后退按钮”时,出现以下异常:

我收到此错误是否有任何具体原因?应该如何避免?

0 投票
1 回答
10140 浏览

android - 片段之间动画的共享元素

我正在尝试将 2 个简单视图从 RecyclerView 中的选定项目设置为新片段。我看过很多将共享元素从一个 Activity 动画化到另一个 Activity 的示例,但很少有将共享元素从一个 Fragment 动画化到同一 Activity 内的另一个 Fragment 的示例。它几乎可以工作。

这是我的结构。

活动

-- 带有 RecyclerView 的全屏 Fragment1

-- 带有细节的全屏 Fragment2

当用户在 Fragment1 的 RecyclerView 中选择一个项目时,我将 Fragment1 替换为 Fragment2,该 Fragment2 具有一个 View,其中的共享元素处于不同的位置和大小。

让它工作有一点技巧,你必须确保你的 transitionName 对于列表中的每个项目都是唯一的,当然,transitionName 必须与 Fragment2 中元素的 transitionName 匹配才能播放动画。我有这部分工作,当我选择一个项目时,2 个共享视图会进行动画处理,但这与您在 2 个活动之间执行它时所期望的不完全一样。

如果我选择屏幕底部附近的一个项目,它会为 Fragment2 绘制视图并为 2 个共享视图设置动画,就好像它们位于屏幕顶部的项目中一样。很难解释。这里有一些图片

片段1 选择列表底部附近的项目

片段2 我希望蓝线从底部到顶部动画,但它从顶部开始并且只水平增长,我希望黄线保持在底部附近但水平增长,但它从屏幕顶部开始并动画下来

在这两个片段中,我设置以下

同样在他们的 onCreate() 父 Activity 我已经设置

知道为什么我的共享元素动画从屏幕顶部开始,即使它们从屏幕底部的选定项目开始?

0 投票
2 回答
10059 浏览

android - 如何在 Android Lollipop 中推迟 Fragment 的进入转换?

在 Android Lollipop 中,Activity#postponeEnterTransition()Activity#startPostponedEnterTransition()方法使 Activity 能够延迟开始进入和退出共享元素转换,直到加载所有数据。这些非常适合Activity过渡。

Fragment有没有办法在使用过渡时达到相同的效果?

0 投票
1 回答
8964 浏览

android - Android 共享元素过渡 pre-21

如何在 21 之前的设备中实现共享元素转换?我或多或少地遵循了此处的指南http://antonioleiva.com/material-design-everywhere/但我收到诸如“属性转换名称仅用于 api 级别 21 或更高级别”之类的错误

0 投票
1 回答
8174 浏览

android - Lollipop 中的活动和片段转换

我正试图Activity Transition围绕Lollipop. 活动转换的工作非常简单,这里有一些基本信息,但Fragment Transition没有记录,我无法让它工作。我已经尝试过这个用例(在 Android 中很常见):

案例 1:ActA+FragA -> ActB+FragB

sharedElement是和中的图像。我没有想出工作代码,所以我退后一步尝试FragAFragB

案例 2:ActA+FragA -> ActB

在和上有一个sharedElement。动画不起作用,我只能看到当我单击 FragA 上的图像时,图像消失,动画持续时间后它会在 ActB 中弹出。FragA 外部但 ActA 内部的共享视图(例如)动画正确。FragAActBToolbar

在这种情况下,sharedImage 是 RecyclerView 中的 imageView,会不会是android:transitionName="shared_icon"项目布局 xml 中的 xml 标签不起作用?

这是我的主题:

window_transition.xml:

shared_element_transition.xml:

0 投票
1 回答
6807 浏览

android - 活动和共享视图之间的动画:动画结束时出现故障/破解?

所以,我面临的问题是我在两个活动和两个共享视图之间做的动画看起来不太好。

问题是它的“故障”,当从 Activity2 回到 Activity1 时,共享的 TextViews 在动画结束时会闪烁,从 Activity2 显示“更大的文本”一秒钟,所以它“闪烁”。

活动一(RecyclerView 有三项):

在此处输入图像描述

活动二(详情):

在此处输入图像描述

我在制作动画的同时拍摄了屏幕。当从 Activity2 回到 Activit2 时,您可以看到文本在最后闪烁。该视频(36MB,大小抱歉)显示:

https://drive.google.com/file/d/0B3wIZ9CS9Kj_a0MyVFlzX1YtY0E/view?usp=sharing

问题是:我做错了什么?为什么会这样闪烁?我看过其他动画的视频,它们都非常流畅和漂亮。

我测试了不同类型的转换(changeBounds、explode 等),但总是有一些奇怪的事情发生。任何提示,想法将不胜感激=)

我的代码

主要活动(活动1):

详情活动(活动2):

而布局,首先是位于 RecyclerView 列表中的 my_text_view:

还有activity_details.xml:

以及过渡 xml(在 /res/transition 中):

和styles.xml

0 投票
1 回答
933 浏览

android - Android L 过渡和主页按钮

我正在使用新的 Android L 过渡,特别是与 Slide() 一起使用的共享元素过渡。当我按下后退按钮时,过渡效果很好,它会将共享的 ImageView 滑动并过渡到正确的位置,但是当我按下 ActionBar 中的主页按钮时,它会忽略新的过渡。

我在接收活动中设置了这段代码:

我的“主要”活动中的这段代码:

0 投票
1 回答
1785 浏览

android - 带有共享元素的 Android 片段转换

每个人!我有2个片段。在一个片段中,我在卡片中有一个小图像。在 2d 片段中,我的布局标题中有相同​​的图像。我想使这个图像从一个片段到另一个片段的共享元素转换,就像这个例子http://1.bp.blogspot.com/-Vv4SxVSI2DY/VEqQxAf3PWI/AAAAAAAAA7c/mfq7XBrIGgo/s1600/activity_transitions%2B(1).gif

二维片段:

第一个片段:

交易:

过渡移动.xml

但是没有图像动画发生。它出现在左上角调整大小。

0 投票
0 回答
2096 浏览

android - 多视图活动转换

Android Lolipop 有一个 api,允许在不同活动中的共享元素之间轻松转换。

活动转换

看起来这个 api 不支持具有多个视图的转换。有没有办法使用相同的api来做到这一点?

编辑

按照@pskink 的建议,我使用了不同的方法

这从 ActivityA 到 ActivityB 工作得很好,但是点击后退按钮会导致这个堆栈跟踪

编辑2

当我按包名称过滤时收到的唯一日志如下。第一个日志看起来像是来自渲染脚本,我在上面发布了日志,因为我认为它是相关的。

A/OpenGLRenderer(11128): 调用了 requireSurface() 但没有设置表面!

A/libc(11128):致命信号 6 (SIGABRT),tid 11219 (RenderThread) 中的代码 -6

I/ci(11358):动态制作 Creator

W/ResourcesManager(11358):资产路径“/system/framework/com.android.media.remotedisplay.jar”不存在或不包含

W/ResourcesManager(11358):资产路径“/system/framework/com.android.location.provider.jar”不存在或不包含

编辑3

因此,我能够通过禁用 activityA 上的 mapfragment 来使其正常工作。我仍在调查为什么会发生这种情况

0 投票
2 回答
10995 浏览

android - ViewPager 片段 - 共享元素转换

我正在开发的应用程序显示图像网格。当您点击图像时,它会进入详细信息视图。详细信息视图包含一个 ViewPager,它允许您在网格中的每个图像之间滑动。这是通过传递路径列表(包含网格中的每个图像)以及被点击的图像的偏移量来完成的,因此可以将 ViewPager 设置为最初显示该页面。

在 ViewPager 中的当前偏移页面的 Fragment 内进行共享元素转换的最佳方式是什么?网格 (RecyclerView) 图像应在当前页面中展开为全屏图像。我看到了推迟和恢复活动转换的能力,因此应用程序将等待显示共享元素转换,直到从磁盘加载图像。但我希望能够使其动画到视图寻呼机中的正确页面,并在用户返回时退出到当前页面(因为您可以在页面之间滑动)。如果您现在滑动到不同的页面,初始页面就是动画回到网格中的内容。

目前,我为视图寻呼机的 Fragments 中的每个图像分配了一个“image_[index]”格式的转换名称。当我开始详细信息活动时,我使用相同的 transitionName ,索引是偏移量。

与此相关,我还想知道如何使涟漪与长按一起工作。当您更改视图的激活状态时,它似乎取消了涟漪。我想要一个类似于 Gmail 的效果,在长按完成并触发激活状态后,涟漪会重新开始并迅速结束。