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()
            }
        }
    }
相关推荐
SoaringHeart1 小时前
Flutter进阶:用OverlayEntry 实现所有弹窗效果
前端·flutter
IT_陈寒3 小时前
Vite静态资源加载把我坑惨了
前端·人工智能·后端
herinspace3 小时前
管家婆实用贴-如何分离和附加数据库
开发语言·前端·javascript·数据库·语音识别
小码哥_常4 小时前
从MVC到MVI:一文吃透架构模式进化史
前端
嗷o嗷o4 小时前
Android BLE 的 notify 和 indicate 到底有什么区别
前端
豹哥学前端4 小时前
别再背“var 提升,let/const 不提升”了:揭开暂时性死区的真实面目
前端·面试
lar_slw4 小时前
k8s部署前端项目
前端·容器·kubernetes
拉拉肥_King4 小时前
Ant Design Table 横向滚动条神秘消失?我是如何一步步找到真凶的
前端·javascript
GreenTea4 小时前
DeepSeek-V4 技术报告深度分析:基础研究创新全景
前端·人工智能·后端
河阿里5 小时前
HTML5标准完全教学手册
前端·html·html5