BaseRecyclerViewAdapterHelper
BaseRecyclerViewAdapterHelper copied to clipboard
推荐使用BRV框架替代不再维护的BRVAH
BRVAH不再维护也不接受新的PR, 也无法满足新的kt特性和功能
可以尝试 BRV
项目地址 https://github.com/liangjingkanji/BRV
使用文档 https://liangjingkanji.github.io/BRV/
- 功能更多/代码更简洁
- 维护时间超过3年
- issues全部已解决
- 更详细的使用文档
- 更易读的使用示例
- 更好的扩展性
不过,看起来还不错。
迁移成本太高了
@protectedMan
- 支持类似BRVAH的数据绑定方式, 代码复制过去就行了
- 不迁移, 直接新的列表用新框架写就行了. 没有必须要全部替换一说
支持树形结构吗
支持树形结构吗
支持分组无限级, 支持树形结构
真的假的。。
真的假的。。
点开文档和demo就能看出和一般框架的不同了
不说别的, 就凭你这头像我就要去看看你的项目. 如果可以就换了
支持树形结构吗
支持分组无限级, 支持树形结构
你好,我在项目中引用了BRV,现在遇到一个问题想请教一下,希望拨冗解惑。 现在是要实现一个嵌套分组,而且是rv嵌套rv,我这边按照文档和demo的步骤来的,不同的是,getData() 是网络请求后端接口所得,但是最终UI显示不出来也没有报bug(log中可以看到接口数据返回都是正常的)。 我debug后大致判断,应该是没有对getData()的结果做监听、导致BindingAdapter setUp()时getData()方法还没有返回、也就没有数据(models 赋值为null)。。这个数据不一致的问题希望能帮解惑,十分感谢~
支持树形结构吗
支持分组无限级, 支持树形结构
你好,我在项目中引用了BRV,现在遇到一个问题想请教一下,希望拨冗解惑。 现在是要实现一个嵌套分组,而且是rv嵌套rv,我这边按照文档和demo的步骤来的,不同的是,getData() 是网络请求后端接口所得,但是最终UI显示不出来也没有报bug(log中可以看到接口数据返回都是正常的)。 我debug后大致判断,应该是没有对getData()的结果做监听、导致BindingAdapter setUp()时getData()方法还没有返回、也就没有数据(models 赋值为null)。。这个数据不一致的问题希望能帮解惑,十分感谢~
好像看你在群里咨询过这个问题. 你可以在BRV项目创建个issues.
rv.setup{
//....
}.models = getData()
你使用的是异步回调网络请求怎么可能直接通过函数返回. 你得使用协程网络请求: Net才可以做到函数返回请求结果
或者你在请求成功以后执行rv.models = result
开始还没看懂你说的setUp是什么函数....
@24suixinsuoyu
昨天刚用上,贼香。你说的异步,看是不是这个?
class NewsActivity : AppCompatActivity() {
private val rvNews = RecyclerView(TODO())
private val rvUser = RecyclerView(TODO())
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initNews()
initUser()
}
private fun initNews() {
// 你可以理解, RecyclerView.setup{}返回的就是一个adapter.
val adapter = rvNews.setup {
// ...
}
thread {
val data = List(10) { "item $it" }
runOnUiThread {
adapter.models = data
// 或使用RecyclerView扩展函数
// rvNews.models = data
}
}
}
private fun initUser() {
lifecycleScope.launch {
rvUser.setup {
// ...
}.models = getData()
}
}
private suspend fun getData(): List<String> = suspendCoroutine { continuation ->
thread {
val data = List(10) { "item $it" }
continuation.resume(data)
}
}
}
支持树形结构吗
支持分组无限级, 支持树形结构
你好,我在项目中引用了BRV,现在遇到一个问题想请教一下,希望拨冗解惑。 现在是要实现一个嵌套分组,而且是rv嵌套rv,我这边按照文档和demo的步骤来的,不同的是,getData() 是网络请求后端接口所得,但是最终UI显示不出来也没有报bug(log中可以看到接口数据返回都是正常的)。 我debug后大致判断,应该是没有对getData()的结果做监听、导致BindingAdapter setUp()时getData()方法还没有返回、也就没有数据(models 赋值为null)。。这个数据不一致的问题希望能帮解惑,十分感谢~
好像看你在群里咨询过这个问题. 你可以在BRV项目创建个issues.
rv.setup{ //.... }.models = getData()你使用的是异步回调网络请求怎么可能直接通过函数返回. 你得使用协程网络请求: Net才可以做到函数返回请求结果
或者你在请求成功以后执行
rv.models = result开始还没看懂你说的setUp是什么函数....
好的,谢谢,我研究研究
@24suixinsuoyu
昨天刚用上,贼香。你说的异步,看是不是这个?
class NewsActivity : AppCompatActivity() { private val rvNews = RecyclerView(TODO()) private val rvUser = RecyclerView(TODO()) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) initNews() initUser() } private fun initNews() { // 你可以理解, RecyclerView.setup{}返回的就是一个adapter. val adapter = rvNews.setup { // ... } thread { val data = List(10) { "item $it" } runOnUiThread { adapter.models = data // 或使用RecyclerView扩展函数 // rvNews.models = data } } } private fun initUser() { lifecycleScope.launch { rvUser.setup { // ... }.models = getData() } } private suspend fun getData(): List<String> = suspendCoroutine { continuation -> thread { val data = List(10) { "item $it" } continuation.resume(data) } } }
嗯,就是异步数据刷新问题,thx~