Leanback 创建不同的自定义行视图
Posted
技术标签:
【中文标题】Leanback 创建不同的自定义行视图【英文标题】:Leanback create different custom Row Views 【发布时间】:2019-03-16 14:54:18 【问题描述】:我正在使用 Leanback 库,我想知道如何创建多个自定义行视图。要连续创建不同的项目,您需要扩展 PresenterSelector
我尝试对ListRowPresenter
执行相同的操作,但无法获得正确的结果。
RowsSupportFragment
中没有绑定任何行,并且在日志中,来自 PresenterSelector
的 getPresenter
方法被多次调用,直到内存不足。
【问题讨论】:
【参考方案1】:为了解决这个问题,我必须检查leanback showcase repository
基于类 ShadowRowPresenterSelector,我设法找到了如何为我的自定义 RowPresenters 创建选择器。
class ShadowRowPresenterSelector : PresenterSelector()
private val aCustomListRowPresenter by lazy ACustomListRowPresenter()
private val bCustomListRowPresenter by lazy BCustomListRowPresenter()
override fun getPresenter(item: Any): Presenter
return when (item)
is ARowVM ->
aCustomListRowPresenter
is BRowVM ->
bCustomListRowPresenter
else -> aCustomListRowPresenter
override fun getPresenters(): Array<Presenter>
return arrayOf(aCustomListRowPresenter, bCustomListRowPresenter)
导致我多次调用方法 getPresenter
的原因是,每次为我的自定义行演示者创建一个新对象时,我都会错误地创建。
我希望这对将来的某人有所帮助。
【讨论】:
以上是关于Leanback 创建不同的自定义行视图的主要内容,如果未能解决你的问题,请参考以下文章