-
-
Notifications
You must be signed in to change notification settings - Fork 57
项目简介
XPage是一个非常方便的fragment页面框架!天下武功,唯快不破,XPage最大的特点就是快,提高开发的效率!
XPage设计的初衷是希望能做一个通用的Activity作为壳,Fragment作为页面填充展示,并且能够像Activity那样自由的切换和数据交互。
- 支持assets下“corepage.json”静态配置Fragment页面信息。
- 支持Application中动态配置Fragment页面信息。
- 支持通过注解@Page的方式动态自动配置页面信息。
- 支持自定义Fragment页面信息配置。
- 支持4种默认Fragment页面切换动画。
- 支持Fragment页面间参数传递。
- 支持Fragment页面属性保存。
- 支持Fragment页面的onKeyDown、onFragmentResult等生命周期
- 支持Fragment和Fragment页面自由跳转以及数据交互。
- 支持导航栏通过注解的方式自动添加及设置。
- 支持进行内存泄露监测。
- 支持自定义TitleBar全局主题属性。
- 支持自定义Fragment页面容器。
- 支持自定义Activity页面容器。
- 支持Fragment之间、activity和fragment之间的数据交互。
- 兼容kotlin和androidx。
当初做Android开发时每当我写一个页面,都需要创建一个Activity,并且还需要在manifest中注册一堆Activity信息,这样既不方便,而且对资源的开销也比较大。因此当时我就设想能否创造出一个通用万能的Activity容器,可以全权负责Fragment的切换展示和数据交互,只需要一行代码即可完成所有的操作,还不需要自己手动去注册,可以一键生成。
刚开始的时候真的很难,没有什么好的思路,最初只是简单封装了一个Activity,通过传入一些key值从而获取并加载对应的fragment,类似ARouter
中Fragment发现那种。其实这样做并没有解决一个容器的问题,而且页面切换也不是很灵活,不够通用,使用起来也不是很方便。
突然有一天我发现Github上有个开源项目CorePage写得非常好,完美地解决了我对一个Activity容器的问题,于是我决定仔细研究其代码,并在其基础上设计出了XPage的最初版本。
就在XPage正式投入使用的过程中,我发现还是存在不少问题的:
-
1.对外API不够灵活,使用起来不够方便;
-
2.每个Fragment仍需要手动注册,很麻烦;
对于API不够灵活的问题,我在之后的版本中陆续通过构造者模式设计以及Android主题属性等手段解决了。
而对于手动注册的问题,我正是借鉴了ARouter的思路,通过Android APT技术,从而实现了Fragment信息的自动注册。
-
只需要一个Activity容器就可以实现多个页面的交互。
-
Fragment自由切换和数据交互。
-
无需在manifest中注册一堆Activity信息,通过@Page注解一键自动注册。