Как добавить прослушиватель и получить обратный вызов после завершения перехода навигации в Jetpack Compose (NavHostContAndroid

Форум для тех, кто программирует под Android
Anonymous
Как добавить прослушиватель и получить обратный вызов после завершения перехода навигации в Jetpack Compose (NavHostCont

Сообщение Anonymous »

Я пытаюсь добавить прослушиватель и получать обратный вызов всякий раз, когда переход навигации завершается в Jetpack Compose.
Я пытался использовать API-интерфейс NavController addOnDestinationChangedListener, но он отправляется немедленно моему слушателю и не ждет завершения композиции.

Код: Выделить всё

val navController = rememberNavController()

// Register the destination changed listener
navController.addOnDestinationChangedListener { _, destination, _ ->
// destination change is sent immediately and isnt waiting for the composable to finish
}
Моя цель — добавить прослушиватель, который запускается только после завершения композиции и изменения места назначения.
что-то вроде этого:
Моя цель — добавить прослушиватель, который запускается только после завершения композиции и изменения места назначения.
что-то вроде этого:
p>

Код: Выделить всё

// Register the transition finished listener
navController.transitionFinished{ _, destination ->
// Do something when the navigation transition has finished
}

NavHost(navController = navController, startDestination = "Home") {
composable("Home") {
// THE CALLBACK IS FIRED HERE, IMMEDITIETLY
Text("FIRST SITE")
//FIRE NOW THE CALLBACK AFTER IT FINISHED COMPOSITION
}
composable("Settings") {
// THE CALLBACK IS FIRED HERE, IMMEDITIETLY
Text("SECOND SITE")
//FIRE NOW THE CALLBACK AFTER IT FINISHED COMPOSITION
}
}
Где он будет запускать обратный вызов только после того, как весь составной объект завершит свою композицию.
Есть ли варианты, чтобы получить текущее состояние перехода navHost, чтобы Я могу реализовать это сам или использовать любые другие вызовы API?
EDIT1: TO Уточнить: я определяю завершающую композицию, когда вся анимация перехода завершена

Подробнее здесь: https://stackoverflow.com/questions/748 ... transition

Вернуться в «Android»