我正在开发一个Android TV应用程序,并显示列表中的项目。当我滚动从当前项目移到下一个项目的列表焦点时,我希望始终保持焦点在第一个项目上,并从相同的选定项目位置滚动整个列表。像this implementation of Hotstar。目前,我正在使用带有以下代码的Android ListRow。
AssetCardPresenter assetCardPresenter = new AssetCardPresenter(getActivity());
MdsCompletedRecordingAdapter cardRowAdapter = new MdsCompletedRecordingAdapter(getActivity(), assetCardPresenter, 10);
Map<String, MdsCompletedRecord> completedRecordingMap = getMdsCompletedRecordingProgramsMap(completedRecordedProgramList);
HeaderItem headerItem = new HeaderItem(SCHEDULED_PROGRAM_HEADER_ID, COMPLETED_HEADER_NAME);
ArrayList<MdsCompletedRecord> arrayList = new ArrayList<>(completedRecordingMap.values());
Collections.reverse(arrayList);
cardRowAdapter.addAllItems(arrayList);
ListRow row = new ListRow(headerItem, cardRowAdapter);
mRowAdapter.add(row);
答案 0 :(得分:0)
您可以通过使用Leanback中的HorizontalGridView并设置这些参数以将焦点置于屏幕左侧来轻松实现此目的
windowAlignment = BaseGridView.WINDOW_ALIGN_BOTH_EDGE
windowAlignmentOffset = 0f
windowAlignmentOffsetPercent = 0f
itemAlignmentOffsetPercent = 0f