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()
            }
        }
    }
相关推荐
帧栈17 分钟前
开发避坑指南(70):Vue3 Http请求头携带token下载pdf文件解决方案
前端·vue.js
h***066524 分钟前
项目升级Sass版本或升级Element Plus版本遇到的问题
前端·rust·sass
凌波粒43 分钟前
CSS基础详解(1)
前端·css
IT_陈寒2 小时前
Spring Boot 3.2 性能翻倍秘诀:这5个配置优化让你的应用起飞🚀
前端·人工智能·后端
b***67642 小时前
【JavaEE】Spring Web MVC
前端·spring·java-ee
Mintopia2 小时前
🧭 Claude Code 用户工作区最佳实践指南
前端·人工智能·claude
一 乐3 小时前
健身达人小程序|基于java+vue健身达人小程序的系统设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·小程序
笑醉踏歌行5 小时前
NVM 在安装老版本 Node环境时,无法安装 NPM的问题
前端·npm·node.js
YUJIANYUE5 小时前
Gemini一次成型龙跟随鼠标html5+canvas特效
前端·计算机外设·html5
abiao19815 小时前
npm WARN ERESOLVE overriding peer dependency
前端·npm·node.js