android compose Navigation 导航 使用

/**
* Author : wn
* Email : maoning20080809@163.com
* Date : 2026/1/5 20:37
* Description : Navigation 导航
*/
class NavigationActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
testNavigation()
}
}
@Preview
@Composable
private fun testNavigation(){
val navController = rememberNavController()
NavHost(navController = navController, startDestination = "home"){
composable("home") {
testHomeScreen(navController)
}
composable("detail") {
testDetailsScreen(navController)
}
}
}
@Composable
private fun testHomeScreen(navController: NavController){
Column(modifier = Modifier.fillMaxWidth(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally) {
Spacer(modifier = Modifier.height(20.dp))
Text(text = "Navigation导航", fontSize = 30.sp)
Spacer(modifier = Modifier.height(20.dp))
Button(onClick = {
navController.navigate("detail")
}) {
Text(text = "跳转到详细页")
}
}
}
@Composable
private fun testDetailsScreen(navController: NavController){
Column(modifier = Modifier.fillMaxSize().background(Color.Green),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally){
Text(text = "详细页面")
Button(onClick = {
navController.popBackStack()
}) {
Text(text = "返回")
}
}
}
}