Si ya migraste tu app a las nuevas APIs de retroceso del sistema, puedes habilitar el gesto atrás predictivo para recibir automáticamente animaciones en la app y también admitir transiciones personalizadas.
Cómo agregar compatibilidad con animaciones integradas en la app
Después de habilitar la función, tu app mostrará animaciones para volver a la página principal, cambiar de actividad y cambiar de tarea.
También puedes actualizar tu dependencia de componente de material a la versión 1.10.0 de MDC-Android para recibir animaciones de componentes de material como la siguiente:
En el video, se muestra un breve ejemplo de animaciones de atrás predictivo para cambiar de actividad y volver a la pantalla principal con la app de configuración de Android.
- En la animación, el usuario desliza el dedo hacia atrás para volver a la pantalla de configuración anterior, un ejemplo de una animación de cambio de actividad.
- Ahora, en la pantalla anterior, el usuario comienza a deslizar el dedo hacia atrás por segunda vez y se muestra una vista previa de la pantalla principal con el fondo de pantalla, un ejemplo de la animación para volver a la pantalla principal.
- El usuario continúa deslizando el dedo hacia la derecha y se muestra una animación de la ventana que se reduce hasta el ícono de la pantalla principal.
- El usuario volvió por completo a la pantalla principal.
Obtén más información sobre cómo admitir el gesto atrás predictivo.
Cómo agregar transiciones y animaciones personalizadas en la app
Con Android 14, puedes crear transiciones y animaciones integradas en la app para los momentos personalizados de tu app.
Usa un conjunto de APIs de Predictive Back Progress para desarrollar animaciones y transiciones personalizadas integradas en la app.
En AndroidX Activity 1.8.0-alpha01 o versiones posteriores, puedes agregar transiciones personalizadas al gesto de atrás predictivo en tu app. Dentro de OnBackPressedCallback
, presentamos los métodos handleOnBackProgressed
, handleOnBackCancelled
y handleOnBackStarted
para animar objetos mientras el usuario desliza hacia atrás. Usa estos métodos si necesitas algo más personalizado que las animaciones predeterminadas que proporcionan las animaciones del sistema nuevas o las animaciones de los componentes de material.
En la siguiente simulación, se muestra una animación personalizada (en este caso, un cuadro simple) implementada con OnBackPressedCallback
. En el modelo, el cuadro se reduce verticalmente y se mueve para seguir la dirección del deslizamiento.
Este es un ejemplo de cómo podrías implementar esta función.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
...
val box = findViewById<View>(R.id.box)
val screenWidth = Resources.getSystem().displayMetrics.widthPixels
val maxXShift = (screenWidth / 20)
// For the purposes of demonstration, this code snippet presents the
// callback as being always enabled. However, in practice it's always a
// good idea to always disable the callback when you're ready for the
// system to handle back events.
val callback = object : OnBackPressedCallback(enabled = true) {
override fun handleOnBackProgressed(backEvent: BackEvent) {
when (backEvent.swipeEdge) {
BackEvent.EDGE_LEFT ->
box.translationX = backEvent.progress * maxXShift
BackEvent.EDGE_RIGHT ->
box.translationX = -(backEvent.progress * maxXShift)
}
box.scaleX = 1F - (0.1F * backEvent.progress)
box.scaleY = 1F - (0.1F * backEvent.progress)
}
override fun handleOnBackPressed() {
// Do something after the back gesture completes.
}
override fun handleOnBackCancelled() {
// e.g. reset box to the original position
}
}
this.onBackPressedDispatcher.addCallback(callback)
}
}
Se espera que la mayoría de las apps usen las APIs de AndroidX retrocompatibles, pero también hay APIs de plataforma similares dentro de OnBackAnimationCallback
disponibles para probar en la Versión preliminar para desarrolladores 1 de Android 14 y versiones posteriores.
Cómo agregar transiciones de actividades personalizadas en Android 14 y versiones posteriores
Para asegurarte de que las transiciones de actividades personalizadas admitan el gesto atrás predictivo en Android 14 y versiones posteriores, puedes usar overrideActivityTransition
en lugar de overridePendingTransition
. Esto significa que la animación de transición se reproduce a medida que el usuario desliza el dedo hacia atrás.
Para brindar un ejemplo de cómo podría funcionar esto, imagina una situación en la que la actividad B se encuentra sobre la actividad A en la pila de actividades. Las animaciones de actividades personalizadas se controlarían de la siguiente manera:
- Llama a las transiciones de apertura o cierre dentro del método
onCreate
de la actividad B. - Cuando el usuario navegue hacia la actividad B, usa
OVERRIDE_TRANSITION_OPEN
. Cuando el usuario deslice el dedo para volver a la actividad A, usaOVERRIDE_TRANSITION_CLOSE
. Al especificar
OVERRIDE_TRANSITION_CLOSE
,enterAnim
es la animación de entrada de la actividad A yexitAnim
es la animación de salida de la actividad B.