2016-07-26 97 views
5

我在活动中有一个ViewPager中有三个片段,我想实现从其中一个片段到另一个活动的共享元素转换。转换是从回收站视图,它是在视图内部的一个片段里面,这是一个活动内的活动 Activity-> ViewPager-> Fragment-> Recyclerview如何共享从片段到活动的元素转换

我已经搜索了每个地方的互联网,但只有信息共享元素从一个片段到另一个片段的转换,以及一个活动到另一个活动 没有关于过渡内容从片段至活动

holder.poster.setTransitionName("posterX"); 
      ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity) con,holder.poster,holder.poster.getTransitionName()); 
      Log.e("Animation", "Success"); 
      //startActivity((Activity) con,intent,options.toBundle()); 
      c.startActivity(intent,options.toBundle()); 

在使用上述代码的第二活动被启动但没有什么是可见的,例如,第二活动包含点击时YouTube是推出了FAB。 我知道那里的FAB是这样,当我点击盲目,YouTube的正常开展,但没有在第二个活动是可见

D/ViewRootImpl: changeCanvasOpacity: opaque=true 

其logcats之一。 我认为这一定是问题!

回答

0

我有同样的问题,我找不到任何有助于抱歉的事情,但也许你应该重新考虑为什么当你需要片段到片段或活动到活动的关系时,你需要片段到活动的关系。

我已经解决了我的问题呀改变我的代码片段,以分片的关系,并有大量的文档和有关Shared Element Transitions

+0

如此虐待尝试使用嵌套的片段和回复! – user3740778

+0

在这个时候这是不可能的 – Carlos

0

片段活动的例子是一样的活动,以活动,因为你的片段在一个Activity中。

+0

从理论上讲,它是正确的,但实际上当你编写代码时,你会从片段开始转换,因为元素不在活动中的片段中。所以最终它是活动的碎片。 – user3740778

0

我终于找到答案了,startActivity的调用方法是不同的。 你必须调用

startActivityFromFragment(fragment, intent, req_code, options.toBundle()); 

从AppCompactActivity

相关问题