状態の保持
状態はrememberで保持できるが画面回転やプロセス終了で状態破棄されるので保持したい場合はrememberSaveableを使う。
MyApp内での分岐にshouldShowOnboardingを使いたいので定義自体はMyApp内に保持してOnboardingScreenにメソッドを渡す→ボタンのonClickで更新を実装。
@Composable fun MyApp(modifier: Modifier = Modifier) { var shouldShowOnboarding by rememberSaveable { mutableStateOf(true) } Surface(modifier) { if (shouldShowOnboarding) { OnboardingScreen(onContinueClicked = { shouldShowOnboarding = false }) } else { Greetings() } } } @Composable fun OnboardingScreen( onContinueClicked: () -> Unit, modifier: Modifier = Modifier ) { Column( modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Text("Welcome to the Basics Codelab!") Button( modifier = Modifier.padding(vertical = 24.dp), onClick = onContinueClicked ) { Text("Continue") } } }