android - 如何使用 MVVM 在 Recycler 视图中更新按钮状态 [Enabled, Loading, Disabled]
问题描述
我目前正在开发一个 Android 项目并遇到了一个问题。我正在关注 MVVM 和清洁代码架构。有一个包含 RecyclerView 的 Fragment。每个 Recycler View Item 都有一个按钮。在每次单击按钮时,请求都会被带到 Fragment 并命中一个 API 端点。
目前,我在 Fragment 中显示加载进度指示器,但我想更改它并希望在命中 API 端点时将按钮状态显示为 Loading 并保持该加载状态,直到 API 返回响应。
和在 MVVM 中一样,将 Button 视图从 RecyclerView 项传递给 Fragment 并不是一个好习惯,那么如何在端点返回响应后回调 RecyclerView 项来更新 Button 状态。
我正在寻找一种适当的方法来处理这种情况。
我的堆栈:
Kotlin、Dagger2、RxJAVA、LiveData
可视化
注意:演示 UI 只是为了一个想法。
如您所见,我在 RecyclerView 中单击了 Item 1 中的按钮,按钮状态更改为 Loading,当 API 返回响应时,按钮将恢复正常状态。
解决方案
推荐阅读
- .net - 当 Azure DownloadToFileAsync 任务在最后一个结果中以 Http 状态代码 206 (Partial Contswnt) 结束时,具体情况是什么?
- javascript - 如何将 Wordpress php 代码添加到 JavaScript
- angular - 如何在 Angular Material Autocomplete 中过滤 observable 以进行路由
- r - ggplot2以错误的顺序放置数据标签(geom_text)
- vba - 找不到文件 - 尝试重命名存在的文件时出现错误 53
- html - 如何使用空手道从响应 HTML 中解析字段的值
- openblas - 在哪里可以找到 OpenBlas 项目中 cblas_sgemm() 函数的实现?
- python - 如何查询新的 sql server 表行以更新整个表的结果
- javascript - 最简单的迭代方式
- javascript - 如何动态生成一个JS函数并将其存储在一个变量中?