首页 > 解决方案 > 如何将 SpanSizeLookup 逻辑添加到 VerticalGridView?

问题描述

我正在为电视平台开发一个应用程序,当我无法正确处理来自 DPAD 的焦点控制RecyclerView时,我遇到了一个问题。GridLayoutManager它有下一个问题:

  1. 如果列表滚动得太快,焦点会丢失
  2. 如果滚动太快,焦点会跳转到列表中的第一个位置
  3. 有时,当按下 DPAD 向下按钮时,焦点位于不正确的索引处(例如我们有 4 列,焦点在第一个元素上,按下 DPAD 向下键后它会跳转到索引 5,但它必须跳转到索引4)
  4. 恢复实例状态后失去焦点
  5. 还有很多小问题...

为了避免这种行为,我VerticalGridViewleanback库中使用了附加代码,它几乎可以完美运行 - 没有任何问题,它适用于鼠标和键盘。唯一我不能做的事情 - 设置SpanSizeLoockup为“移动” GridLayoutManager,因为没有这样的功能。我需要这个来在我的列表中使用标题视图,并在行中使用跨度大小来表示整个宽度。逻辑太奇怪了,LayoutManager无法理解,我想尽可能简单地实现这一点。

问题:如何添加SpanSizeLoockup功能VerticalGridView而不破坏那里的任何东西?

唯一想到的 - 是使用自定义视图来表示列表中带有标题的一行,但这也可能破坏焦点逻辑。

提前致谢!

标签: androidandroid-recyclerviewrecyclerview-layoutleanback

解决方案


确实,这是不可能的。在此处查看跟踪器问题:https ://issuetracker.google.com/u/1/issues/138276997 。不要犹豫,给它加星标以增加它的知名度。


推荐阅读