Android Compose页面跳转Demo

server/2024/10/19 9:36:50/

1.引入依赖

//jetpack compose导航

implementation("androidx.navigation:navigation-compose:2.5.3")

2.代码

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.sp
import androidx.navigation.NavController
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavControllerclass MainActivity : ComponentActivity() {private lateinit var mNavController: NavControlleroverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {//创建导航控制器mNavController = rememberNavController()//创建NavHost导航组建者,传入了mNavController 导航控制器 与 首个显示的页面 startDestination = APageNavHost(navController = mNavController as NavHostController, startDestination = "APage") {//这里添加了页面A,APage为路由地址composable(route = "APage") { APage() }composable(route = "BPage") { BPage() }}}}/*** 页面A*/@Composablefun APage() {Column(Modifier.fillMaxSize(),horizontalAlignment = Alignment.CenterHorizontally,verticalArrangement = Arrangement.Center) {Button(onClick = { mNavController.navigate("BPage") }) {Text(text = "页面A: 点击跳转页面B", fontSize = 30.sp)}}}/*** 页面B*/@Composablefun BPage() {Column(Modifier.fillMaxSize(),horizontalAlignment = Alignment.CenterHorizontally,verticalArrangement = Arrangement.Center) {Button(onClick = { mNavController.navigateUp() }) {Text(text = "页面B: 点击返回页面A", fontSize = 30.sp)}}}}

http://www.ppmy.cn/server/23991.html

相关文章

强化学习Upper Confidence Bound策略笔记

UCB是一种强大的探索策略,它通过对每个动作的置信界限进行估计,在探索和利用之间取得平衡,以找到最优的动作选择策略。 Upper Confidence Bound(UCB,上置信界限)是一种用于解决多臂机问题的探索策略。它的核…

Java---数据类型与变量

1.字面常量 字面常量就是我们经常所说的常量,常量即在程序运行期间,固定不变的量。且常量是无法改变的,如果我们的代码有改变常量的操作,程序就会报错。 1.1字面常量的分类 字符串常量,整型常量,浮点数常…

鸿蒙开发实战:鸿蒙应用开发中的页面管理工具类详解

一、引言 在鸿蒙应用开发的征程中,如何高效地管理页面布局与显示,以满足用户对于沉浸式体验、个性化StatusBar颜色等界面特性的需求,一直是开发者们关注的焦点。为此,我特别设计了一款实用的“页面管理工具类”,它具备强大的功能,能帮助开发者轻松应对各种页面管理挑战。…

stable diffusion 的controlNet 安装和使用

stable diffusion 安装controlNet需要先下载扩展 扩展地址 下载了扩展以后,需要下载相应的模型,每个模型大约1.45G,可以按需下载。 模型地址 如果下载速度太慢,可以考虑去liblib下载,但是是全量模型 liblib 模型下载完后&#…

四、交换机高级特性

目录 1.MUX-VLAN 2.端口隔离 ①二层端口隔离 ②三层端口隔离 3.ARP代理 4.Super-VLAN(VLAN聚合) 5.QinQ 基于接口的 QinQ 封装(基本QinQ、QinQ二层隧道)(不常用) 基于流的 QinQ 封装(灵…

elementui el-date-picker禁止选择今年、今天、之前、时间范围限制18个月

1、禁止选择今年之前的所有年份 <el-date-pickerv-if"tabsActive 0":clearable"false"v-model"yearValue"change"yearTimeChange"type"year"placeholder"选择年"value-format"yyyy":picker-options…

Git的基本概念和使用方式

Git 是一个分布式版本控制系统&#xff0c;用于跟踪文件的变化并协调多人在同一个项目中的工作。它可以帮助团队协作开发&#xff0c;管理代码版本&#xff0c;以及追踪文件的修改历史。 Git 的基本概念包括仓库&#xff08;repository&#xff09;、分支&#xff08;branch&a…

基于SpringBoot+Vue高校宣讲会管理系统设计与实现

项目介绍&#xff1a; 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装高校宣讲会管理系统软件来发挥其高效地信息…