Transición de elementos compartidos con actividad de diálogo
Puse juntos una aplicación muy simple que utiliza transiciones de elementos compartidos al iniciar una actividad con el tema de diálogo ( código fuente en github ).
Tengo el siguiente resultado:
- Fragmentos de ViewPager - Transiciones de elementos compartidos
- SharedElment transition usando fragmentos que no están en transición
- Transición de elementos compartidos en CardView con radio
- Webview falla en la transición de elementos compartidos en lollipop
- Transición de elemento compartido (primer plano / fondo)
Como se puede ver hay 2 problemas con la transición / animación:
- La animación sólo es visible en el área de la actividad de diálogo por lo que los clips y se ve feo.
- No hay transición / animación cuando toco fuera de la actividad para volver.
¿Cómo puedo solucionar estos problemas? Cualquier ayuda sería apreciada.
EDIT: Después de la respuesta de Quanturium hice las siguientes cosas para conseguir que funcione:
Utilice el tema siguiente en lugar de un tema de diálogo:
<style name="AppTheme.Transparent" parent="AppTheme"> <item name="android:windowIsTranslucent">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">true</item> </style>
Utilice un CardView como fondo para la apariencia de Diálogo y para esquinas y sombras redondeadas.
Llamar a finishAfterTransition (); Cuando el usuario hace tapping fuera del CardView.
Ahora parece que este ( código ), el CardView necesidades de refinación para mejor coincidir con el diálogo, pero está trabajando al menos .:
- ¿Cómo puedo excluir ActionBar cuando las transiciones entre Actividades en Android 5.0
- Cómo saber cuándo finaliza la transición de elemento compartido
- Transición del fragmento Android con elemento compartido
- La transición de elementos compartidos funciona con FragmentTransaction.replace () pero no funciona con FragmentTransaction.add ()
- Uso de transiciones de actividad de SharedElement con una vista personalizada
- La transición de elementos compartidos no tiene el comportamiento esperado
- Las transiciones de elementos compartidos no funcionan cuando se combinan con un CoordinatorLayout y CollapsingToolbarLayout
- Transición de elemento compartido de Android: la vista de héroe se dibuja delante de otro
Una transición de actividad funciona de este modo. Al iniciar su segunda actividad, se muestra en la parte superior de su primera con un fondo transparente. Los elementos compartidos se colocan de la misma manera en la primera actividad y luego se animan a la posición correcta especificada en la segunda actividad.
En su caso está utilizando android: theme = "@ style / Theme.AppCompat.Dialog" que significa que el tamaño del área de dibujo de la segunda actividad es menor que el de la primera actividad. Esto explica el recorte y la no transición al hacer clic fuera.
Lo que usted quiere hacer es deshacerse de ese tema, e implementar su propio diseño con un fondo oscuro / sombra con el fin de ser capaz de ejecutar su transición suave.
- Crear una pantalla de bienvenida real
- ¿Puede existir un servicio de fondo sin su aplicación principal?