Получить текущий экран в навигационной безопасности Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Получить текущий экран в навигационной безопасности Jetpack Compose

Сообщение Anonymous »

Экраны

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

@Serializable
sealed class Screen {
@Serializable
data object Home : Screen()

@Serializable
data class Profile(val name: String) : Screen()
}
Настройка навигации

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

@Composable
fun AppNavigation(
modifier: Modifier = Modifier,
startDestination: Screen = Screen.Home,
navController: NavHostController = rememberNavController()
) {
val currentNavBackStackEntry: NavBackStackEntry? by navController.currentBackStackEntryAsState()

// Error
val currentScreen: Screen = currentNavBackStackEntry?.toRoute() ?: Screen.Home

val navGraph = navController.createGraph(
startDestination = startDestination,
) {
composable {
HomeScreen(onNavigateToProfile = { navController.navigate(it) })
}
composable { navBackStackEntry ->
val profile = navBackStackEntry.toRoute()
ProfileScreen(name = profile.name)
}
}

NavHost(navController = navController, graph = navGraph, modifier = modifier)
}
Я пытаюсь получить текущий экран из набора реактивного ранца навигационного типа. Но toRoute() используется только с маршрутами в навигационном графе.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ck-compose
Ответить

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

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

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

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

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