android - Transición de actividad no realizada(Lollipop)
android-activity android-5.0-lollipop (1)
Debería usar el tema de la aplicación con las siguientes etiquetas de ventana:
<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>
En el archivo de Mainfest, la etiqueta de la aplicación interna usa android: theme = "@ style / CustomActionBarTheme"
En la actividad X,
ActivityOptionsCompat options = ActivityOptionsCompat
.makeSceneTransitionAnimation(activity,img_pic, "img_pic");
donde "img_pic" es android: transitionName = "img_pic" en los archivos de diseño de la Actividad X y la Actividad Y.
NOTA: los valores de android: transitionName deben ser los mismos para que la transición tenga lugar.
Actividad de apertura Y con ActivityOptionsCompat o ActivityOptions,
Intent intent = new Intent(context,Activity_Y.class);
startActivity(intent, options.toBundle());
Estoy animando una transición entre la actividad X y la actividad Y.
X contiene una lista con imágenes, y cuando se hace clic en una imagen se expande y se "amplía" en la actividad Y.
Entonces, esta imagen es un elemento compartido entre X e Y. He establecido su propiedad transitionName
en los diseños XML.
Este es el código que inicia la actividad Y :
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, clickedImage, clickedImage.getTransitionName());
startActivityForResult(intent, OPEN_PICTURE_REQUEST, options.toBundle());
Hasta aquí, todo funciona bien. Sin embargo, también quiero animar el diseño de la actividad Y cuando se ingresa.
Para hacerlo, he definido la transición en un archivo 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>
Finalmente, en el onCreate
de la actividad Y yo inicializo la transición:
TransitionInflater inflater = TransitionInflater.from(this);
Transition transition = inflater.inflateTransition(R.transition.picture_enter);
Window window = getWindow();
window.setEnterTransition(transition);
Pero esto nunca se realiza. Sólo el efecto "zoom" de la imagen funciona como debería. También he intentado definir la transición programáticamente.
¿Alguna sugerencia?