@Composable
fun FlutterScreen(route: String) {
AndroidFragment<SimpleFlutterFragment>(
arguments = SimpleFlutterFragment.buildRoute(route)
)
}
NavHost(navController = navController, startDestination = "main") {
composable<Main> { MainScreen() }
composable<Flutter> { FlutterScreen(it.toRoute()) }
}
I want to keep ui without recomposition/redraw while navigate back or display FlutterScreen again
@Composable
fun MainScreen(vm: NavigationVM = viewModel()) {
val navUiState by vm.navState.collectAsState()
val state = rememberSaveableStateHolder()
when (navUiState.bottomIndex) {
0 -> {
state.SaveableStateProvider("home") { HomeScreen() }
}
1 -> {
state.SaveableStateProvider("flutter") { FlutterScreen() }
}
}
}
I am trying to use SaveableStateHolder, it can holding HomeScreen state but not working on FlutterScreen.