Android Fragment 开发框架合集

1. Fragmentation

一个强大的 Fragment 管理框架,为"单 Activity + 多Fragment","多模块 Activity + 多 Fragment"架构而生,简化开发,轻松解决动画、嵌套、事务相关等问题。

特性

  • 悬浮球/摇一摇实时查看 Fragment 的栈视图,降低开发难度
  • 内部队列机制 解决 Fragment 多点触控、事务高频次提交异常等问题
  • 增加启动模式、startForResult 等类 Activity 方法
  • Android事件分发机制的 Fragment BACK 键机制:onBackPressedSupport()
  • 提供 onSupportVisible() 、懒加载 onLazyInitView() 等生命周期方法,简化嵌套 Fragment 的开发过程
  • 提供 Fragment 转场动画 系列解决方案,动态改变动画
  • 提供 Activity 作用域的 EventBus 辅助类,Fragment 通信更简单、独立(需要使用EventBusActivityScope库)
  • 支持SwipeBack滑动边缘退出(需要使用Fragmentation_SwipeBack库)
图片发自简书App
图片发自简书App
图片发自简书App

为了更好的使用和了解该库,推荐阅读下面的文章:
Fragment全解析系列(一):那些年踩过的坑
Fragment全解析系列(二):正确的使用姿势

2. FragmentRigger

一个强大的Fragment管理框架。

这可能是使用成本最低的 Fragment 框架。
无需继承!!!无需继承!!!无需继承!!! 重要的话说三遍!!
在使用 FragmentRigger 的时候,使用成本只有一行注解!!!
原理: 是把 Fragment / Activity 生命周期相关方法定义为切点,通过 ASpectJ 绑定并使用代理类进行操作。

特性

  • 超强大Api支持
  • 足够多的英文注释
  • 严格的异常抛出
  • 解决 Fragment 中常见的异常及Bug
  • 事务提交永不丢失
  • 扩展原生方法,添加 onBackPressed 等常见的方法支持
  • 当前栈成员树状图打印
  • Fragment 懒加载
  • Fragment 转场动画
  • 自定义 Fragment tag
  • 为非栈内的 Fragment 添加 onBackPressed 支持
  • 滑动边缘退出 Activity / Fragment
Stack manager
Show
Lazy loading
Replace

3. AndroidNavigation

一个可以管理 Fragment 嵌套,状态栏和 Toolbar 透明的库。

可以能用构造一个 Activity 框架。

特性

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

4. FragmentStack

一个封装了启动模式的 Fragment 便捷使用库,方便构建单 Activity + 多Fragment轻量级框架。

特性

  • 替代传统的 Activity 页面,轻量化页面
  • 开启、关闭、动画、回退栈,生命周期回调等操作更加方便,一行代码即可搞定
  • 自带 Activity 四种启动模式,接管了系统的回退栈
图片发自简书App

5. FragmentMaster

FragmentMaster 是一个库,允许您轻松开发仅由 Fragments 导航的 Android 应用程序。

特性

  • 传递数据并在两个片段之间接收结果。
  • 向右滑动即可向后导航。
  • 自定义变换动画。

选择推荐

Fragmentation可以使用接口实现Base类的方便扩展,功能也相当强大还支持 EventBus
FragmentRigger使用了注解来实现框架,可能需要注意冲突
FragmentStack相当轻量,适合比较简单的需求使用

对于框架的选择,还是需要选择最合适实际情况的,不要一味的追求强大,必要时 Fork 下来根据需求自行修改。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,223评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,567评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,093评论 3 119
  • “这车是你的?”杜夏希指着那银灰色的跑车愣了好半天,这车的价值可不是普通人说买就能买的。 西门拿过钥匙按下按钮,车...
    千葱阅读 1,693评论 0 0
  • 路见,父与子,笑闹着玩石头剪子布的游戏。 我似乎隐约看见了小时候的自己。 六七岁的我,"男装头"的我,喜欢跟在父亲...
    一袭烟雨一座城阅读 1,328评论 1 1

友情链接更多精彩内容