Как избежать ошибки с navigator.popbackstack [дубликат]Android

Форум для тех, кто программирует под Android
Anonymous
Как избежать ошибки с navigator.popbackstack [дубликат]

Сообщение Anonymous »

У меня есть два экрана: A и B в режиме «Основной/Детальный». B (Деталь) имеет панель действий сверху со значком возврата для возврата к мастеру. Однако я заметил, что если я дважды коснусь значка «Назад», он вернется к A (как и ожидалось), а затем экран станет совершенно пустым.
Мой текущий код для доступа к экрану B: следующим образом

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

NavHost(navController = navController, startDestination = ScreenRouter.ScreenA.route)
{
composable(ScreenRouter.PokemonList.route) {
PokedexList(showPokemonDetail = { myID ->
navController.navigate(
route = ScreenRouter.ScreenB.createRoute(myID)
)
})

}

composable(route = ScreenRouter.ScreenB.route) { backStackEntry ->
val myID = backStackEntry.arguments?.getString("id")
requireNotNull(myID)
ScreenB(
id = myID,
navigateUp = {navController.popBackStack()}
)
}
}
Похоже, что когда я нахожусь на экране B, в память загружаются два экрана. Один popbackstack ведет к экрану A. Дополнительный popbackstack удаляет и его, оставляя меня в пустой ситуации «без экрана».
Как я могу предотвратить это с помощью передовой практики? п>

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

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