liangjingkanji / BRV

[使用文档] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大
http://liangjingkanji.github.io/BRV/
MIT License
2.59k stars 327 forks source link

东哥 第一次使用BRV 不知道是不是使用方法不对 #240

Closed NeVaDaAAA closed 2 years ago

NeVaDaAAA commented 2 years ago

问题描述

使用viewModel+LiveData数据不显示,但是直接在Activity中处理数据能正常显示,打断点排查,liveData被正确赋值,但是不走startObserve()方法

期望行为

正确显示数据

如何复现

fork仓库并复现问题可以快速解决, 猜测只会让问题晦涩难懂, 耽误所有人时间

截图

item布局: image viewModel代码: image activity代码: image

异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)

版本

liangjingkanji commented 2 years ago

不走startObserve和BRV有什么关系, 你确定rv.model执行没有就行

liangjingkanji commented 2 years ago

网络请求+liveData组合是我这辈子见过最愚蠢的写法

NeVaDaAAA commented 2 years ago

rv.models没有执行

NeVaDaAAA commented 2 years ago

东哥别这么大的气啊 我只是想试一下这种能行不 我NET还没开始用啊

liangjingkanji commented 2 years ago

rv.models没有执行

那就是你自己写的回调方法有问题, 都没执行

liangjingkanji commented 2 years ago

东哥别这么大的气啊 我只是想试一下这种能行不 我NET还没开始用啊

和Net没关系, 只是觉得写法绕和多余, 可读性还极差

EspoirX commented 2 years ago

网络请求+liveData组合是我这辈子见过最愚蠢的写法

不使用 databinding 的时候怎么做才不愚蠢?

liangjingkanji commented 2 years ago
  1. 网络请求和Databinding并没有关系
  2. 我是推荐使用Databinidng来解耦, 我不认为在View体系下有更好的MVVM实现方式
  3. 如果不使用Databinding那当然是使用ViewBinding, 虽然ViewBinding只是取代FindViewById和DataBinding功能不完全一样
  4. 也许你想问的是使用LiveData实现MVVM, 那你只是将UI绑定代码挪了个地方而已, 而且要写无数的监听回调(Observer)

说了这么多我认为如果非得说个答案的话, 那就是使用JetPack Compose, 虽然目前生态不完善