how to remove default animation transition when using navigation component in Android?

You can add anim file to replace the default animation.

  • res/anim/nav_default_enter_anim.xml
  • res/anim/nav_default_exit_anim.xml
  • res/anim/nav_default_pop_enter_anim.xml
  • res/anim/nav_default_pop_exit_anim.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--Empty to disable animation-->
</set>

[Navigation Component] I can`t change animation from NavigationUI.setupWithNavController()


@HvSimon has provided a solution to set the global default which hasn't worked for me. Also I would like to choose/disable the animations per transition.

You can supply additional arguments to navigate() with a NavOptions object.

First create an animation in your res folder like res/anim/nav_enter_anim.xml (empty for no animation):

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--Empty to disable animation-->
</set>

Create one animation xml per animation or reuse the same. Then supply a NavOptions object to your navigate() call like so:

val animationOptions = NavOptions.Builder().setEnterAnim(R.anim.nav_enter_anim)
            .setExitAnim(R.anim.nav_exit_anim)
            .setPopEnterAnim(R.anim.nav_pop_enter_anim)
            .setPopExitAnim(R.anim.nav_pop_exit_anim).build()

findNavController().navigate(MyFragmentDirections.toMainActivity(), animationOptions)