From 8386bf9c69a4faff2773c66fd8f6e3e446bfdb59 Mon Sep 17 00:00:00 2001 From: GG Bond Date: Thu, 28 Dec 2023 00:20:53 +0800 Subject: [PATCH] Fix regression again --- .../main/kotlin/androidx/navigation/compose/NavHost.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/androidx/navigation/compose/NavHost.kt b/app/src/main/kotlin/androidx/navigation/compose/NavHost.kt index 024ad343e..80f68c99c 100644 --- a/app/src/main/kotlin/androidx/navigation/compose/NavHost.kt +++ b/app/src/main/kotlin/androidx/navigation/compose/NavHost.kt @@ -27,6 +27,7 @@ import androidx.compose.animation.core.EaseOut import androidx.compose.animation.core.ExperimentalTransitionApi import androidx.compose.animation.core.SeekableTransitionState import androidx.compose.animation.core.rememberTransition +import androidx.compose.animation.core.snap import androidx.compose.animation.core.tween import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -55,6 +56,8 @@ import androidx.navigation.Navigator import androidx.navigation.createGraph import androidx.navigation.get import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.NonCancellable +import kotlinx.coroutines.withContext /** * Provides in place in the Compose hierarchy for self contained navigation to occur. @@ -261,7 +264,10 @@ public fun NavHost( inPredictiveBack = false navController.popBackStack() } catch (e: CancellationException) { - inPredictiveBack = false + withContext(NonCancellable) { + transitionState.animateTo(backStackEntry, snap()) + inPredictiveBack = false + } } }