如何共享元素从片段到活动的转换

我在一个活动中的ViewPager中有三个片段,我想实现从一个片段到另一个片段的共享元素转换。 转换来自回收者视图,该视图位于视图中的片段内部,该视图提取器位于活动活动 – > 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()); 

在使用上面的代码时,第二个活动启动但没有任何内容可见,例如第二个活动包含一个FAB,当点击youtube时会启动它。 当我盲目点击时,我知道FAB在哪里,youtube正确启动但在第二个活动中没有任何内容可见

 D/ViewRootImpl: changeCanvasOpacity: opaque=true 

它的其中一个logcats。 我认为这一定是问题!!

我有同样的问题,我找不到任何有用的抱歉,但也许你应该重新考虑为什么在你可以使用Fragment to Fragment或Activity to Activity关系时你需要Fragment to Activity关系。

我已经解决了我的问题,即将我的代码更改为Fragment to Fragment关系,并且有大量关于共享元素转换的文档和示例

我终于find了答案,startActivity调用方法是不同的。 你必须打电话

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

来自AppCompactActivity

Fragment to Activity与Activity to Activity相同,因为Fragment位于Activity内。