如何使用android.support.transition.Transition/TransitionSet作为片段共享元素输入/返回转换? [英] How to use android.support.transition.Transition/TransitionSet as a fragment shared element enter/return transition?

查看:134
本文介绍了如何使用android.support.transition.Transition/TransitionSet作为片段共享元素输入/返回转换?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Google刚刚发布了android.support.transition程序包,该程序包向其过渡框架提供了反向移植,这确实很棒.

Google has just released android.support.transition package which provides backport to its transition-framework, which is really awesome.

https://developer.android.com/reference/android/support/transition/package-summary.html

Unfortunately, when trying to use the Transition/TransitionSet object from this package as a shared element for fragment transaction, the application fails on following error :

E/AndroidRuntime: FATAL EXCEPTION: main
Process: gregor.martin.loginregisteractivity, PID: 26186
java.lang.ClassCastException: android.support.transition.TransitionSet cannot be cast to android.transition.Transition
 at android.support.v4.app.FragmentTransitionCompat21.wrapSharedElementTransition(FragmentTransitionCompat21.java:86)
 at android.support.v4.app.BackStackRecord.getSharedElementTransition(BackStackRecord.java:1156)
 at android.support.v4.app.BackStackRecord.configureTransitions(BackStackRecord.java:1222)
 at android.support.v4.app.BackStackRecord.beginTransition(BackStackRecord.java:1112)
 at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:721)
 at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677)
 at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:536)
 at android.os.Handler.handleCallback(Handler.java:751)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6077)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

有什么方法可以将新的向后移植过渡用作共享元素过渡?

Is there any way to use the new backported transition as a shared element transition?

推荐答案

更新(2017-08-31)

UPDATE (2017-08-31)

在即将发布的支持库版本中,似乎 support Fragment API将能够使用 support Transition API(请参阅Ian Lake的最新评论)在原始答案中链接的同一主题中).无论是将过渡版本移植到Lollipop之前的设备上,还是只是简单的解决铸造问题的解决方案,都没有相关的信息,但是一旦我了解更多,我就会更新答案.有空的时候,我会尝试在发布之前查看源代码.

It seems like that the support Fragment API will be able to use the support Transition API in the upcoming release of the support library (see the latest comments by Ian Lake in the same topic linked in the original answer). Whether it means that the transitions will be backported to pre-Lollipop devices or just a simple solution for the casting problems, there's no info about it, but I will update the answer once I know more. I'll try to look into the source before the release when I'll have some time.

原始答案:

此支持转换API仅适用于视图(目前至少为 ),因此您不能在片段上使用它.真可惜...

This support transition API is for views only (for the time being, at least), thus you cannot use it on fragments. What a shame...

由伊恩·莱克(Ian Lake)在此Google+回答中确认

这篇关于如何使用android.support.transition.Transition/TransitionSet作为片段共享元素输入/返回转换?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆