您好,欢迎来到网暖!
?
当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

【××××××】对软圣天加密狗软件的复制思路

来源:网络整理 浏览:274次 时间:2020-01-18

大家还记得 Fragment 是什么时候发布的吗?在 2011 年 Google 发布 Android 3.0,伴随着 API 11 推出了 Fragment 组件,最初 Fragment 是为了优化 Android 平板页面结构而推出的,不幸的是 Android 平板现在几乎夭折了,连 Google 都放弃了 Android 平板的研发。
所以一直以来,Fragment 处于一种很尴尬的地位,API 难用、坑很多、生命周期难管理,所以当初有人提出 Activity 应该采取单 Activity + 多 Fragment 的结构开发时,很多人都?#22336;?#23450;态度,?#36824;?#26368;近 Google Play 也改成了这种结构,日常使用体验也还好。

?#36824;源?Android 平板上夭折之后,Fragment 的作用越来越向一个微型 Activity 发展,Activity 有什么方法 Fragment 中就要对应添加什么方法,发向 Activity 的事件回调也要向 Fragment 中发一遍。最初的想法是想 Fragment 解决 Activity 页面?#20998;?#20197;及不灵活的问题,但是没想到如今 Fragment 变成了 Activity。

针对目前存在的问题,官方提出了重新设计 Fragment 的计划,并提出了以下两个目标:

将 Fragment 迁移到一个聚焦 API 层面的世界,并具有可预见、完善的表现。

兼容目前的功能

在未来的某个时间的,Google 会发布 Fragment 2.0,会添加一些新的 API 供大家使用,所以作为开发者的我们,需要密××× Fragment API 中哪些被打上了弃用的标签,因为在 Fragment 2.0 发布之后,这些 API 会逐步变得不可用。
现在的 Fragment

为了更方便的在 Fragment 中进行 UI 测试,Google 提供了 FragmentScenario UI 测试框架,使我们可以不依附于 Activity 单独测试 Fragment 的功能,同时也提供了 moveToState()、recreate() 等方法来测试生命周期变化时,Fragment 功能是否正常。

在目前的 1.1.0 版本中,还提供了 FragmentFactory 帮助我们自定义 Fragment 的实例化。之前我们可能会?#24184;?#20010;疑问:为什么 Fragment 需要使用 setArguments 来传递参数,而不可以直接从 Fragment 的构造方法传递参数?答案很简单,会数据丢失。
因为例如当我们反转屏幕的时候,Activity 会销毁重建,当前 Activity 持有的 Fragment 会通过 FragmentManager 重建,但 FragmentManager ?#25442;?#35843;用 Fragment 默认的构造方法重建,所以我们通过自定义构造方法传递的参数就会丢失。
现在我们可以通过 FragmentFactory 来自定义的实例化,就可以避免上述问题的发生。

自定义 FragmentFactory 之后,需要在 onCreate 之前给 FragmentManager 提前?#25345;怠?/p>

在 Fragment 1.2.0 版本中,增加来新的 FragmentContainerView 来替代之前使用的 和 标签。FragmentContainerView 在 Fragmnet 出现、消失的动画上面增加了 Z 轴上的效果。

增加了 OnBackPressedDispatcher 来帮助我们在 Fragmnet 中更好的处理返回事件。

还?#24184;?#20123;优化方面的更新,在 Fragment 中更方便的实例化不同作用域的 viewModel,例如仅 Fragment、全部 Navigation 作用域、Activity 作用域。同时在 FragmentPagerAdapter 中增加了 BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT 属性,表示只有当前 Fragment 可以走到 onResume,这样一来我们做 ViewPager 多个 Fragment 懒加载是就方便了很多。
未来的 Fragment

未来官方期望可以实现多个栈的 Fragment 状态管理,而不是像现在仅单一栈的管理,如果你目前正在基于 Android Arch Component 中的 Navigation 配合 BottomNavigationView(底部导航栏)写 App 的话,你应该明白目前这种结构的 Fragment ?#36824;?#29702;是多么痛苦。

这是官方自己实现的多个?#36824;?#29702;代码,在 GitHub 上面的 navigationadvancedsample 仓库中,有兴趣的可以自己研究下。

在未来官方还期望可以提供一种更好的 API 来代替 startActivityForResult 实现 Fragment 之间结果的传递。

最后官方还期望可以整合 Fragment 和 Fragment‘s View 的生命周期,提供更方便的状态管理。
其实在我看来之前 Fragment 之所以难用,是因为当时设计它的原因是基于平板模式所设计的,如今 Google 移除来 support 引入来全新的 AndroidX,将主要 API 的更新脱离 Android 版本的更新,势必会加快 API 的更新迭代速度,向着更快、更方便的开发体验前进,而且我也预感 Android 会在未来 1-2 年内会有重大的变化和突破,可以提供给用户媲美 iOS 的使用体验。所以抓紧上车,学就对了!
明天周末暂停更新,下周一我们继续为大家分享 Android Dev Summit 中有趣的内容!×××id丨Kotlin】!如果觉得这些文章有点意思,记得分享转发评论点赞鸭!

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、?#24184;?#21160;态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容?#26723;潰?#21450;博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽?#26723;?0多个内容?#26723;潰?#21516;时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com
?
奇妙马戏团试玩
大公鸡七星彩下载 安徽快3开奖结走势图 河北家乡棋牌下载官网 十一运夺金山东时时 电竞比分直播网 北京pk10外围平台 福州麻将圈怎么感觉有作弊 哈灵江苏麻将作弊器 河南快赢481 6复5多少注 捕鱼大富翁赚钱 山西11选5开奖结果360 闲来麻将代理招募条件 福建31选7 快三买大小单双稳赚计划 只要钱充足不断补仓就能赚钱