android compose Navigation 导航 使用

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 = "返回")
            }
        }
    }
}
相关推荐
杉氧5 小时前
Navigation Compose 深度实践:如何优雅地串联起你的全栈 App?
android·架构·android jetpack
唐青枫8 小时前
Kotlin 运算符重载详解:为什么 a += b 有时改对象,有时换对象?
kotlin
雨白9 小时前
指针与数组的核心机制
android
黄林晴13 小时前
Room 3.0 正式发布!包名彻底重构,KMP 成为核心主线
android·android jetpack
三少爷的鞋14 小时前
Kotlin 协程环境下的 DCL 懒加载:别把线程时代的经验直接搬过来
android
plainGeekDev14 小时前
Gson → kotlinx.serialization
android·java·kotlin
CYY951 天前
Compose 入门篇
android·kotlin
杉氧1 天前
Compose 时代的 MVI 架构:如何用单向数据流驱动复杂 UI?
android·架构·android jetpack
杉氧1 天前
Modifier 的艺术:为什么链式调用的顺序决定了UI 的生命周期?
android·架构·android jetpack