首页 > Windows开发 > 详细

1.3.0-alpha04 Fragment result api

时间:2021-02-26 19:23:58      阅读:31      评论:0      收藏:0      [点我收藏+]

2020 年 4 月 29 日,发布了 androidx.fragment:fragment:1.3.0-alpha04 的版本,改版本弃用了之前fragment的传输数据方式,添加了新的api,如下图

技术分享图片

 

以前的Fragment传输数据应该都用过,获取fragment实例,arguments,回调,eventbus等,方式的确多样化,以前大多数传递都需要持有实例,这是很危险的

但是谷哥已经推新了,现在推荐使用新的api去传递数据,在版本1.3.0-alpha04 中新增了result api去操作

很简单,假如你要在两个fragment之间传递,需要用到两个api,一个发送,一个接收,这里做一个测试,首先启动一个SplashFragment,在启动页结束的时候发送一个数据过去HomeFragment

别忘了添加引用

implementation "androidx.fragment:fragment-ktx:1.3.0-rc02"

发送时

技术分享图片

 

接收时

技术分享图片

 

这样一看是不是一目了然了,这两个方法可以直接使用,kotlin自带的api,点进去可以看到源码

技术分享图片

 

技术分享图片

 

发现是parentFragmentManager中方法,只是kotlin简化了而已

现在运行一波,启动页结束进入HomeFragment,然后会在同时收到我们发过去的数据

技术分享图片

上面是两个Fragment同级的传递方式,那如果换个场景,Fragment是子集的时候,监听就不一样了,这里新建一个TabFragment,然后TabFragment里面有两个子tab,现在子tab要传递数据到TabFragment中

首先还是一样的,在TabFragment里注册好接收

技术分享图片

 

这里不是直接用parentFragmentManager了,需要用childFragmentManager去注册了,不然会失效,然后发送还是一样,这里在子tab里显示一个textview,点击textview的时候发送一条数据过来

技术分享图片

 

然后运行一波

技术分享图片

在换一个场景,如果从TabFragment中传递数据到子tab中,子tab去接收,这里在TabFragment中添加一个悬浮按钮,点击按钮传递数据到子tab中

技术分享图片

 

这时候发送就不一样了,因为是发送到子tab中,所以需要使用childFragmentManager去发送

技术分享图片

 

在运行一波看看

技术分享图片

 

github:https://github.com/1024477951/KotlinStrong

1.3.0-alpha04 Fragment result api

原文:https://www.cnblogs.com/LiuZhen/p/14452617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!