我正在开发Leanback应用程序,并且已经通过RowsFragment实现了行和所有内容,并且一切正常。

至于现在,当我在该行中的项目中左右移动时,已聚焦的项目将移至屏幕中间并获得焦点。

示例-

Android TV Leanback RowsFragment将焦点保持在s-LMLPHP

我希望重点突出的项目停留在行的开头而不是中间。

示例-

Android TV Leanback RowsFragment将焦点保持在s-LMLPHP

在网络上找不到任何内容。
真的很感谢有关此的任何信息。

最佳答案

如果您还希望将行的最后一项显示在开头,请使用此ListRowPresenter:

class FocusedItemAtStartListRowPresenter(focusZoomFactor: Int) : ListRowPresenter(focusZoomFactor) {
    override fun createRowViewHolder(parent: ViewGroup): RowPresenter.ViewHolder {
        val viewHolder = super.createRowViewHolder(parent)

        with((viewHolder.view as ListRowView).gridView) {
            windowAlignment = BaseGridView.WINDOW_ALIGN_LOW_EDGE
            windowAlignmentOffsetPercent = 0f
            windowAlignmentOffset = parent.resources.getDimensionPixelSize(R.dimen.lb_browse_padding_start)
            itemAlignmentOffsetPercent = 0f
        }

        return viewHolder
    }
}

这类似于Leanback Launcher的操作。

10-06 06:51