代码之家  ›  专栏  ›  技术社区  ›  Tepes Lucian

Android TV Recycler查看焦点交互

  •  33
  • Tepes Lucian  · 技术社区  · 8 年前

    我目前正在使用常规 RecyclerView 具有 GridLayoutManager 具有不同的 spanCount 依赖于 viewType 用于Android TV应用程序。所有人都工作得很好,但我有两个问题:

    1. 如果长按dpad在项目之间快速滚动,有时焦点会丢失到不是RecyclerView子级的视图。
    2. 我怎么才能知道 回收站视图 将当前焦点视图保持在网格的中心?

    似乎通过使用 VerticalGridView 从…起 LeanBack 图书馆,但 LayoutManger 它使用的是内部的,不支持 span计数 .

    3 回复  |  直到 8 年前
        1
  •  4
  •   Sharath kumar    7 年前

    回收站视图可与android TV配合使用。您可以包括以下可能的解决方案:

    1.将可调焦和可调焦InTouchode添加到视图中。通过代码添加focusListner,并在每次单击视图时请求焦点。

    2.要使“回收站视图”集中的项目保持在中心位置,您必须像本例一样覆盖布局管理器。

    RecyclerView smoothScroll to position in the center. android

        2
  •  4
  •   adboco johnrao07    6 年前
    1. RecyclerView ,

      • 我必须说明: android:descendantFocusability="beforeDescendants"

      • android:nextFocusDown="@+id/recyclerviewId" 设置为将焦点发送到RV本身。

    2. 我看到的唯一解决方案是一个关键侦听器来选择要定位的项目 currentPosition + spancount .

        3
  •  0
  •   Community CDub    8 年前

    你可以试试看 workaround 对于 bug 具有 RecycleView

    这里是 SO question 为了这个。

    这里的问题是 GridLayoutManager 使用 LinearLayoutManager 的实现 onFocusSearchFailed() 当焦点接近 RecyclerView . LinearLayoutManager's

    所以,也许这个变通方法可以解决你的问题,或者给你一个解决问题的方法。