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

Метод popBackStack

Метод popBackStack класса NavController снимает верхнюю NavBackStackEntry и показывает предыдущий экран. Возвращает true, если стопку удалось укоротить. Так закрывают details после navigate и dialog-маршруты.

Синтаксис

navController.popBackStack()

Пример

Давайте вернёмся с details на home по кнопке:

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.navigate("details") }) { Text(text = "abcde") } } composable("details") { Button(onClick = { navController.popBackStack() }) { Text(text = "12345") } } } } } }

После popBackStack снова виден home с кнопкой "abcde".

Пример

Давайте вызовем popBackStack из BackHandler:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.BackHandler 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.navigate("details") }) { Text(text = "abcde") } } composable("details") { BackHandler { navController.popBackStack() } Text(text = "12345") } } } } }

На details системная кнопка «назад» снимет экран и вернёт home.

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

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