philipy355 / inflearn-compose

0 stars 0 forks source link

docs : navigation, 화면전환, navBackStackEntry (#3) #11

Closed philipy355 closed 8 months ago

philipy355 commented 8 months ago
class MainActivity : ComponentActivity() {
    @OptIn(ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class)
    @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter",
        "UnusedMaterialScaffoldPaddingParameter"
    )
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            val navController = rememberNavController()

            NavHost(navController = navController, startDestination = "first",){
                composable("first"){
                    FirstScreen(navController)
                }
                composable("second"){
                    SecondScreen(navController)
                }
                composable("third/{value}"){
                    navBackStackEntry ->
                    ThirdScreen(
                        navController = navController,
                        value = navBackStackEntry.arguments?.getString("value") ?: "")
                }
            }
        }
    }
}

@Composable fun SecondScreen(navController: NavController){ Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ){ Text(text = "두번째 화면") Spacer(modifier = Modifier.height(16.dp)) Button(onClick = { //navController.navigate("first") navController.navigateUp() //navController.popBackStack() }){ Text("뒤로가기!") } } }

@Composable fun ThirdScreen(navController: NavController, value: String){ Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally, ){ Text(text = "세번째 화면") Spacer(modifier = Modifier.height(16.dp)) Text(value) Button(onClick = { navController.navigateUp() }){ Text("뒤로가기") } } }


- 의존성
```xml
    //Navigation
    implementation "androidx.navigation:navigation-compose:2.4.0-alpha10"
philipy355 commented 8 months ago

참고 url https://mvnrepository.com/artifact/androidx.navigation/navigation-compose/2.4.0