Android 如何在leanback中展开自定义布局
我需要在DetailOverview行之后膨胀/添加一个全宽自定义布局,但没有办法,您只能添加一个列表行。我找到了答案: 首先,我需要创建一个扩展Android 如何在leanback中展开自定义布局,android,leanback,Android,Leanback,我需要在DetailOverview行之后膨胀/添加一个全宽自定义布局,但没有办法,您只能添加一个列表行。我找到了答案: 首先,我需要创建一个扩展RowPresenter的类,并将我的视图膨胀到该类中,还需要创建一个扩展Row的类,并将我的数据放入该类中 FullWidthPresenter: class FullWidthPresenter : RowPresenter() { override fun createRowViewHolder(parent: ViewGroup):
RowPresenter
的类,并将我的视图膨胀到该类中,还需要创建一个扩展Row
的类,并将我的数据放入该类中
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
}
我找到了我的答案:
首先,我需要创建一个扩展RowPresenter
的类,并将我的视图膨胀到该类中,还需要创建一个扩展Row
的类,并将我的数据放入该类中
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
}
你能分享一下你是如何使用它的吗?此外,此额外行的用途是,当您按下向下的d-pad键时,它将向下滚动到该视图?1-您仅创建FullWidthPresenter的实例,如果您使用ClassPresenterSelector,请使用CustomRow添加新的ClassPresenter。2-创建CustomRow的实例并将其添加到arrayObjectAdapter中。因此,我更新了我的答案。你能分享一下你是如何使用它的吗?此外,此额外行的用途是,当您按下向下的d-pad键时,它将向下滚动到该视图?1-您仅创建FullWidthPresenter的实例,如果您使用ClassPresenterSelector,请使用CustomRow添加新的ClassPresenter。2-创建CustomRow的实例并将其添加到arrayObjectAdapter中。因此,我更新我的答案。