我在一个活动中的ViewPager内有三个片段,我希望实现共享元素转换,从其中一个片段转到另一个活动。 转换是从包含在片段内的Recyclerview开始的,该片段位于包含在活动中的Viewpager内部。 活动->ViewPager->片段->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
这是其中一个日志记录。 我认为这一定是问题所在!!
getBaseActivity().startActivityFromFragment..
来访问该方法。 - ghitaFragment
类的源代码,您可以看到startActivity
方法实际上“调用”了片段活动的startActivity
方法(好吧,不完全是 - 它调用了FragmentHostCallback#onStartActivityFromFragment
)。 - Edric