J'ai un ScrollView,
qui contient un LinearLayout
vertical. C'est un endroit où j'ajoute une certaine quantité de vues appelées "Section". "Section" est un LinearLayout,
qui contient un TextView
et `RecyclerView.
section:
Le problème est que parfois RecyclerView
n'est pas vraiment wrap_content
. Par conséquent, cela crée 2 types de problèmes (selon le type de solution que j'essaie d'utiliser).
-
Il peut être non déroulable (il correspond à la hauteur de l'écran et je ne peux pas le faire défiler vers le bas pour voir le reste des éléments à l'intérieur).
-
Il peut être déroulable de manière imbriquée.
Le problème initial est qu'il a un défilement imbriqué. Donc, je veux que les RecyclerViews
soient simplement des LinearLayouts
verticaux simples et que la seule chose qui doit avoir un effet de défilement soit le ScrollView
racine.
Qu'ai-je essayé de faire?
-
étendre le
GridLayoutManager
et remplacer la méthodecanScrollVertically().
:public boolean canScrollVertically(){ return false; }
-
étendre la classe
RecyclerView
et remplacer@Override public boolean onInterceptTouchEvent(MotionEvent event){ return false; }
@Override public boolean onTouchEvent(MotionEvent event){ return false; }
-
Désactiver le
NestedScrolling
viaxml
partout où c'est possible. -
Remplacer
GridLayoutManager
en utilisant cette solution: SOLUTION -
Combiner 1-4