Android TV Leanback RowsFragment 在开始时保持焦点项目

Ita*_*man 7 android rows android-tv leanback

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

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

例子 -

在此处输入图片说明

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

例子 -

在此处输入图片说明

无法在网络上找到有关此的任何内容。非常感谢有关此的任何信息。

use*_*008 7

如果您还希望行的最后一项出现在开头,请使用此 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
    }
}
Run Code Online (Sandbox Code Playgroud)

这类似于 Leanback Launcher 的作用。

  • @Akhilesh Dhar Dubey 不客气:)我通过反编译 Leanback 启动器找到了原始问题的答案。至于你问题的答案,我不太记得我是如何发现它的,但我想我只是在查看 RowsSupportFragment 的可用方法时偶然发现的。 (2认同)