Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
245 of 502 menu
◀ ▶

Метод clearBackStack

Метод clearBackStack класса NavController удаляет из стопки destination, связанные с переданным route. Возвращает число удалённых записей. Им пользуются, когда нужно обнулить историю внутри группы маршрутов перед новым navigate.

Синтаксис

navController.clearBackStack("details")

Параметры

Параметр Описание
route Строковый маршрут или id destination, для которого чистят стопку.

Пример

Давайте очистим стопку details перед новым входом:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val navController = rememberNavController() NavHost( navController = navController, startDestination = "home", ) { composable("home") { Button(onClick = { navController.clearBackStack("details") navController.navigate("details") }) { Text(text = "abcde") } } composable("details") { Text(text = "12345") } } } } }

После нажатия откроется details с текстом "12345" без лишних записей details в стопке.

Пример

Давайте вернёмся на home и снова вызовем clearBackStack:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val navController = rememberNavController() NavHost( navController = navController, startDestination = "home", ) { composable("home") { Text(text = "abcde") } composable("details") { Button(onClick = { navController.clearBackStack("details") navController.popBackStack() }) { Text(text = "12345") } } } } } }

На details кнопка очистит стопку маршрута и popBackStack покажет home с "abcde".

Смотрите также

  • метод popBackStack,
    который снимает только верхний экран
  • метод popUpTo,
    который режет стопку при navigate
  • класс NavBackStackEntry,
    записи которого удаляет clearBackStack
  • метод navigate,
    который часто идёт после очистки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить