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

Функция rememberNavController

Функция rememberNavController создаёт контроллер навигации и хранит его между перерисовками Compose. Возвращает NavHostController, который передают в NavHost и вызывают у него navigate и другие методы базового NavController.

Синтаксис

val navController = rememberNavController()

Пример

Давайте создадим контроллер и передадим его в NavHost:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent 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") } } } } }

На экране откроется стартовый маршрут "home" с текстом "abcde".

Пример

Давайте добавим второй маршрут и перейдём на него:

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") { Text(text = "12345") } } } } }

На экране сначала будет кнопка с подписью "abcde", после нажатия откроется экран "details" с текстом "12345".

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

  • функция NavHost,
    куда передают контроллер и граф маршрутов
  • класс NavHostController,
    который возвращает rememberNavController
  • класс NavController,
    откуда контроллер берёт методы перехода
  • класс NavGraphBuilder,
    в лямбде которого описывают composable-маршруты
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить