首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在应用中导航时使用 SafeArgs | MAD Skills

如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 这篇文章主要介绍 SafeArgs,它属于导航组件,并且可以在应用不同的目的地 (界面) 之间提供更加便捷的数据传递功能。...简介 您在应用中导航到不同目的地的时候,可能会需要传递数据。...这里我们也可以使用同样的方式,为要传递的数据创建一个 Bundle,然后在接收侧数据提取出来。 不过导航组件有更好的方法: SafeArgs。...为了向大家展示 SafeArgs 的效果,我继续使用之前在 Dialog Destinations 演示过的 Donut Tracker (甜甜圈追踪) 应用。...SafeArgs 导航组件的其它模块不太一样,它本身并不是一个 API,而是一个可以生成代码的 gradle 插件。

1.5K20

使用导航组件: 条件导航 | MAD Skills

这是第二个关于导航 (Navigation) 的 MAD Skills 系列,本文是导航组件系列的第二篇文章,如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航时使用...SafeArgs 使用深层链接导航 打造您的首个 app bundle 深入浅出 NavigationUI 如果您更倾向于观看视频而非阅读文章,请查看 这个视频 内容。...在本文中,我通过添加条件导航来修复这个问题,并且当用户首次启用应用时指导我们的用户做出选择。...如果您跟着文章一起操作,也可以检出仓库中的代码。...通过条件导航,当用户首次启动 DonutTracker 应用时,应用触发一次流程,将用户导航至 SelectionFragment。

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

导航组件概览 | MAD Skills

有了导航组件后,我们可以使用其标准化的 API 以及 IDE 中的可视化工具,这些都可以帮助我们使整个导航流程更清晰、更简单以及更统一。...之后,您可以添加相关代码,使用户应用的交互对应到合适的导航操作 (action) 上。 让我们来创建一个应用,并通过实际的工具代码来体验一下导航组件。...导航模板 自 3.6 版本后,Android Studio 包含了一个非常有用的新功能,这就是导航整合到创建新应用的模板中。...这一功能并不是使用导航组件库所必须的,但它可以帮助集合所有必要的模块,从而极大地简化了创建新应用时使用导航的流程。 ? 我们将使用这些模板之一的 Basic Activity 模板来创建一个新应用。...这是因为导航组件自动绑定了菜单项对应的目的地,所以您不必手动编写代码来创建这些链接。 让我们来看一下使这一切成功运转的 UI 层次结构。

1.6K30

深入浅出 NavigationUI | MAD Skills

这是第二个关于导航 (Navigation) 的 MAD Skills 系列,如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航时使用 SafeArgs 使用深层链接导航..."支配" 菜单项了,我 MenuItem 的 id 之前所创建的目的页面的 id 进行了匹配。...这样,导航组件就可以 MenuItem 目的页面进行关联。...setupWithNavController(navController) } 现在当我在屏幕较宽的设备上运行应用时,可以看到抽屉式导航栏已经设置了 MenuItem,并且在导航图中,MenuItem...我们无需进行多余的操作,仅需添加 UI 组件,并且匹配 MenuItem 的 id 目的页面的 id。您可以查阅 完整代码,并且通过 main starter 分支的 比较,观察代码的变化。

3K30

为您的应用配置 Play Feature Delivery

如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航时使用 SafeArgs 使用深层链接导航 打造您的首个 app bundle 在 "MAD Skills" 系列文章中...建立基本模块 使用功能模块开始模块化一个应用的时候,您的基本模块是**安装时模块 (install-time modules)**,此时您已经可以从诸如构建速度以及工程开发速度的提升中获益。...首次安装时,像这样配置的模块会被默认安装。 每个安装时模块都会被融合进基本模块,这也使他们变成不可移除的。如果您想以后可以移除安装时模块,您需要设置其 removable 的属性值为 true。...有些模块很占存储空间,且只有初始安装应用时有用,一旦完成就不再需要,比如新手教程注册流程等。对于这些模块来说,模块卸载会非常有用。...您想设置某个功能在某些特定的国家不可用时,请确保设置 dist:exclude="false"。如果您想让一个功能只在某个国家可用,请设置该值为 true。

76320

使用导航组件: 对话框目的地 | MAD Skills

导航组件默认的行为确实是替换掉 NavHostFragment 中的 fragment。但是导航组件同样可以处理在 NavHostFragment 之外的对话框目的地。...其次,我们从 FAB 导航时 (不需要传递参数给 Directions 对象) 调用 navigate() 方法从甜甜圈列表中任一列表项导航时 (需要传递 donut.id) 不太一样。...这个区别可以让我们决定究竟是创建一个新甜甜圈 (没有传递参数) 还是编辑已有的甜甜圈 (传递了 donut.id)。(剧透警告: 我会在接下来的文章中介绍这一主题,您也可以同时查阅 完整代码。)...点击任一甜甜圈会导航到编辑其信息的对话框 点击 DONE 按钮,保存更改到数据库中并且返回更新的列表;而点击 CANCEL 按钮,放弃掉所有的编辑并返回。...注意: 点击返回按钮,同样会返回甜甜圈列表,因为导航组件已经自动为我们设置好了返回栈。 总结 通过这篇文章我们了解了如何使用内置的导航组件快速地创建一个新应用,并且学习了如何导航到对话框目的地。

1.4K30

提高阅读代码效率神器 Sourcetrail

“查找所有引用”可帮助您在文件之间导航,但不能提供上下文以查看所有相关依赖项的概况。...Sourcetrail通过交互式依赖关系图,简洁的代码视图高效的代码搜索结合在一起,提供了概述详细信息,所有这些都优于其它开发工具。它支持您探索遗留代码,理解实现并重构软件体系结构。...源代码中的每一行都有其用途,作为软件开发人员,我们花费大部分时间搜索当前相关的小片段。为什么不退后一步,看看组件之间是如何连接的,而又不经常查看代码的每个细节?...当然,每个开发人员都有自己的策略,可以从源代码中查找信息,从搜索文档到查看测试,或在可用时询问原始作者。但是,您用尽所有这些选项时,不可避免地要遍历代码。...我们希望您遇到Sourcetrail,这是一种轻量级的代码可视化工具,专门用于在源代码中进行快速而全面的导航

2K20

导航: 嵌套导航 | MAD Skills

这是第二个关于导航 (Navigation) 的 MAD Skills 系列,本文是导航组件系列的第三篇文章,如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航时使用...SafeArgs 使用深层链接导航 打造您的首个 app bundle 深入浅出 NavigationUI 使用导航组件: 条件导航 如果您更倾向于观看视频而非阅读文章,请 点击这里 查看视频内容。...虽然使用 include 标签在功能上使用嵌套图相同,但您还可以使用其他项目模块或者库项目的图。...接下来,我所有在咖啡记录中用到的 fragment、viewModel adapter 类迁移到 coffee 模块中。...通过上述修改,我咖啡记录模块与它相关的导航流从应用中分离了出来,也就意味着咖啡记录模块可以独立于甜甜圈记录应用使用。

1.6K30

在功能模块中使用导航 | MAD Skills

这是关于导航 (Navigation) 的第二个 MAD Skills 系列,本文是导航组件系列的第四篇文章,如果您想回顾过去发布的内容,请通过下面链接查看: 导航组件概览 导航到对话框 在应用中导航时使用...SafeArgs 使用深层链接导航 打造您的首个 app bundle 深入浅出 NavigationUI 使用导航组件: 条件导航 导航: 嵌套导航 如果您更倾向于观看视频而非阅读文章,请 点击这里...概述 在 上一篇文章 中,您已经学会了如何在多模块工程中使用导航 (Navigation)。在本文中,我们更进一步,咖啡模块转换成功能模块 (Feature Module)。...如果您想了解更多关于如何使用 bundletool Play 控制台来测试功能模块安装的内容,请查看这个 视频。 我也想测试模块无法安装时会发生什么。...为了提供更好的用户体验,首先我使用导航添加了 NavigationUI 以集成 UI 组件。然后,我实现了一次性流程条件导航

54510

「敏捷模型」敏捷架构:规模化敏捷开发的策略

一种有效的体系结构方法使您能够解决这些扩展问题。 2.整个生命周期的架构 图1描绘了敏捷模型驱动开发(AMDD)的生命周期。...在一个小型项目团队中,比如十五人或更少,我更愿意包括所有开发人员,因为它允许所有参与者在体系结构中发表意见。这增加了每个人对体系结构的理解接受,因为他们一起工作一个团队。...同样,您处理体系结构的业务方面,可能识别软件子系统或业务组件时,您可能需要关注描述关键使用要求的基本用例或用户故事,以及可能适用于您的系统的关键业务规则。...例如,使用基于J2EE的技术构建复杂业务应用程序的团队可能会发现UML组件工作流图适合用作体系结构导航图。但是,构建企业数据仓库的团队可能倾向于使用基于其体系结构的数据模型UML部署图。...纸张便利贴可以使用时,请勿使用POW。 重要的一点是,您的所有通信都是面对面的时,导航图通常足以描述您的架构。

1.5K21

Android Jetpack架构组件(五)之Navigation

因此,Jetpack提供了一个名为Navigation的组件,旨在方便开发者管理Fragment页面Appbar。...相比之前Fragment的管理需要借助FragmentManagerFragmentTransaction,使用Navigation组件有如下一些优点: 可视化的页面导航图,方便我们理清页面之间的关系...通过destinationaction完成页面间的导航 方便添加页面切换动画 页面间类型安全的参数传递 通过Navigation UI类,对菜单/底部导航/抽屉蓝菜单导航进行统一的管理 支持深层链接...Navigation Graph:一个包含所有导航页面关系相关的 XML资源。 NavHostFragment:一种特殊的Fragment,用于承载导航内容的容器。...二)之Lifecycle Android Jetpack架构组件(一)AndroidX

1.2K00

干货 | 边缘计算的3分割策略

但是,基于数据中心的分布式体系结构不同,后者涉及在同一区域内安置在一起的计算机群集之间的服务间通信,而边缘计算则涉及分布在广泛区域中的物理设备。而且,在某些情况下,机器会不断运动。...但是,边缘计算开始发挥作用时,事情就会变得更加复杂。放置机器的位置很重要,尤其是当应用程序领域扩展到广泛的地理区域时。设备之间的长距离可能会导致通信链中更大的延迟。...雾模式是一种卫星数据中心收集点定位为物联网设备主数据中心之间的中间计算点的模式。(请参见下面的图2) ?...边缘设备是专用机器(例如仓库中的智能叉车或交通路口的摄像机)时,尤其如此。单单网络流量就可以成为顶峰。如果设备无法主数据中心通信,例如,碰到设备中的“死区”时,操作可能会停止。...导航仓库,选择商品调色板并促进更新是智能叉车的核心功能。但是,处理所选叉车相关的客户订单不是叉车的核心功能。

86140

【安全架构】COBIT vs TOGAF:哪个对网络安全更有利?

涉及到内部使用框架时,TOGAF对组织来说是免费的,但涉及到商业使用时就不是了。 TOGAF还帮助公司协调业务IT目标。它还帮助组织跨所有部门管理其It工作。...COBIT的组成部分 COBIT 2019可以ITIL、TOGAFCMMI一起工作。这使得COBIT 2019成为创建伞式框架的最佳选择,这样所有公司流程都可以得到统一。...TOGAF框架有一个内容元模型,用于指导公司创建和管理组织中的所有企业体系结构。它创建了一种更精简的基础架构管理方法。TOGAF9中的分区组件在分离公司中的特定体系结构时提供指导。...TOGAF还拥有一个体系结构存储库,其中包含所有相关项目的企业范围体系结构相关的不同细节,包括各种想法、设计、流程框架,以帮助项目更顺利地完成。...相比之下,TOGAF用于为公司创建一个信息体系结构,以简化的方式整合业务IT目标。它们也可以作为混合模型一起使用,以创建一个强大的治理框架。

77950

微服务与其他三种软件架构的优缺点

有时,可以多个体系结构模式组合到一个系统中,并且完美的设计融入您的解决方案中通常感觉就像是一门艺术。...当应用程序或应用程序的一部分应易于扩展或缩小时,建议这种体系结构用于具有许多小的单独组件的应用程序。分布在不同位置或时区的几个开发团队合作时,微服务架构也可以成为福音。...在面向服务的体系结构中,组件的大小范围可以从小型应用程序到整个企业应用程序; 中间件 API:微服务使用 API 层简单的消息传递协议进行通信,而 SOA 具有具有额外功能的消息传递中间件组件; SOA...添加费用时,您不会更改总金额的值。而是,在新行中添加值操作。发生错误时,不应删除事件,因为它们实际上是过去发生的。为了纠正这种情况,应该创建新事件以消除错误事件。...该体系结构定义了软件的模型,其功能以及定义在实现时可能遇到的问题。它使决策管理各种变更变得更加容易,并且可以更好地估计项目的时间成本。

1.5K30

SSH框架总结

2、在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能保证数据的完整性...在这里,Struts 1可以各种标准的数据访问技术结合在一起,包括Enterprise Java Beans(EJB), JDBC JNDI。...其全新的Struts 2的体系结构Struts 1的体系结构差别巨大。...Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化 另外, struts具有页面导航功能,使系统的脉络更加清晰...他很大程度的简化DAO层的编码工作,软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了。

96040

授时安全防护装置施工方案

同时,对卫星导航信号质量进行实时监测告警,主动隔离影响授时安全的信号,并自主保持授时信号连续可靠,以大幅提升卫星同步时钟授时系统的安全性、稳定性抗攻击能力。...图片二: 授时安全防护装置施工方案授时安全防护装置-卫星信号安全防护装置安装时直接串行接入时间同步装置/时间服务器卫星天线之间即可。...实时检测接收信号中是否存在干扰,干扰功率达到一定强度后发出干扰告警。装置检测接收信号中是否存在欺骗信号,存在欺骗信号时,关闭输出信号并发出欺骗告警。...卫星信号安全防护装置可通过网络接口输出当前卫星信号干扰欺骗检测状态信息,用户使用时,该信息可接入时间同步装置的管理接口,让时间同步装置获取卫星信号质量信息,并统一上送调控中心时间同步管理系统或站端监控系统

86330

Navigation的用法

为此,Jetpack提供了一个名为Navigation的组件,旨在方便我们管理页面App bar。...它具有以下优势:     1.可视化的页面导航图,便于我们理清页面间的关系     2.通过destinationaction完成页面间的导航     3.方便添加页面的切换动画     4.页面间类型安全的参数传递...build.gradle文件中引用这个插件,需要添加的代码如下: plugins { id 'com.android.application' id 'androidx.navigation.safeargs...App bar中各种按钮菜单,同样承担着页面切换的工作。例如,ActionBar左边的返回按钮被单击时,我们需要响应该事件,返回到上一个页面。...既然NavigationApp bar都需要处理页面切换事件,那么为了方便管理,Jetpack引入了NavigationUI组件使App bar中的按钮菜单能够导航图中的页面关联起来。

25520

ROS 2 Foxy Fitzroy:为生产开发机器人设定新标准

ROS客户端层(ROS client layer,RCL)ROS中间件层(ROS middleware layer ,RMW)分开的分层体系结构开始。...RCL提供开发人员接口,而RMW层使不同的可互换低级通信协议兼容。...DDS使ROS 2成为一个更强大且可互操作的框架。此体系结构最低层协议(DDS)详细信息应用程序开发人员层分开。...默认的RMW他们的产品需求不匹配时,这些添加的选项使开发人员可以选择。 更有效,更方便的工具 Rosbags是ROS中众所周知的有用的日志记录,调试测试工具。...MoveIt2运动ROS 2中的西南研究所(SwRI)协作机器人打磨应用程序集成在一起 可以通过访问https://moveit.ros.org/找到入门指南以及有关带有ROS 2的MoveIt

1.2K40
领券