Сохранение состояния экрана A при переходе от экрана A к экрану B и обратно к экрану A с помощью Android Navigation ⇐ Android
Сохранение состояния экрана A при переходе от экрана A к экрану B и обратно к экрану A с помощью Android Navigation
Я пытаюсь разобраться в навигации Android. Я использую androidx.navigation:navigation-compose:2.7.0 Предположим, мне нужны экраны, экран A и экран B. И, скажем, экран A имеет какое-то состояние, например. счетчик. Как мне запрограммировать его так, чтобы при переходе от экрана A к экрану B и обратно счетчик экрана A показывал то же значение, которое он показывал при переходе от A к B?
Я думал, что до тех пор, пока я не вытащил экран из стека навигации, его состояние сохранится, в чем я ошибаюсь?
Например, этот навигационный график:
fun Navigation(navController: NavHostController) { NavHost(navController = navController, startDestination = Screens.Screen1.title) { составной (маршрут = Screens.Screen1.title) { вал viewModel = ScreenViewModel() Screen1(viewModel, count = viewModel.count.collectAsState()) } компонуемый (маршрут = Screens.Screen2.title) { Экран2( onButtonClick = { navController.navigateUp() } ) } } } с этими двумя составными объектами в качестве пунктов назначения навигации:
@Composable fun Screen1 (viewModel: ScreenViewModel, count: State) { Столбец { Кнопка(onClick = {viewModel.onButtonPressed()}) { Текст("Счетчик") } Текст(count.value.toString()) } } @Композитный fun Screen2(onButtonClick: () -> Unit) { Столбец { Кнопка (onClick = onButtonClick) { Текст (текст = «вернуться») } } }
Я пытаюсь разобраться в навигации Android. Я использую androidx.navigation:navigation-compose:2.7.0 Предположим, мне нужны экраны, экран A и экран B. И, скажем, экран A имеет какое-то состояние, например. счетчик. Как мне запрограммировать его так, чтобы при переходе от экрана A к экрану B и обратно счетчик экрана A показывал то же значение, которое он показывал при переходе от A к B?
Я думал, что до тех пор, пока я не вытащил экран из стека навигации, его состояние сохранится, в чем я ошибаюсь?
Например, этот навигационный график:
fun Navigation(navController: NavHostController) { NavHost(navController = navController, startDestination = Screens.Screen1.title) { составной (маршрут = Screens.Screen1.title) { вал viewModel = ScreenViewModel() Screen1(viewModel, count = viewModel.count.collectAsState()) } компонуемый (маршрут = Screens.Screen2.title) { Экран2( onButtonClick = { navController.navigateUp() } ) } } } с этими двумя составными объектами в качестве пунктов назначения навигации:
@Composable fun Screen1 (viewModel: ScreenViewModel, count: State) { Столбец { Кнопка(onClick = {viewModel.onButtonPressed()}) { Текст("Счетчик") } Текст(count.value.toString()) } } @Композитный fun Screen2(onButtonClick: () -> Unit) { Столбец { Кнопка (onClick = onButtonClick) { Текст (текст = «вернуться») } } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Dataverse — сохранение кода состояния и кода состояния в процессе миграции.
Anonymous » » в форуме C# - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Dataverse — сохранение кода состояния и кода состояния в процессе миграции.
Anonymous » » в форуме C# - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-