Как очистить график навигации из стека во вложенной навигации в составлении реактивного ранца?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как очистить график навигации из стека во вложенной навигации в составлении реактивного ранца?

Сообщение Anonymous »

Я создал вложенную навигацию, используя нижний график навигации и другие графики. Я хочу, чтобы стек был очищен до последнего графика?
У меня есть навигация, как показано ниже

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

@Composable
fun HomeNavGraph(navcontroller:NavHostController){
val viewmodel:MainCategoryViewModel = hiltViewModel()
NavHost(navController = navcontroller, startDestination = "Home_Screen" ){
composable("Home_Screen"){
HomeScreen(navcontroller,viewmodel)
}
composable("Search_Screen"){
SearchScreen()
}
composable("Shopping_Cart_Screen"){
ShoppingCartScreen(navcontroller,viewmodel)
}

composable("Profile_Screen"){
ProfileScreen()
}
composable("Product_Navigation_Graph"){
ProductNavigationGraph( mainCategoryViewModel = viewmodel )

}
composable("Checkout_Navigation_Graph"){
CheckoutNavigationGraph( )
}

}
}

@Composable
fun CheckoutNavigationGraph(){
val navController = rememberNavController()
NavHost(navController = navController, startDestination = "Address_Details_Screen" ){

composable("Address_Details_Screen"){
AddressDetailsScreen(navController = navController)
}
composable("Add_New_Address_Screen"){
AddNewAddressScreen(navController = navController)
}
composable("Payment_Screen"){
PaymentScreen(navController)
}
composable("Billing_Screen"){
var address= navController.previousBackStackEntry?.savedStateHandle?.get("address")

BillingScreen(navController,address)
}
}
}

Сначала я собираюсь выполнить навигацию по оформлению заказа из homenavgraph, и на экране оплаты я хочу, чтобы весь задний стек был очищен и достиг последнего экрана, с которого я вошел в навигацию по оформлению заказа (например. Shopping_Cart_Screen)
Я пробовал ->

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

navController.navigate("Shopping_Cart_Screen"){
popUpTo("Shopping_Cart_Screen"){
inclusive = false
}
}
Это показывает ошибку, что пункт назначения не найден
и

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

navController.popBackStack(
"Shopping_Cart_Screen",inclusive = false
)
это показывает -> Игнорирование popBackStack для маршрутизации Shopping_Cart_Screen, поскольку он не был найден в текущем обратном стеке

Подробнее здесь: https://stackoverflow.com/questions/777 ... -jetpack-c
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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