Android Compose页面跳转Demo

news/2024/12/21 20:31:41/

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/news/1434720.html

相关文章

Day43:LeedCode 1049. 最后一块石头的重量 II 494. 目标和 474.一和零

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…

微信小程序手机授权报错:pad block corrupted

微信小程序手机号授权登录&#xff0c;传参至后台解密&#xff0c;大概率都会成功&#xff0c;但是&#xff0c;偶尔会遇到解密失败&#xff0c;报错信息为&#xff1a; javax.crypto.BadPaddingException: pad block corrupted&#xff1b;在此记录一下解决方案。 更改前获取…

excel相同行不同列查询

EXCEL中e列和f列是每一行对应的&#xff0c;我想在d列中找和e列一样的元素&#xff0c;然后获取同一行中f列的值 IFERROR(VLOOKUP(D1, E:F, 2, FALSE), "")

python之singledispatch单分派问题

singledispathch是Pyhton的functools里的方法&#xff0c;在使用时&#xff0c;一般当做装饰器。 作用&#xff1a;类似c中的重载&#xff0c;一个函数提供多种实现&#xff0c;根据参数类型的不同&#xff0c;调用不同的实现。 使用方法&#xff1a; 1. 必须有一个基函数&a…

前端css中filter(滤镜)的使用

前端css中filter的使用 一、前言二、补充内容说明三、模糊&#xff08;一&#xff09;、模糊效果&#xff0c;源码1&#xff08;二&#xff09;、源码1运行效果1.视频演示2.截图演示 四、阴影&#xff08;一&#xff09;、阴影效果&#xff0c;源码2&#xff08;二&#xff09;…

【Java | 多线程】可重入锁的概念以及示例

什么是可重入锁&#xff08;Reentrant Lock&#xff09;&#xff1f; 可重入锁&#xff08;又名递归锁&#xff09;是一种特殊类型的锁&#xff0c;它允许同一个线程在获取锁后再次进入该锁保护的代码块或方法&#xff0c;而不需要重新获取锁。 说白了&#xff0c;可重入锁的…

Python第五章之集合,切片,推导式,公共方法

集合 Set set 被称为集合, 是无序的, 并且集合中的元素都是唯一的 1. 集合的创建 s {"zs", "ls", "ww"} print(p) 打印的结果是不固定, 所以集合无序 结果为 : {"ww", "zs", "ls"} s {"zs", &quo…

Laravel 6 - 第十三章 请求

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …