es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo eliminar las transiciones predeterminadas en la navegación de Jetpack Compose.

Estoy utilizando este fragmento de código para navegar desde un composable a otro, pero tiene una animación de difuminado por defecto. ¿Cómo puedo quitarla? Intenté usar un recurso anim vacío, pero no funciona.

navHostController.navigate(
    "destination_route",
    navOptions {
        popUpTo("this_route") {
            inclusive = true
        }
        anim {
            enter = R.anim.empty_animation
            exit = R.anim.empty_animation
            popEnter = R.anim.empty_animation
            popExit = R.anim.empty_animation
        }
    }
)

R.anim.empty_animation:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Vacío para deshabilitar la animación -->
</set>
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar la animación predeterminada de desvanecimiento al navegar de un componible a otro, puedes utilizar un archivo de recurso de animación vacío. El fragmento de código compartido en la pregunta ya está utilizando R.anim.empty_animation, que es un archivo de recurso de animación vacío. Sin embargo, parece que no está funcionando.

    Para solucionar este problema, asegúrate de haber agregado el atributo android:windowAnimationStyle al tema de la actividad en tu archivo AndroidManifest.xml, como se muestra a continuación:

    <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"></meta-data>
        <meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"></meta-data>
        <intent-filter>
            <action android:name="android.intent.action.MAIN"></action>
    
            <category android:name="android.intent.category.LAUNCHER"></category>
        </intent-filter>
    
        <!-- Agrega este atributo para deshabilitar la animación predeterminada -->
        <item name="android:windowAnimationStyle">@null</item>
    </activity>
    

    Establecer el atributo android:windowAnimationStyle en @null deshabilita la animación predeterminada para la ventana de la actividad. Una vez que hayas realizado este cambio, el archivo de recurso R.anim.empty_animation debería funcionar como se esperaba, y la navegación entre los componibles se producirá sin ninguna animación.

Comments are closed.