EasyAndroid 是一个android完整的安装开发框架,已经应用于几个生产项目。
github地址:https://github.com/chen397254698/EasyAndroid
EasyAndroid
一个完整基于kotlin的安卓开发框架,采用了mvvm设计模式。涵盖了:
1、基于retrofit2封装的通过kotlin协程实现的网络框架
2、基于阿里开源arouter修改的api-router实现项目模块化
3、基于glide的图片加载缓存框架
4、基于room实现的往来数据缓存加载
5、基于step实现的数据异步提交
6、基于PreferenceHolder实现的本地数据快速存储
7、基于mlist实现的简单复杂列表的快速开发扩展等等。。
本框架几乎涵盖了开发所需的所有模块组件。简单fork之后就可以基于框架快速开发。
参数传递
上文说到EasyAndroid的页面是基于fragment进行管理的,可以非常便捷的创建页面。而且和原来的activity创建页面完全兼容。那有了页面fragment,页面间的参数要如何传递?
参数的传递和获取简单到令人发指!!!
举个例子:
//需要传递的参数较少就用Pair传递
startPage(ParamsFragment::class, "day" to "第一天", "week" to 3, "wea" to 30.5F)
//参数较多的情况下用bundle传递
Bundle().run {
putString("day", "第一天")
putInt( "week", 3)
putFloat( "wea", 30.5F)
startPage(ParamsFragment::class, bundle = this)
}
//参数获取和使用,更是简单
class ParamsFragment :BaseSimpleFragment(){
private val day by ArgString()
private val date by ArgStringNull()
private val week by ArgInt()
private val wea by ArgFloat()
override val contentLayoutId = R.layout.fragment_weather
override fun initAndObserve() {
_day.text = day
_date.text = date
_week.text = "$week"
_wea.text = "$wea"
}
}
参数回传
支持传统的参数回传方式
//设置requestCode
startPage(ParamsFragment::class, bundle = this, requestCode = 101)
//在onActivityResult 接收参数的回传
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == 101 && resultCode == Activity.RESULT_OK) {
}
}
这种方式相对繁琐,不是简单编程的风格。EasyAndroid支持非常灵活的事件通知,页面的回传用通知实现将更加便捷。下一章就将详细说明EasyAndroid中通知的使用。
EasyAndroid中通知 https://www.jianshu.com/p/048f824e6f90
网友评论