Как восстановить состояние с помощью вложенного NavHostController в Android ComposeAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как восстановить состояние с помощью вложенного NavHostController в Android Compose

Сообщение Anonymous »


In my current project I have the problem that the first restore state attempt (triggered via popBackStack) failed. The navigation after that first failure is working fine and the app manages to restore all states afterwards fine.

// MainActivity val appCoordinator = AppCoordinator(rememberNavController()) val mainCoordinator = MainCoordinator() NavHost( navController = appCoordinator.getController(), startDestination = "MAIN", ) { composable("MAIN") { MainView(appCoordinator, mainCoordinator) } composable("SECOND"){ SecondView(appCoordinator) } } // MainView basically mainCoordinator.setNavController(rememberNavController()) Scaffold( bottomBar = { BottomNavigation(mainCoordinator) } ) { padding -> NavHost( modifier = Modifier.padding(padding), navController = mainCoordinator.getNavController(), startDestination = mainCoordinator.getStartDestination().route ) { composable("MAIN-FEED") { FeedView() } composable("MAIN-TEST") { TestView(appCoordinator) } } } // Main Coordinator when some bottom nav icon is pressed navController.navigate(bottomNavScreen.route) { launchSingleTop = true restoreState = true popUpTo(findStartDestination(navController.graph).id) { saveState = true } } // App Coordinator //when "go to second" button on TestView "MAIN-TEST" is pressed navController.navigate("SECOND") //when back back button on SECOND Component is pressed navController.popBackStack() In my FeedView I have a Column with multiple LazyRows. So I can scroll up or down and also within a LazyRow sideways. When switching with the bottom nav icons I can at some point go back to the FeedView and the scroll position for the column and the lazyRows are the same. But when I open the SECOND component and go back to MAIN component the FeedView is not shown. When switching to TestView and back to FeedView the view is shown but with all scroll positions reset. But when doing the same procedure again everything works like charm.

Does someone has an idea why and how to fix that?


Источник: https://stackoverflow.com/questions/780 ... id-compose
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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