我正在尝试使用 Room Persistance Library 设置我的所有列表和 Paging Library但是我在实现 PagedListAdapter
时遇到了一些问题。
问题一
我不想在 onBindViewHolder
中编写任何 if
、when
... 条件,因此滚动是完全流畅的。我有一个模型及其属性。例如,我想根据 Boolean
设置布局内的 view
的可见性(如 TextView
)模型,但我不想使用 if。实现该目标的正确方法是什么?
我应该在具有 View.VISIBLE
或 View.GONE
的模型中创建一个 Int
属性吗?但是随后模型会变得非常复杂,包含大量属性,并且所有属性都在 Room
数据库的所有模型对象上。
我是否应该创建另一个仅具有适配器 UI 所需属性的模型?但是每次修改真实模型时,我也必须修改适配器模型才能在 UI 上看到变化。我认为这一点也不好。
您知道在 PagedListAdapter
中是否可以在某个地方异步执行此操作吗?
问题二
我需要使用像 getString(R.string.resource)
这样的函数,它需要一个 context
。我还需要使用 Glide
将图像加载到 ImageView
中,但它需要 Activity 上下文
或 Fragment 上下文
。我试图用 Dagger 注入(inject)它,但那是不可能的。通过构造函数传递该上下文是安全的吗?或者最好的方法是什么?
(我想同样的问题发生在实现RecyclerViewAdapter
)
最佳答案
- 在我研究过的应用程序中,我有一个保存当前播放器状态的表。我在多选查询中使用该表,因此当我更改该表时,
Paging library
将更改我的数据源。 Example app . - 我使用
View
实例中的Context
实例和方法View.getContext()
。
关于android - 关于Room和Paging Library的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46919004/