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

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

本系列文章致力于帮助开发者们打造更好现代 Android 开发体验,敬请关注。 今天大家发布本系列文章中第三篇: 在应用中导航使用 SafeArgs。...为了避免使用全局对象引用,通过数据传递可以实现更好代码封装结构,这样不同 fragment 或者 activity 仅需要分享它们所需数据即可。...所以需要将它设置 gradle 依赖,并且在构建使其能够正确运行来生成所需代码。...所以如果我们在调用该函数时候不加参数,该方法会返回一个 NavDirections 对象,并且它 itemId -1。...NavDirections 对象时候调用了无参数构造函数,所以变量会被默认赋值 -1 (以表明这是一个新甜甜圈),这也是我们希望通过点击悬浮操作按钮所要实现效果。

1.5K20

安卓Navigation系列——入门篇

前言 在日常开发中,越来越多会使用到一个activity嵌套多个fragment场景,典型例子就是app首页,一般都会由一个activity+多个子tab组成,那对于Fragment显示、隐藏等我们通常都是通过...更多用法 在编辑nav_graph时候,action属性除了设置目标页外,还可以设置动画、页面间参数传递、fragment回退栈管理等 动画 enterAnim: 进场目标页面动画 exitAnim...> 参数 上面的例子中介绍fragment之间跳转,当然也可以支持参数传递。...safeArgs,safe args与传统传参方式相比,好处在于安全参数类型,并且通过谷歌官方支持,能很方便进行参数传值。...跳转到FragmentB参数,所以给FragmentB设置参数,点击FragmentB,点击右侧面板Arguments右侧+,输入参数key值,指定参数类型和默认值,即可快速添加参数 [p6jps8kpyh.gif

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

【详解】Android Jetpack 新组件之Navigation用法和源码结构分析

Deeplink支持,绕过activity直接跳到fragment 传递参数更安全 >>>> Navigation——导航组件 a、基于Android Studio 3.2 Canary 14(https...id是这个动作唯一属性,导航时候需要指定这个id,destination跳转对应idfragment ,转场动画上面已经贴过代码了。...().getString("amount")); 2、以类型安全方式在目标之间传递数据 导航架构组件有一个名为safeargsGradle插件,它生成简单对象和构建器类,以便对目标和动作指定参数进行类型安全访问...安全参数建立在Bundle方法基础上,但需要一些额外代码来换取更多类型安全。如果您使用Gradle,则可以使用安全参数插件。..."> 在fragment获取参数 arguments.getString

2.2K40

【Jetpack】Navigation 导航组件 ④ ( Fragment 跳转中使用 safe args 安全传递参数 )

, 调用该方法 , 可以在页面跳转 , 传递一个 Bundle 参数 , 其中可以封装一系列参数键值对 ; public open fun navigate(@IdRes resId: Int,...使用 传统方式 , 在 Fragment 之间 传递 数据 , 类型很不安全 , 设置 传递数据 , 需要设置 放入 数据类型 , 如下代码所示 : // 正常方式传递参数 var args:...Int 类型数据 , 名称是 “AGE” 字符串常量 , 值 整型 18 ; 这里要注意 , 设置时候 , 设置 NAME 属性值是 String 类型 , 那么在 FragmentB 中获取...配置中 , 使用 根目录下 build.gradle 构建脚本中 直接配置 plugins 插件方式 , 无法获取到该 androidx.navigation.safeargs 插件 , 因此放弃该方案...argument 参数信息 如果要从 FragmentB 跳转到 FragmentA 页面 , 传递数据 , 就将参数信息设置在该 FragmentB 对应配置文件中 ; 参数格式 :

34220

Android组件化专题-路由动态注入跳转参数以及获取其他模块fragment

现在思考一个问题: 不管是在Activity或者Fragment,跳转都会传递一些参数,然后在对应对Activity或着Fragment获取对应对参数,都要写大量重复代码,然而我们作为一名有素质有梦想码农...同时还有fragment参数传递等。...其实很简单,我们通过注解拿到父类Activity,然后注解变量类型和名称,然后我们动态生成一个类,通过原生方式来实现参数获取。...String extraName = element.getAnnotation(Extra.class).name(); //判断直接情况下处理...image.png 到此为止,我们路由框架实现了以下功能: 支持直接解析标准URL路由地址进行跳转,并自动注入参数到目标页面中 支持多模块工程使用 支持模块间通信 支持获取其他模块fragment

1.9K20

导航: 嵌套导航图和 | MAD Skills

这是第二个关于导航 (Navigation) MAD Skills 系列,本文是导航组件系列第三篇文章,如果您想回顾过去发布内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航使用...SafeArgs 使用深层链接导航 打造您首个 app bundle 深入浅出 NavigationUI 使用导航组件: 条件导航 如果您更倾向于观看视频而非阅读文章,请 点击这里 查看视频内容。...移动到嵌套图 现在我们回到代码界面,您可以看到嵌套图仅仅是根图中新导航图: 所选择 Fragment 之间导航被迁移至嵌套图中。...嵌套图必须包含 id。您可以使用这个 id 实现导航到嵌套代码,但并不是直接转换到其子目的地页面。嵌套图包含自己启动目的地页面,并且请不要分开暴露它们子目的地页面。

1.6K30

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

SafeArgs 使用深层链接导航 打造您首个 app bundle 深入浅出 NavigationUI 使用导航组件: 条件导航 导航: 嵌套导航图和 如果您更倾向于观看视频而非阅读文章,请 点击这里...功能模块在安装并未下载到本地,而是当应用使用到某个功能才会下载相应功能模块。这不仅节省了应用下载和安装时间和带宽,也节省了设备存储空间。 那么让我们用户节省一些空间!现在直接开始编程吧!...为此,我可以添加一个监听器,当用户停留在同一个页面,它可以处理安装状态、进度变化或错误信息。或者,当功能模块正在下载,我可以添加一个自定义进度 Fragment 来展示进度。...导航库已经内置了对 进度 Fragment 支持。我所需要做就是创建一个继承了 AbstractProgressFragment Fragment。...之后,我使用了嵌套图和 include 标签来组织导航图并将应用模块化以节省用户网络和存储空间。至此,我们已经完成了该应用,是时候去享用一杯美味咖啡和甜甜圈了!

54110

Navigation深入浅出,到出神入化,再到实战改造

>标签中配置,但A去跳转,无法在XML中传入,只能在代码中定义参数名称和值,那么XML参数还有何意义?...navigationUp和popBackStack()回退上一级时有什么区别,该如何正确使用 跳转 有时用是ActionID,有时用FragmentID 他俩到底在什么场景下,区分该将哪个传入方法作为参数...==右侧是节点添加支持属性:== 图片.png 2.1 跳转当前页面所需参数 (Argments) 跳转,回退当前节点所需要参数。...Name: 参数名称,等同于intent.getString(key,value)中Key Type: 参数类型 Array: 是否是数组(String[]) Nullable: 是否可以为...Default Value 默认值 更多支持参数类型: 图片.png 2.2 跳转路由动作 (Action) 图片.png ID 当前跳转动作节点唯一标识,后续在代码中调用navController.navigation

53810

Android 面试之必问Android基础

同时还可以在此方法中可以通过getArguments()获取到需要在Fragment创建需要参数。 onCreate():Fragment被创建时调用。...调用Context.startService方式启动Service,如果Android面临内存匮乏,可能会销毁当前运行Service,待内存充足可以重建Service。...进程生命周期 按照生命周期不同,Android进程可以分为前台进程、后台进程、可见进程、服务进程和进程等。... 1 标识当前对象需要作为返回值返回,不能立即释放资源,几乎所有情况都为 0。 describeContents:返回当前对象内容描述。...对于列表卡顿原因,通常有如下一些: 卡顿场景 notifyDataSetChanged 如果数据需要全局刷新,可以使用notifyDataSetChanged;对于增加或减少数据,可以使用局部刷新,

68521

深入浅出 NavigationUI | MAD Skills

这是第二个关于导航 (Navigation) MAD Skills 系列,如果您想回顾过去发布内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航使用 SafeArgs 使用深层链接导航...打造您首个 app bundle | MAD Skills 今天大家发布本系列文章中第一篇。...如果您希望随着文章内容同步操作,可以获取 这里代码,里面包含了全部针对 Donut Tracker 应用修改,可以基于该代码了解 NavigationUI。...比如,当您在最顶层目的页面,就不会显示回退按钮,因为没有更高层级页面。 默认情况下,您应用最初页面是唯一最顶层目的页面,但是您也可以定义多个最顶层目的页面。...该函数需要两个参数: navController 和 appBarConfiguration。

3K30
领券