我正在使用Leanback库,我想知道如何创建多个自定义行视图 . 要在一行中创建不同的项目,您需要扩展 PresenterSelector
PresenterSelector
我尝试为_287577做同样的事情,但无法达到正确的结果 . 在 RowsSupportFragment 和日志中没有绑定行, PresenterSelector 中的 getPresenter 方法被多次调用,直到内存不足 .
RowsSupportFragment
getPresenter
为了解决这个问题,我不得不检查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 是因为我每次为自定义行演示者创建一个新对象时都会出错 .
我希望这将有助于将来的某些人 .
1 回答
为了解决这个问题,我不得不检查leanback showcase repository
基于类 ShadowRowPresenterSelector 我设法找到如何为我的自定义RowPresenters创建选择器 .
是什么原因导致我多次调用方法
getPresenter
是因为我每次为自定义行演示者创建一个新对象时都会出错 .我希望这将有助于将来的某些人 .