如何将 SpanSizeLookup 逻辑添加到 VerticalGridView?

问题描述 投票:0回答:2

我正在为电视平台开发一个应用程序,当默认的

RecyclerView
GridLayoutManager
无法正确处理 DPAD 的焦点控制时,我遇到了一个问题。它有以下问题:

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

为了避免这种行为,我使用

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

问题:如何将

SpanSizeLoockup
功能添加到
VerticalGridView
并且不破坏那里的任何内容?

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

提前致谢!

android android-recyclerview recyclerview-layout leanback
2个回答
1
投票

简短的回答 - 如果不对源代码进行硬修改,这是不可能的。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.