博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单 Activity 架构组件
阅读量:6808 次
发布时间:2019-06-26

本文共 1097 字,大约阅读时间需要 3 分钟。

单 Acvitivy 架构是指整个应用只有一个 MainActivity, 可能还有个 SplashAcvitiy 来作为闪屏。笔者有个项目比较特殊,必须用单 Activity 来实现。单 Activity 架构的一个挑战就是需要处理好 Fragment 的嵌套问题。

笔者到 google 上一搜,也有不少文章或开源库讲单 Activity 架构的哦

因为其他同学可能也对单 Activity 架构感兴趣,因此笔者从项目中抽离出了这个子项目,专门用来处理单 Acvitity 架构的问题。

由于笔者也做了几年的 iOS 开发,而 iOS 的导航系统是比较完善的。因此这个单 Activity 架构组件的设计参考了 iOS 的导航系统。

在 iOS 中,只有一个 keyWindow,它可以设置一个 rootViewController,这个 rootViewController 可能是一个容器,里面包含着其它 UIViewController, 而被包含的 controller 可能也还是个容器。也就是说,在 iOS 中,控制器是一层套一层的。

碰巧,在 Android 中,Activity 也是一个 Window,Activity 也可以设置 Fragment, Fragment 也可以嵌套,感觉就是异曲同工啊。

所以呢,笔者就照着 iOS 的样子,实现这个组件

Compare with iOS

AndroidNavigation iOS
AwesomeActivity Window
AwesomeActivity#setRootFragment Window#rootViewController
AwesomeFragment UIViewController
NavigationFragment UINavigationController
TabBarFragment UITabBarController
DrawerFragment -

特性

  • 一行代码实现 Fragment 嵌套,一次性构建好嵌套层级
  • 一行代码实现 Fragment 跳转,不再需要写一大堆操作 fragment 的代码了,不用担心用错 FragmentManager 了
  • 一行代码开关沉浸式状态栏,兼容到 Android 4.4 并解决了相关 BUG
  • 自动为你创建 Toolbar,一行代码设置标题、按钮,支持关闭自动创建功能以实现定制
  • 一处设置全局样式,到处使用,并且支持不同页面个性化
  • 支持 font icons

截图

如果你身边有同学也对单 Activity 架构感兴趣,那么推荐给他吧。

转载地址:http://jetwl.baihongyu.com/

你可能感兴趣的文章
POST数据加密问题
查看>>
菜鸟学Linux 第048篇笔记 配置slave server
查看>>
media jquery 适配ios不同手机
查看>>
无线WIFI上网监控串联部署方案
查看>>
nfs文件系统
查看>>
修复错误配置fstab文件导致系统无法正常启动
查看>>
zabbix监控web
查看>>
gitlab+jenkins+maven+docker持续集成(二)——maven安装配置
查看>>
一次性去掉Word 2013文档中所有文字下波浪线的方法
查看>>
Oracle队列锁enq:TS,Temporary Segment (also TableSpace)
查看>>
MYSQL——数据修改
查看>>
中国的网站能活几天?
查看>>
PHP中发送邮件的几种方法总结
查看>>
vmware中修改虚拟机MAC地址的方法!
查看>>
RHCS集群 切换时defunct僵尸进程解决方案
查看>>
IOS:类方法(静态方法)和实例方法
查看>>
Zabbix监控CPU与实际值不符合,
查看>>
exchange2003系列总结:-5邮件加密与签名的工作流程
查看>>
Know Difference between Oracle Reserved Words and Keywords
查看>>
iOS-APP提交上架流程(新手必看!2016年3月1日最新版)
查看>>