J'utilise actuellement un RecyclerView
régulier avec GridLayoutManager
avec différents spanCount
dépendant du viewType
pour une Android TV app Tout fonctionne correctement mais j'ai 2 problèmes:
RecyclerView
de conserver la vue focalisée actuelle au centre de la grille?Il semble que les problèmes répertoriés soient résolus en utilisant la bibliothèque VerticalGridView
de LeanBack
mais la LayoutManger
qu'elle utilise est interne et ne prend pas en charge spanCount
.
La vue Recycleur fonctionne très bien avec Android TV. Les solutions possibles que vous pouvez inclure sont:
1. ajoutez focusable et focusableInTouchode à la vue. Ajoutez focusListner à travers le code et demandez le focus à chaque fois que vous cliquez sur la vue.
2.Pour conserver l'élément focalisé de Recycler View au centre, vous devez remplacer le gestionnaire de mise en page, tout comme cet exemple.
RecyclerView smoothScroll pour se positionner au centre. Android
ou
utilisez layoutManager.scrollToPositionWithOffset (position, offset) où position et décalage de la vue focalisée sur la position est la largeur de vue du recycleur/2.
Pour un RecyclerView
normal,
Je devais préciser: Android:descendantFocusability="beforeDescendants"
Et aussi Android:nextFocusDown="@+id/recyclerviewId"
est configuré pour envoyer le focus au RV lui-même.
La seule solution que je vois est un écouteur clé pour sélectionner l'élément à positionner currentPosition + spancount
.