gpt4 book ai didi

android - Leanback 创建不同的自定义行 View

转载 作者:搜寻专家 更新时间:2023-11-01 09:23:17 25 4
gpt4 key购买 nike

我正在使用 Leanback 库,我想知道如何创建多个自定义行 View 。要连续创建不同的项目,您需要扩展 PresenterSelector

我尝试对 ListRowPresenter 执行相同的操作,但无法获得正确的结果。RowsSupportFragment 中没有绑定(bind)任何行,并且在日志中多次调用了 PresenterSelector 中的 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 的原因是每次我都错误地为我的自定义行展示器创建了一个新对象。

我希望这对将来的人有所帮助。

关于android - Leanback 创建不同的自定义行 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52761500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com