Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在leanback中展开自定义布局_Android_Leanback - Fatal编程技术网

Android 如何在leanback中展开自定义布局

Android 如何在leanback中展开自定义布局,android,leanback,Android,Leanback,我需要在DetailOverview行之后膨胀/添加一个全宽自定义布局,但没有办法,您只能添加一个列表行。我找到了答案: 首先,我需要创建一个扩展RowPresenter的类,并将我的视图膨胀到该类中,还需要创建一个扩展Row的类,并将我的数据放入该类中 FullWidthPresenter: class FullWidthPresenter : RowPresenter() { override fun createRowViewHolder(parent: ViewGroup):

我需要在DetailOverview行之后膨胀/添加一个全宽自定义布局,但没有办法,您只能添加一个列表行。

我找到了答案:

首先,我需要创建一个扩展
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中。因此,我更新我的答案。