问题标签 [sharedelementcallback]
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.
android - ViewPager 片段 - 共享元素转换
我正在开发的应用程序显示图像网格。当您点击图像时,它会进入详细信息视图。详细信息视图包含一个 ViewPager,它允许您在网格中的每个图像之间滑动。这是通过传递路径列表(包含网格中的每个图像)以及被点击的图像的偏移量来完成的,因此可以将 ViewPager 设置为最初显示该页面。
在 ViewPager 中的当前偏移页面的 Fragment 内进行共享元素转换的最佳方式是什么?网格 (RecyclerView) 图像应在当前页面中展开为全屏图像。我看到了推迟和恢复活动转换的能力,因此应用程序将等待显示共享元素转换,直到从磁盘加载图像。但我希望能够使其动画到视图寻呼机中的正确页面,并在用户返回时退出到当前页面(因为您可以在页面之间滑动)。如果您现在滑动到不同的页面,初始页面就是动画回到网格中的内容。
目前,我为视图寻呼机的 Fragments 中的每个图像分配了一个“image_[index]”格式的转换名称。当我开始详细信息活动时,我使用相同的 transitionName ,索引是偏移量。
与此相关,我还想知道如何使涟漪与长按一起工作。当您更改视图的激活状态时,它似乎取消了涟漪。我想要一个类似于 Gmail 的效果,在长按完成并触发激活状态后,涟漪会重新开始并迅速结束。
android - 如何在 Activity 转换期间使用共享元素快照视图?
我对List<View> sharedElementSnapshots
传递给SharedElementCallback
'sonSharedElementStart()
和onSharedElementEnd()
方法的参数感到困惑。大概这些快照视图是为了在共享元素转换期间用作临时占位符。例如,假设活动A
显示了缩略图,活动B
显示了同一图像的高分辨率版本,加载和显示需要几秒钟。不必等待高分辨率图像完成加载,快照视图可以临时代替它使用。
我感到困惑的部分是快照视图最初是如何使用的。它们是否应该被添加到活动的视图层次结构中?或者也许它们应该被添加到窗口装饰视图中ViewOverlay
?无论哪种方式,我都看不到此时如何切换过渡共享元素视图...在andonMapSharedElements()
之前调用,这意味着过渡名称到共享元素的最终映射已经建立。onSharedElementStart()
onSharedElementEnd()
View
任何提示将不胜感激。
android - 如何在片段之间使用 Viewpager 进行 SharedElement 转换
我对 SharedElement Transitions 进行了很多研究,但是我只能找到 onclick 事件的 Transitions。
我想要片段之间的动画,其中动画的速度由用户的滚动速度控制。如果用户在滚动对象之间停止,则对象应该是静止的。示例: 在此图像中,viewpager 位于 screen1 和 screen2 的中间,动画对象处于停止状态。
这些对象从一个屏幕移动到另一个屏幕并改变它们的位置。
我已经弄清楚了翻译动画部分,但是如何在片段之间使用 viewpager 实现这种共享元素转换。此外,它应该以手指滑动的速度滚动/动画。
MainActivity.java
FirstFragment.java- 当用户在 viewpager 上滑动时,该片段有一个必须与第二个片段共享的图像视图。
MyFragmentPagerAdapter.java
second_fragment.xml
first_fragment.xml
Edit1-这个问题不是评论中提到的链接的副本,因为该问题是我问题的子部分。不同之处在于,该问题中的动画以静态速度发生在点击时。但是在我的问题中,动画的速度必须等于 ViewPager 滑动速度的速度。
android - 共享元素结束监听器
我addSharedElement()
与片段一起使用,我想知道是否有可能添加侦听器以在此转换结束后执行某些方法。谢谢您的帮助。
android - 共享元素转换后活动中的内存泄漏进入转换协调器
我在EnterTransitionCoordinator
使用共享元素转换时遇到内存泄漏问题。您可以在下面看到应用程序结构:
它有 2 个屏幕,第一个是一个Activity
withDrawerLayout
和几个Fragment
s 里面。其中一个包含照片列表,单击特定照片会触发共享元素Fragment
从ViewPager
位于另一个中的元素转换Activity
。我SharedElementCallback
在退出和重新输入这两个Activity
s 时使用 custom 来映射正确View
的共享元素转换。我的代码基于这篇很棒的博客文章:https ://android.jlelse.eu/dynamic-shared-element-transition-23428f62a2af
问题是,在ViewPager
's 项目之间滑动后,Fragment
s 被销毁,但View
用于共享元素转换的被保留在Activity
'sActivityTransitionState
中,特别是在EnterTransitionCoordinator
. 重新进入到Activity
withDrawerLayout
然后打开另一个时也是如此Fragment
。即使s 被销毁,View
对用于共享元素转换的 s 的引用仍保留为 int s ,这会导致内存泄漏。Activity
Fragment
我的问题:有没有避免这种内存泄漏的好方法?
android - SharedTransitionElement 动画中的 OutOfMemoryError
我在我的应用程序中使用 sharedElementTransition 并且我使用了 sharedElementCallback 的自定义类来在运行时更新视图。它有时会导致 OutOfMemory 错误,因此我对其进行了搜索,并从该解决方案中使用了 LeakFreeSupportSharedElementCallback 代码来避免崩溃,但我仍然经常收到以下崩溃日志。
自定义回调类:
android - SharedElementTransition 可以交互吗?
我
SharedElementTransition
在我的应用程序中使用过,但我也想通过交互式触摸执行相同的动画。在 iOS 中他们有这个选项,但我在 Android 中找不到类似的解决方案。如果我通过重写
onTouch
方法编写自定义动画,那么稳定和完美需要很长时间。所以,我首先要确定是否
SharedElemnetTransition
可以进行交互,或者是否有任何简单或更有效的解决方案?任何想法都将是非常可观的。谢谢
java - 在全屏android中使用recyclerview幻灯片图像
我已经创建了墙纸应用程序,我正在从 recyclerview 的 firebase 数据库中加载图像。当我单击 recyclerview item(image) 时,该项目的图像 url 发送到下一个活动,然后使用 glide 将该 url 加载到 imageView 中。
现在我想把它改成Image-Slider 之类的东西。通过单击 recyclerView 项目,我想全屏显示该图像,并且还想从左或右滑动(下一个或上一个)。但我不知道该怎么做。
这是我的代码。
FeaturedAdapter.java
查看活动
活动视图.xml
custom_image.xml
android - 为共享元素回调添加侦听器而不更改视图可见性
我在两个活动之间使用共享元素转换。第二个活动由包含片段的视图寻呼机组成。我想在共享元素过渡结束时进行进一步的更改。这是回调:
打印最后的日志语句 GONE。但视图仍然在屏幕上可见。如何改变其可见性?