MVVM-JueJinhtml
不一样于前端 vue、 react 的火热, 移动端的 databinding 好像不受待见。鉴于 vue、 react 都有各自成熟的生态圈,我但愿经过这个项目打磨出一个简单易用的
databinding 组件库
。前端
以前有很多前辈专门针对 RecyclerView 作了各自的封装,彻底省去了 Adapter, 好比:vue
在本项目中,你将会看到一个带有 下拉刷新
+ 上拉加载
的页面如何简化到10+行java代码
! see NotifyVM.ktjava
接口全抓自掘金app, 支持登陆、注册(走的官方接口,并不是假数据哦~)react
咱们来看第3个tab - 消息列表: see NotifyVM.ktandroid
// NotifyListVM.kt
@ResHolder(R.layout.item_notify_list) // item 布局
@HeaderResHolder(R.layout.header_notify) // header 布局
class NotifyListVM : TwoWayListVM<NotifyBean>() {
override val loadTask = { lastItem: NotifyBean? -> // 网络请求(refresh、loadMore 二合一)
ApiFactory.getApi(JueJinApis.Notify:: class.java)
.getUserNotification(lastItem?.createdAtString?: "")
.compose(Composers.handleError())
}
override val onItemClick = ArticleActivity.START_FROM_NOTIFY // 点击事件
override val headerData = Any()
}复制代码
框架中封装了TwoWayListVM
,咱们的NotifyListVM
继承与它,并在布局中与RecyclerView
绑定在一块儿。
重点来了:git
loadTask
,而后更新TwoWayListVM.data
TwoWayListVM.data
发生变化,会自动触发RecyclerView
刷新。而后,配合 kotlin 简洁的语法,咱们实现了也许是史上最简洁???
的分页列表。github
Android DataBinding 数据绑定 —— QQ音乐技术团队网络
官方文档app