Bom dia a todos
Eu estou usando uma versão mais atualizada do Navigation, a 2.6.0, ao invés da versão 2.5.3, usada na aula. E nessa versão mais atual (no presente dia da postagem(julho de 2023)) a variável backQueue
está privada, e caso tente utilizar, aparece essa mensagem:
Cannot access 'backQueue': it is invisible (private in a supertype) in 'NavHostController'
Pelo que eu li neste fórum e no IssueTracker do google a backQueue
está privada por ser instável e por isso não irá retornar. E pelo que se falou no fórum, podemos substituir o backQueue
pelo currentBackStack
.
Originalmente o código era assim:
LaunchedEffect(Unit) {
navController.addOnDestinationChangedListener{ _, _, _ ->
val routes = navController.backQueue.map {
it.destination.route
}
Log.i("MainActivity", "onCreate: back stack - $routes")
}
}
E ficou desse jeito:
LaunchedEffect(Unit){
navController.addOnDestinationChangedListener { _, _, _ ->
val routes = navController.currentBackStack.value.map {
it.destination.route
}
Log.i("MainActivity", "on Create: back stack - $routes")
}
}
Ps: eu estou me baseando no que o fórum falou e eu tentei encontrar um equivalente do código da aula. Eu até queria uma confirmação de se o código esse é o melhor jeito de fazer, ou tem algum melhor
Ps2: depois eu percebi que esse código era secundário, apenas para mostrar no log a queue da rota tomada pelo navigate. Mas fica de curiosidade, caso alguém também encontre o mesmo erro