Leanback 创建不同的自定义行视图
Leanback create different custom Row Views
我正在使用 Leanback 库,我想知道如何创建多个自定义行视图。要连续创建不同的项目,您需要扩展 PresenterSelector
我尝试对 ListRowPresenter
执行相同的操作,但无法获得正确的结果。
RowsSupportFragment
中没有绑定任何行,在日志中多次调用 PresenterSelector
中的 getPresenter
方法,直到内存不足。
为了解决这个问题,我必须检查 leanback showcase repository
基于 class 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 库,我想知道如何创建多个自定义行视图。要连续创建不同的项目,您需要扩展 PresenterSelector
我尝试对 ListRowPresenter
执行相同的操作,但无法获得正确的结果。
RowsSupportFragment
中没有绑定任何行,在日志中多次调用 PresenterSelector
中的 getPresenter
方法,直到内存不足。
为了解决这个问题,我必须检查 leanback showcase repository
基于 class 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
的原因是我每次都错误地为我的自定义行演示者创建了一个新对象。
我希望这对以后的人有所帮助。