【发布时间】:2019-11-25 07:45:28
【问题描述】:
我正在尝试使用Recycler View 创建一个列表视图并显示一个列表。假设我要显示的内容类似于典型的聊天屏幕 - 图像、消息、发件人名称等。
因此,所有这些数据都存储在 Firebase 实时数据库中。我也在使用ViewModel,并希望使用DiffUtil 来提高效率——因为可以删除、编辑、加星标、添加新消息等。由于DiffUtil,我使用的是ListAdapter。
我面临的问题是ListAdapter 需要List 而我使用ChildEventListener。
我现在如何使用 LiveData 观察 Firebase 的变化,然后更新我的列表,以便我可以传回我的 DiffUtil?因此,如果我添加一条新消息,我希望将其添加到我的RecyclerView,并且我想使用DiffUtil 来执行此操作,因为列表也可以更新。
我通过研究发现,我可能需要为此目的使用 Room 并观察查询的变化 - 所以观察类似 getAllMessages() 的方法,它会返回完整的列表,然后我可以使用它来传递给我的DiffUtil。这对我来说听起来有点矫枉过正——Room 的实现。
关于如何实现我的需求的任何指示或建议?
【问题讨论】:
标签: firebase android-recyclerview android-livedata android-diffutils android-listadapter