android - 如何将 SpanSizeLookup 逻辑添加到 VerticalGridView?
问题描述
我正在为电视平台开发一个应用程序,当我无法正确处理来自 DPAD 的焦点控制RecyclerView
时,我遇到了一个问题。GridLayoutManager
它有下一个问题:
- 如果列表滚动得太快,焦点会丢失
- 如果滚动太快,焦点会跳转到列表中的第一个位置
- 有时,当按下 DPAD 向下按钮时,焦点位于不正确的索引处(例如我们有 4 列,焦点在第一个元素上,按下 DPAD 向下键后它会跳转到索引 5,但它必须跳转到索引4)
- 恢复实例状态后失去焦点
- 还有很多小问题...
为了避免这种行为,我VerticalGridView
从leanback
库中使用了附加代码,它几乎可以完美运行 - 没有任何问题,它适用于鼠标和键盘。唯一我不能做的事情 - 设置SpanSizeLoockup
为“移动” GridLayoutManager
,因为没有这样的功能。我需要这个来在我的列表中使用标题视图,并在行中使用跨度大小来表示整个宽度。逻辑太奇怪了,LayoutManager
无法理解,我想尽可能简单地实现这一点。
问题:如何添加SpanSizeLoockup
功能VerticalGridView
而不破坏那里的任何东西?
唯一想到的 - 是使用自定义视图来表示列表中带有标题的一行,但这也可能破坏焦点逻辑。
提前致谢!
解决方案
确实,这是不可能的。在此处查看跟踪器问题:https ://issuetracker.google.com/u/1/issues/138276997 。不要犹豫,给它加星标以增加它的知名度。