未执行活动转换(棒棒糖)

我正在为活动X和活动Y之间的转换制作animation。
X包含带图像的列表,当单击图像时,将在活动Y中展开和“缩放”。
所以,这个图像是XY之间的共享元素。 我已经在XML布局中设置了它的transitionName属性。
这是开始活动的代码Y

 ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, clickedImage, clickedImage.getTransitionName()); startActivityForResult(intent, OPEN_PICTURE_REQUEST, options.toBundle()); 

在此之前,一切正常。 但是,我也想在input时animationY的布局。
为此,我已经在XML文件(picture_enter.xml)中定义了转换:

 <transitionSet xmlns:android="http://schemas.android.com/apk/res/android" android:transitionOrdering="together"> <transition class="android.transition.Explode" android:startDelay="200"> <targets> <target android:targetId="@+id/top_toolbar_container" /> </targets> </transition> </transitionSet> 

最后,在活动的开始阶段,我开始转型:

 TransitionInflater inflater = TransitionInflater.from(this); Transition transition = inflater.inflateTransition(R.transition.picture_enter); Window window = getWindow(); window.setEnterTransition(transition); 

但是这从来没有执行过。 只有图像的“缩放”效果才能正常工作。 我也尝试以编程的方式定义过渡。
有什么build议么?

Solutions Collecting From Web of "未执行活动转换(棒棒糖)"

您应该使用以下窗口标签的应用程序主题:

 <style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- enable window content transitions --> <item name="android:windowContentTransitions">true</item> <!-- enable overlapping of exiting and entering activities --> <item name="android:windowAllowEnterTransitionOverlap">true</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> </style> 

在Mainfest文件中,在应用程序标签内使用android:theme =“@ style / CustomActionBarTheme”

在活动X中,

  ActivityOptionsCompat options = ActivityOptionsCompat .makeSceneTransitionAnimation(activity,img_pic, "img_pic"); 

活动X和活动Y的布局文件中的“img_pic”是android:transitionName =“img_pic”。

注意: android:transitionName值应该是相同的转换发生。

用ActivityOptionsCompat或ActivityOptions打开Activity Y,

 Intent intent = new Intent(context,Activity_Y.class); startActivity(intent, options.toBundle());