【发布时间】:2017-10-24 19:54:44
【问题描述】:
我正在尝试使用Room Persistance Library 和Paging Library 设置我的所有列表,但在实施PagedListAdapter 时遇到了一些问题。
问题 1
我不想在onBindViewHolder 中写任何if、when... 条件,因此滚动完全流畅。我有一个带有属性的模型。例如,我想根据模型的Boolean 设置布局内部的view 的可见性(如TextView),但我不想使用if。实现这一目标的正确方法是什么?
我应该在具有View.VISIBLE 或View.GONE 的模型中创建Int 属性吗?但随后模型会变得非常复杂,包含大量属性,并且所有属性都在 Room 数据库的所有模型对象上。
我是否应该创建另一个仅具有适配器 UI 所需属性的模型?但是每次修改真实模型时,我也必须修改适配器模型才能看到 UI 上的变化。而且我认为这根本不好。
你知道在PagedListAdapter中是否有我可以异步做到这一点的地方吗?
问题 2
我需要使用像getString(R.string.resource) 这样的函数,这需要context。我还需要使用Glide 将图像加载到ImageView,但它需要Activity context 或Fragment context。我试图用匕首注入它,但那是不可能的。通过构造函数传递该上下文是否安全?或者最好的方法是什么?
(我想同样的问题发生在实现RecyclerViewAdapter)
【问题讨论】:
标签: android mvvm android-room android-architecture-components