Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Mvvm Juejin | 405 | 4 years ago | 8 | mit | Java | |||||
高仿"掘金Android App": databinding + kotlin + rx 的优雅实践。(持续打磨中~) | ||||||||||
Newandroidarchitecture Component Github | 228 | 5 years ago | apache-2.0 | Java | ||||||
Sample project based on the new Android Component Architecture | ||||||||||
Rxrecycleradapter | 194 | 4 years ago | 4 | Kotlin | ||||||
Rx based RecyclerView Adapter. | ||||||||||
Mvvmarchitecture | 147 | 2 years ago | apache-2.0 | Kotlin | ||||||
MVVM 框架,采用 Kotlin+Jetpack,可自由配置功能,欢迎 star,fork,issue | ||||||||||
Androidmvparchitecture | 78 | 4 years ago | Java | |||||||
Android MVP architecture sample project with or without RxJava and Dagger2 and Kotlin | ||||||||||
Rx Property Android | 77 | 5 years ago | mit | Java | ||||||
Bindable and observable property for Android Data Binding | ||||||||||
Pokehub | 31 | 4 years ago | Kotlin | |||||||
This is a sample project that uses Graphql API's with Rx implementation. | ||||||||||
Marvel Kotlin Mvvm Databinding | 25 | 7 years ago | Kotlin | |||||||
Github Android | 12 | 4 years ago | apache-2.0 | Kotlin | ||||||
Project for implement JetPack Android Base | ||||||||||
Rx Observablefield | 11 | 5 years ago | apache-2.0 | Kotlin | ||||||
[experimental] Observable(RxJava2) <-> ObservableField(Android databinding) |
不同于前端 vue、 react 的火热, 移动端的 databinding 好像不受待见。鉴于 vue、 react 都有各自成熟的生态圈,我希望通过这个项目打磨出一个简单易用的
databinding 组件库
。
之前有不少前辈专门针对 RecyclerView 做了各自的封装,完全省去了 Adapter, 比如:
在本项目中,你将会看到一个带有 下拉刷新
+ 上拉加载
的页面如何简化到10+行java代码
! see NotifyVM.kt
接口全抓自掘金app, 支持登录、注册(走的官方接口,并非假数据哦~)
我们来看第3个tab - 消息列表: see NotifyVM.kt
// 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
绑定在一起。
重点来了:
loadTask
,然后更新TwoWayListVM.data
TwoWayListVM.data
发生变化,会自动触发RecyclerView
刷新。然后,配合 kotlin 简洁的语法,我们实现了也许是史上最简洁???
的分页列表。