如何在 details fragment leanback 中扩充自定义布局
How to inflate custom layout in details fragment leanback
我需要在 DetailOverviewRow 之后 inflate/add 全宽自定义布局但是没有办法,你只能添加一个 ListRow。
我找到了答案:
首先,我需要创建一个扩展 RowPresenter
的 class 并将我的视图扩展到其中,还创建一个扩展 Row
并将我的数据放入其中的 class那。
FullWidthPresenter
:
class FullWidthPresenter : RowPresenter() {
override fun createRowViewHolder(parent: ViewGroup): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.fullwidth_row,
parent,
false
)
)
}
}
和CustomRow
:
class CustomRow(val item: String) : Row()
正在使用:
val selector = ClassPresenterSelector().apply {
FullWidthRowPresenter().also {
addClassPresenter(CustomRow::class.java, it)
}
val rowsAdapter = ArrayObjectAdapter(selector)
val customRow = CustomRow("Media Item Details")
rowsAdapter.add(customRow)
adapter = rowsAdapter
}
我需要在 DetailOverviewRow 之后 inflate/add 全宽自定义布局但是没有办法,你只能添加一个 ListRow。
我找到了答案:
首先,我需要创建一个扩展 RowPresenter
的 class 并将我的视图扩展到其中,还创建一个扩展 Row
并将我的数据放入其中的 class那。
FullWidthPresenter
:
class FullWidthPresenter : RowPresenter() {
override fun createRowViewHolder(parent: ViewGroup): ViewHolder {
return ViewHolder(
LayoutInflater.from(parent.context).inflate(
R.layout.fullwidth_row,
parent,
false
)
)
}
}
和CustomRow
:
class CustomRow(val item: String) : Row()
正在使用:
val selector = ClassPresenterSelector().apply {
FullWidthRowPresenter().also {
addClassPresenter(CustomRow::class.java, it)
}
val rowsAdapter = ArrayObjectAdapter(selector)
val customRow = CustomRow("Media Item Details")
rowsAdapter.add(customRow)
adapter = rowsAdapter
}