【问题标题】:Keep focus on first item of the list and scroll the List专注于列表的第一项并滚动列表
【发布时间】:2020-02-19 16:02:03
【问题描述】:

我正在开发一个 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);

【问题讨论】:

    标签: android-tv leanback android-scroll listrowpresenter


    【解决方案1】:

    您可以使用 Leanback 中的 HorizontalGridView 轻松做到这一点,并设置这些参数以强制将焦点放在屏幕左侧

        windowAlignment = BaseGridView.WINDOW_ALIGN_BOTH_EDGE
        windowAlignmentOffset = 0f
        windowAlignmentOffsetPercent = 0f
        itemAlignmentOffsetPercent = 0f
    

    【讨论】:

      【解决方案2】:

      在你所在行的 Presenter 中,你可以获取该行的 Horizo​​ntalGridView 的引用,然后使用 setWindowAlignmentOffsetPercent:

      @Override
      public ViewHolder onCreateViewHolder(ViewGroup parent) {
          
          horizontalGridView = (HorizontalGridView) parent.findViewById(R.id.row_content);
          int offset = 10;
          horizontalGridView.setWindowAlignmentOffsetPercent(offset);
          
      
          MyImageCardView cardView = new MyImageCardView(mContext);
      
          return new ViewHolder(cardView);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-07-15
        • 2015-08-03
        • 1970-01-01
        • 2019-12-17
        • 2022-11-28
        • 1970-01-01
        • 2023-03-29
        • 1970-01-01
        • 2017-05-23
        相关资源
        最近更新 更多