Jetpack Compose之 在Compose中使用Navigation导航(1)

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

}

}

PageOne页面中有个按钮,点击按钮跳转到页面2,为了便于区分,添加一个Text用来显示当前页面内容。

接着来看PageTwo的代码,如下所示:

@Composable

fun PageTwo() {

Column(

modifier = Modifier

.fillMaxWidth()

.fillMaxHeight()

.background(

Color.White

)

) {

Text(text = “这是页面2”)

Spacer(modifier = Modifier.height(20.dp))

Button(onClick = {

//点击返回页面1

}) {

Text(

text = “返回页面1”,

modifier = Modifier.fillMaxWidth(),

textAlign = TextAlign.Center

)

}

}

}

MainActivity代码如下所示:

setContent {

NavigationTheme {

// A surface container using the ‘background’ color from the theme

Surface(color = MaterialTheme.colors.background) {

PageOne()

}

}

}

运行程序,显示出页面1 ,如图所示。

接下来我们来看,如何使用navigation来进行页面导航呢?

定义NavHost


首先我们定义一个NavHost对象

@Composable

fun NavHostDemo() {

NavHost(navController =, startDestination =) {

}

}

NavHost对象需要两个必传参数,一个是NavController,一个是起始路由地址,NavController 对象是 Navigation 组件的中心 API,我们可以通过 rememberNavController创建,代码如下所示:

val navController = rememberNavController()

为了便于管理路由地址,我们新建RouteConfig配置文件,代码如下所示:

object RouteConfig {

/**

* 页面1路由

*/

const val ROUTE_PAGEONE = “pageOne”

/**

* 页面1路由

*/

const val ROUTE_PAGETWO = “pageTwo”

}

在这里,将页面1路由设置为起始导航,并使用composable方法添加导航对应关系,修改后的NavHostDemo代码如下所示:

@Composable

fun NavHostDemo() {

val navControlle

低速信号设计之 ESPI 篇 ESPI 是 Intel 推出的增强型串行外设接口,基于 SPI 发展而来,新增 Reset# 和 Alert# 信号,采用点对点主从通信模型,最高速率达 33MHz,支持半双工与 DMA 传输。 其物理接口含 10 条线路,通信协议分物理层、数据链路层等四层。布局布线需关注信号完整性、电源完整性,还得考虑与 SPI 的兼容性。 ESPI 广泛应用于计算机系统(连接 BIOS、电源管理器等)和工业控制领域,具有引脚少、功耗低等优势,但设计复杂且存在兼容性挑战。 阅读详情

相关推荐

Jetpack Compose使用Navigation导航的两种方式

Jetpack compose使用Navigation导航的两种方式

虎哥LoveDroid 1207

Jetpack Compose中的Navigation从入门到精通完全指南

导航帮助您理解应用程序在不同组件间的移动方式。Android JetPack Navigation可以帮助您以简单的方式实现高级导航导航组件由三个主要部分组成:导航(Navigation Graph): 这是一个资源,它将所有与导航相关的数据集中在一起。这包括应用程序中的所有位置(称为目位置)以及用户在应用程序中可能采取的路径。它就像一本大书,里面包含了您在应用程序中可以访问的所有地方以及如何在它们之间移动的方法。可以将其视为地图和指南的结合。

虎哥LoveDroid 6305

基于Dijkstra算法的共享单车调度优化系统设计与实现

根据最新统计数据,全球共享单车市场规模已超过300亿美元,中国作为最大的共享单车市场,日订单量超过5000万次。Dijkstra算法由荷兰计算机科学家Edsger W. Dijkstra于1956年提出,用于解决带权有向图中的单源最短路径问题。本文详细介绍了基于Dijkstra算法的共享单车调度优化系统的设计与实现。本文将详细介绍基于Dijkstra算法的共享单车调度优化系统的设计与实现,采用Java 17、Spring Boot 3.x等最新技术栈。

2201_76125393的博客 570

Jetpack Compose中的导航路由

Jetpack Compose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持,Jetpack Compose中的Navigation在功能上跟jetpack组件库中对Fragment的导航使用方式很类似,但是使用Compose的好处是,它是纯kotlin的代码控制,不需要在xml再去配置,一切都是在kotlin代码中进行控制,更加方便灵活了。

川峰的博客 4962

【译】体验在Jetpack Compose使用Navigation

通过本文你会了解到怎么在Jetpack Compose里面使用Navigation。你还会了解到在navigate的时候怎么传递基础类型和自定义类型数据。 注意:Jetpack Compose最近已经发布了beta版本。这就意味着API的结构不会有太大的变动了。因此,现在这是学习怎么用Android开发下一代UI工具的时候了。Navigation是android开发的核心内容之一,所以你就好好看看本文吧。 使用Jetpack Compose Beta版本需要使用Android Studio Canary

Code1994的博客 1259

ComposeUI - Jetpack Compose 组件库

Jetpack Compose UI 是一个基于 Jetpack Compose 的 Android 组件库,包含 12 大类 70+ 组件,采用 Material3 设计系统和 Kotlin 语言开发。项目采用模块化结构,涵盖基础组件(徽、加载动画、进度条等)、表单组件(按钮、开关、输入框等)、反馈组件(Toast、对话框、弹窗等)以及媒体组件(相机、相册、音频播放等)。技术栈包括 Compose 1.6.5、Kotlin 1.9.22、Gradle 8.7,最低支持 Android 7.0(API 2

jacky choise 497

Android Jetpack Compose 的所有核心组件(大全)

摘要:Android Jetpack Compose核心组件体系分为7大类:1.基础UI组件(Text/Image等)替代传统View控件;2.布局组件(Column/LazyColumn等)构建界面结构,其中懒加载布局优化列表性能;3.交互组件(按钮/输入框/选择器等)处理用户操作;4.容器组件(卡片/弹窗等)增强样式功能;5.导航组件实现页面跳转;6.动画组件提升交互体验;7.辅助工具(状态管理/无障碍等)。开发者应优先掌握基础组件,结合Lazy系列优化列表性能,并善用ConstraintLayout处

fuge2008的博客 825

开发日志二:《BabyMind 前端架构 | 从零搭建 Jetpack Compose 项目》

Jetpack Compose开发育儿App实践摘要:本文介绍了使用Jetpack Compose开发育儿App的技术实践。相比传统XML方式,Compose具有代码精简、状态驱动和组件复用等优势。项目采用功能模块化分包结构,使用低饱和马卡龙色系打造柔和UI风格,

2301_79614936的博客 219

Jetpack Compose之 在Compose使用Navigation导航

前言 大约在一年半前,我发布了Compose的第一篇文章Jetpack Compose开篇 之 HelloWorld,连我自己也没想到,这一年半的时间我竟再也没有看过Compose..., 如今Compose已经发布了稳定版本,还没学会Compose让我的头发又白了许多。 //这里放歌表情包 使用NavigationCompose导航 如果你之前不喜欢Android提倡的”单Activity“应用,那么在Compose中详细你会慢慢习惯的。 在此示例中有两个页面PageOne和PageTwo.

黄林晴 6834

Jetpack Compose 页面跳转 - 导航Navigation使用和封装

当我们在项目中使用Jetpack Compose进行页面编写的时候,在进行页面跳转时,官方推荐使用,当然老的多Activity方式仍能正常使用,只是Activity间的跳转消耗资源大,效率没有Compose间页面跳转的效率高,故推荐使用单Activity + 多Compose模式,本文主要介绍单Activity多Compose页面跳转的导航实现。

sziitjin的博客 2521

写给初学者的Jetpack Compose教程,Navigation

本文介绍了Jetpack Compose中实现页面跳转的两种方法:使用State技术和Navigation组件。首先通过定义三个简单页面ScreenA、B、C,演示了如何利用State控制当前显示的页面。随后重点讲解了Navigation 2的基本用法,包括创建NavController、定义路由和使用NavHost构建导航图。文章强调Navigation能提供完整的页面导航能力,而不仅是简单的跳转功能,并指出后续将介绍更先进的Navigation 3版本。适合已经掌握Compose基础并希望实现多页面导航

郭霖的专栏 1万+

Jetpack Compose遇到Navigation

很多Android项目使用Jetpack Navigation进行页面切换。Navigation在设计上高度抽象,只负责导航逻辑不关心页面的具体实现,无论是Activity、Fragment甚至是一个已定义View都可以基于Navigation实现导航。当然,Composable也是可以的。 Jetpack Compose作为一个声明式UI框架经常拿来与React 、Flutter等作对比,但是遗憾的是Compose一直缺少其他框架的导航机制,现在使用Jetpack自家的Navigation,可以将Com.

移动端开发干货分享 4284

Jetpack Compose入门详解

Jetpack Compose入门详解 前排提醒🥯 前言(Compose是什么)🧇 1.实战准备 一、优势与缺点🍞 二、前四课🥐 三、准布局组件🥖 1.Column 2.Row 3.Box 四、xml和compose混合使用 + livedata数据绑定🥨 1.xml和compose混合使用 a.xml中使用compose b.compose使用view 2.livedata数据绑定 五.compose结合navigation使用🥞 1.集成导航 2.传递参数 3.深层链接 .....

我怀里的猫的博客 2万+

Jetpack篇之 Compose Navigation 全指南

本文全面介绍了Jetpack Compose Navigation在现代Android应用开发中的核心应用。主要内容包括:1. 基础配置:解析NavController、NavGraph等核心组件,展示导航图的创建流程;2. 参数传递:详解路径参数、查询参数等三种传递方式及类型安全实现方案;3. 高级特性:涵盖嵌套导航、深层链接和自定义动画等进阶功能;4. 最佳实践:提供状态管理、重组优化及与Hilt集成的解决方案。文章强调Compose Navigation通过声明式API简化了导航逻辑,相比传统方式具有

weixin_37794278的博客 1526

写给初学者的Jetpack Compose教程,Navigation 3

Jetpack Compose导航Navigation 3教程更新,对比Navigation 2有重大变化。文章介绍了Navigation 3的两大核心改进:1) 导航返回栈完全由开发者控制,提供更高自由度;2) 支持多设备适配,可同时适配手机和平板。教程包含准备工作指南,详细展示了如何配置依赖库,并通过商品列表/详情页示例演示基础用法。Navigation 3完全重写了API,建议先了解Navigation 2再学习新版。文章还预告后续将深入讲解多屏适配等高级功能。

郭霖的专栏 9126

Jetpack-Compose之四 页面跳转(导航)

导航实际上就是页面跳转,因为Compose中每一个@Composable注解注的方法就可以成为一个视图,所以导航就是用来处理这些视图之间的跳转操作。 Navigation在设计上高度抽象,只负责导航逻辑不关心页面的具体实现,无论是Activity、Fragment甚至是一个已定义View都可以基于Navigation实现导航。当然,Composable也是可以的。

XBlithe的博客 1万+

运营商BOSS业务IT支撑系统介绍.pptx

运营商BOSS业务IT支撑系统介绍.pptx

上一篇: Flutter完整开发实战详解(六、 深入Widget原理)
下一篇: Retrofit-+-RxJava-+-OkHttp-让网络请求变的简单-封装篇
网眼查一cc
博客等级 码龄4年 2494粉丝 · 235原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值