jetpack compose 在两个页面间切换

jetpack compose 在两个页面间切换:

  1. 创建两个Compose页面:定义两个简单的Composable函数,分别代表两个页面。

    kotlin 复制代码
    import androidx.compose.foundation.layout.Arrangement
    import androidx.compose.foundation.layout.Column
    import androidx.compose.foundation.layout.fillMaxSize
    import androidx.compose.material.Button
    import androidx.compose.material.Text
    import androidx.compose.runtime.Composable
    import androidx.compose.ui.Alignment
    import androidx.compose.ui.Modifier
    import androidx.navigation.NavController
    
    @Composable
    fun FirstPage(navController: NavController) {
        Column(
            modifier = Modifier.fillMaxSize(),
            horizontalAlignment = Alignment.CenterHorizontally,
            verticalArrangement = Arrangement.Center
        ) {
            Text("这是第一页")
            Button(onClick = { navController.navigate("second_page") }) {
                Text("去第二页")
            }
        }
    }
    
    @Composable
    fun SecondPage(navController: NavController) {
        Column(
            modifier = Modifier.fillMaxSize(),
            horizontalAlignment = Alignment.CenterHorizontally,
            verticalArrangement = Arrangement.Center
        ) {
            Text("这是第二页")
            Button(onClick = { navController.popBackStack() }) {
                Text("返回第一页")
            }
        }
    }
  2. 设置导航图 :使用NavHostNavController来管理页面切换。

    kotlin 复制代码
    import androidx.compose.runtime.Composable
    import androidx.navigation.compose.NavHost
    import androidx.navigation.compose.composable
    import androidx.navigation.compose.rememberNavController
    import com.treevalue.jetsnack.pages.FirstPage
    import com.treevalue.jetsnack.pages.SecondPage
    
    @Composable
    fun AppNavigation() {
        val navController = rememberNavController()
        NavHost(navController = navController, startDestination = "first_page") {
            composable("first_page") { FirstPage(navController) }
            composable("second_page") { SecondPage(navController) }
        }
    }
  3. 在主活动中使用 :主活动中调用AppNavigation

    kotlin 复制代码
    class MainActivity : ComponentActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContent {
                AppNavigation()
            }
        }
    }
相关推荐
YHL2 分钟前
🤖 Agent 智能体开发实战 · 第一课:Tool Use —— 让大模型自动干活
前端·javascript·人工智能
Monki4 分钟前
AI 规范式 UI 设计,一键批量出页,高效落地不翻车
前端
山河木马4 分钟前
渲染管线-计算得到gl_FragColor(片元着色器)之后续GPU流程
前端·webgl·计算机图形学
不想说话的麋鹿8 分钟前
「项目实战」我用 Codex + GPT-5.5 + Trellis "氛围编程",独立做了一个情侣厨房小程序
前端·agent·全栈
接着奏乐接着舞。1 小时前
【2026年7月最新】69道RAG面试题
前端·人工智能·后端·aigc·embedding·rag
以和为贵1 小时前
前端也能搞懂 Agent:从 Function Calling 到自主编排
前端·人工智能·架构
风止何安啊2 小时前
🚦 前端并发请求 “交通管制”:别让你的接口堵成早高峰
前端·javascript·面试
J船长2 小时前
扫盲烂笔头:A 记录、CNAME 的作用, Nginx的用途,为啥叫反向代理
前端
妙码生花2 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(二十六):icon 组件封装
前端·vue.js·typescript
李明卫杭州2 小时前
Vue2 & Vue3 中 Router `props` 配置详解:彻底摆脱 `$route` 依赖
前端·vue.js·前端框架