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()
            }
        }
    }
相关推荐
king王一帅1 小时前
Incremark Solid 版本上线:Vue/React/Svelte/Solid 四大框架,统一体验
前端·javascript·人工智能
智航GIS6 小时前
10.4 Selenium:Web 自动化测试框架
前端·python·selenium·测试工具
前端工作日常6 小时前
我学习到的A2UI概念
前端
徐同保6 小时前
为什么修改 .gitignore 后还能提交
前端
一只小bit6 小时前
Qt 常用控件详解:按钮类 / 显示类 / 输入类属性、信号与实战示例
前端·c++·qt·gui
Mr -老鬼7 小时前
前端静态路由与动态路由:全维度总结与实践指南
前端
颜酱7 小时前
前端必备动态规划的10道经典题目
前端·后端·算法
wen__xvn8 小时前
代码随想录算法训练营DAY10第五章 栈与队列part01
java·前端·算法
大怪v8 小时前
前端佬们!!AI大势已来,未来的上限取决你的独特气质!恭请批阅!!
前端·程序员·ai编程
Mr -老鬼9 小时前
功能需求对前后端技术选型的横向建议
开发语言·前端·后端·前端框架