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

android - CollapsingToolbarLayout 标题作为共享元素过渡

我的活动 A 中有一个TextView。如何TextView从活动 A 和活动 B 的标题进行共享元素转换CollapsingToolbarLayout.setTitle()

有没有办法idCollapsingToolbarLayout源代码中获取它的标题视图?

感谢帮助!

0 投票
1 回答
2731 浏览

android - 使用 DialogFragment 和 ScrollView 时共享元素过渡闪烁

更新:

在https://github.com/ulyssesp/SharedElementTransitions有一个重现。

这只发生在有一个保存转换 ImageView 的 DialogFragment 时,它只在某些时候发生。当它发生时,如果图像不在 DialogFragment 的底部但仍然可见,那么您可以看到图像的一部分被正确渲染。感觉就像是 DialogFragment 在 ImageView 之后(因此在其之上)呈现的竞争条件。


我正在尝试使用 Picasso 和缓存中的共享元素转换ImageViewScrollView加载DialogFragment图像。每隔一段时间,当ScrollView滚动时,进入过渡时就会闪烁。

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

最后点击上面的视频文件最能说明我在说什么。请注意,闪烁并非每次都发生,并且必须滚动滚动视图才能发生闪烁。实际项目中发生的事情还有很多,但这是一个重现错误的最小示例项目。

相关代码:

样式.xml:

ImageFragment::onCreateView:

图像显示活动:

如果您有任何见解或需要更多信息,请告诉我!

0 投票
2 回答
4107 浏览

android - 两个活动之间的共享元素转换问题

我在创建基本共享元素转换时遇到问题。从一个活动到下一个活动的转换似乎会出现故障并重现第一个活动而不是结果活动。

概述:

我有两个活动:一个 MainActivity 和一个 DetailActivity。

MainActivity 托管一个带有 CardView 布局的 RecyclerView。每个cardview位置的onclicklistener设置一个对象作为intent extra,并启动DetailActivity。到目前为止,此基本实现有效。

问题:

现在我试图在混合中引入一个共享元素过渡:

原文:(不带转场动画的作品)

问题方法:

当我从上面的单击方法中取消注释 animateTransition(v,i) 方法时,我得到了一些奇怪的行为: MainActivity 默认情况下会淡出,但随后又会重新出现。DetailActivity 仍然从意图加载,但不可见。按下后退按钮似乎什么都不做(仍然看到 MainActivity),但它会停止 DetailActivity。

到目前为止,我已经完成了以下操作来连接所有这些:

  • 在我的 styles.xml 中启用了窗口内容转换

  • 以我的风格引用 my_transition.xml 作为退出转换

    @transition/my_transition

  • 为两个 cardView 中的共享元素提供了一个 android:transitionName(由在 activity_home.xml RelativeLayout 中引用的 RecyclerView 使用)

Card_view_layout.xml

detail_activity.xml

0 投票
0 回答
778 浏览

android - 共享元素转换时英雄视图的位置计算错误

我有两个活动,它们都有工具栏和 CoordinatorLayouts。

借助 CoordinatorLayout,可以通过滚动隐藏工具栏。

我正在尝试在它们之间进行共享元素转换,这些是我到目前为止所采取的步骤:

  • 将图像视图设置为英雄视图。
  • 将工具栏、导航栏和状态栏也设置为英雄,以避免覆盖问题。

这是我的问题:

当共享元素动画开始时,英雄工具栏从上到下滑动,导致整个屏幕从上到下移动。

因为 hero imageview 的位置是在这个动画之前计算出来的,所以它会在一个移动动画之后闪烁到它的最终位置。

有没有办法让动画师正确计算图像视图的最终位置?

我不确定我是否已经充分解决了我的问题,所以我可以提供额外的信息和评论。

对不起,很长的问题。

提前致谢。

0 投票
2 回答
896 浏览

android - GridView 中的共享元素转换奇怪的行为

我在 gridView 适配器中的 imageView 和详细信息活动中的 imageView 之间使用共享元素转换,但是当我单击 GridView 中的项目时,imageView 不会从正确的位置开始动画,它总是在原始位置下开始地点,当我回击图像时,图像会正确地动画到正确的位置,因此只有在进入新活动时才会发生故障。

https://youtu.be/cprBHWPVNbk(我已经放慢了动画的速度,以便清除故障)。

在 BrowseFragment 的 OnCreate 中:

然后 BrowseActivity 的监听器启动 detailsActivtiy :

然后在 DetailsFragment 的 OnCreate 中:

GridViewItem 布局:

DetailsView 布局的一部分:

在我的主题中,我声明 <item name="android:windowContentTransitions">true</item>我没有使用任何自定义动画,尽管我尝试了一些并且我也尝试推迟过渡,但没有解决问题。

0 投票
2 回答
1939 浏览

android - 共享元素转换为 RecyclerView 中的视图,可能吗?

鉴于具有共享元素的 Activity 的正常 Lollipop 转换,例如https://github.com/codepath/android_guides/wiki/Shared-Element-Activity-Transition,从 Recycler View 转换为 View 是很常见的目标活动的正常视图。

但是,如果目标视图也在一个recyclerView 的viewholder 中,有没有办法使这成为可能(即向ActivityOptionsCompat 提供目标视图)?

谢谢!

0 投票
0 回答
287 浏览

android - 如何在没有“字体太大而无法放入缓存”的情况下显示大文本并且不会破坏共享元素转换

我用一些文本共享了 TextView 的元素转换。文本大小从 25sp 变为 200sp。

如果文本包含彩色表情符号 (☺),我会收到“字体太大,无法放入缓存”。

据我所知,有 android 属性“ro.hwui.text_large_cache_height”确定了 gliph 纹理的最大高度,但它不等于 textSize,所以我不知道如何使用它。

当我设置 textview.setLayerType(View.LAYER_TYPE_SOFTWARE, null) - 这解决了显示文本的问题,但打破了过渡 - 文本只出现在最后。

怎么可能修好?谢谢。

0 投票
1 回答
1349 浏览

android - ImageView 共享元素转换(在 Activity 之间)以错误的 scaleType 开始

一开始就发现了fresco的SimpleDraweeView的问题。但是,在我用 android ImageView 替换后问题仍然存在。所以我不能确定问题是由于Android还是壁画。

问题是什么

  1. 第一个活动有回收视图,每个视图都有一个 ImageView(或 SimpleDraweeView)。想要的 scaleType 是“centerCrop”
  2. 第二个活动只有一个 ImageView。想要的 scaleType 是“fitCenter”

但是在我的私人项目以及示例项目中。
https://github.com/JackFan-Z/ActivitySharedElementTransition
ImageView 以 scaleType "fitCenter" 开头,这是错误的。

我试图推迟共享元素转换,并在 SharedElementCallback 的回调中设置不同的共享元素 scaleType。但它们都没有真正起作用。任何人都可以帮助找出问题所在,或者在哪里调试?

问题截图

第一个Activity 截图:转场截图:
在此处输入图像描述


在此处输入图像描述

0 投票
1 回答
1030 浏览

android - 如何在主/详细窗格布局中将共享元素 ImageView 从 ListView 片段动画化到详细视图片段

我的应用程序平板电脑布局在左侧包含一个网格视图 (RecyclerView),其中包含一个图像网格,右侧是一个详细信息视图,它显示当前所选网格视图图像的较小版本以及描述该图像的附加文本视图。我试图弄清楚如何提供一个共享元素动画过渡,它将任何单击的图像视图(在左侧网格视图片段中)滑动并缩放到其在详细信息视图片段中的匹配位置。我的应用程序只需要一个“进入”转换,因为我不希望每个图像选择都记录在后台堆栈上。

我尝试在我的OnItemClick(View view)处理程序中使用标准共享元素支持调用,如下所示:

“视图”变量是用户在网格视图中单击的 ImageView。我的细节片段的onCreate()方法也包含条目

我也在使用以下 change_image_transform.xml 转换集:

随着

所有这些设置都适用于单窗格模式。当用户在网格视图活动中单击图像时,详细信息片段(在新活动中)将替换网格视图,并且动画对于进入和返回场景都非常有效。

然而,在 2 窗格模式下,图像不会从网格视图中的源滑动和缩放到新创建的细节片段中的目标。我相信我遇到的问题是由于源 ImageView 存在于永久可见的网格视图片段中,因此没有包含在动画框架的转换处理中。

除了一个模糊的建议使用简单的自定义动画外,我的搜索没有找到任何明确的答案。我尝试了一个简单的 TranslateAnimation(没有缩放)作为测试,但这有两个问题:它不允许图像穿过网格视图片段的边界,并且它具有实际“移动”图像的不良副作用(离开在执行动画时,我的网格视图中有一个临时空白点)。最终,所需的效果是看到图像滑动并从源缩放到目标,而不会导致原始图像被擦除。

任何建议或意见,将不胜感激。

0 投票
0 回答
729 浏览

android - 从 TextView 到 EditText 的共享元素转换错误

我正在尝试在 aTextViewEditText´ but when showing the resulting Activity the text in theEditView have been shifted up. See attached pictures. Also, clicking on theEditView` 之间进行 Android 共享转换,转换后会将文本恢复到正确的位置。

首先单击 RecyclerView 中的任意行:

在此处输入图像描述

单元格视图、日期TextEdit和名称TextEdit将共享给下一个活动。单元格背景转换为工具栏。

在此处输入图像描述

开始活动单元格布局:

活动的结束布局:

过渡代码: