navigationevent

  
The Navigation Event library provides a KMP-first API for handling system back as well as Predictive Back.
Latest Update Stable Release Release Candidate Beta Release Alpha Release
June 18, 2025 - - - 1.0.0-alpha03

Declaring dependencies

To add a dependency on navigationevent, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

Groovy

dependencies {
    implementation "androidx.navigationevent:navigationevent:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.navigationevent:navigationevent:1.0.0-alpha03")
}

For more information about dependencies, see Add build dependencies.

Feedback

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Create a new issue

See the Issue Tracker documentation for more information.

There are no release notes for this artifact.

Version 1.0

Version 1.0.0-alpha03

June 18, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.

New Features

  • Introduced a new navigationevent-compose module to support Jetpack Compose features in the navigationevent library. (980d78)
  • NavigationEvent Compose has added a new LocalNavigationEventDispatcherOwner local composition. It returns a nullable value to better determine whether it is available in the current composition. NavigationEventHandler will now throw an error if the underlying owner is not found. (62ffda)
  • NavigationEvent Compose has added a new NavigationEventHandler Composable to handle (predictive back gesture) events. It provides a Flow of NavigationEvent objects that must be collected in the suspending lambda you provide c42ba6 :
NavigationEventHandler { progress: Flow<NavigationEvent> ->
  // This block is executed when the back gesture begins.
  try {
    progress.collect { backEvent ->
      // Handle gesture progress updates here.
    }
    // This block is executed if the gesture completes successfully.
  } catch (e: CancellationException) {
    // This block is executed if the gesture is cancelled
    throw e
  } finally {
    // This block is executed either the gesture is completed or cancelled
  }
}

API Changes

  • Each NavigationEventCallback can now be registered with only one NavigationEventDispatcher at a time; adding it to multiple dispatchers throws an IllegalStateException. Note that this behavior differs from OnBackPressedDispatcher, which allows multiple dispatchers. (e82c19)
  • Made isPassThrough a val to prevent mutation during navigation, which could break NavigationEvent's dispatching. (I0b287)

Version 1.0.0-alpha02

June 4, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.

API Changes

  • Replace NavigationEventDispatcher's secondary constructor with default arguments. (I716a0)
  • Remove priority property from NavigationEventCallback. Pass priority to NavigationEventDispatcher.addCallback() instead. (I13cae)

Bug Fixes

  • Fixed a ConcurrentModificationException that could occur when NavigationEventCallback.remove() was called due to simultaneously modifying the internal list of closeables. (b/420919815)

Version 1.0.0-alpha01

May 20, 2025

androidx.navigationevent:navigationevent-*:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.

New Features

  • The androidx.navigationevent library provides a KMP-first API for handling system back as well as Predictive Back. The NavigationEventDispatcher serves as a common APIs for registering one or more NavigationEventCallback instances for receiving system back events.
  • This layer sits below the previously released APIs in androidx.activity and aims to be a less opinionated replacement for using the Activity APIs in higher level components or directly using the Android framework OnBackInvokedDispatcher APIs. The androidx.activity APIs have been rewritten on top of the Navigation Event APIs as part of Activity 1.12.0-alpha01.