Au cours des dernières semaines, j'ai appris à utiliser le RecyclerView
. J'ai besoin d'implémenter une liste horizontale, c'est-à-dire qu'en tournant l'appareil en mode paysage comme ceci:
J'ai trouvé la meilleure solution pour cela (comment créer le déplacement horizontal de RecyclerView
, ici ), mais j'ai rencontré un autre problème. L'élément RecyclerView
était plus grand que la hauteur de l'appareil (en paysage, horizontal), j'ai donc besoin de créer un déplacement vertical et horizontal, simultanément.
J'ai regardé la Android Méthodes développeur pour la classe LayoutManager
, mais mes compétences ne sont pas assez élevées pour comprendre la plupart des méthodes. J'ai également essayé de mettre un RecyclerView
verticalement dans un autre RecyclerView
horizontalement avec tout le contenu, mais j'obtiens une erreur:
IllegalStateException: RecyclerView n'a pas de LayoutManager
Pour y remédier, j'ai supprimé tous les <View ... />
éléments du fichier XML, mais cela ne donne aucun résultat.
Pour clarifier ce que je demande: est-il possible de faire défiler ma mise en page à la fois horizontalement et verticalement, et si vous pouviez expliquer comment je l'apprécierais.
J'étais tellement en colère contre tous les problèmes qui avaient eu tendance avec l'application qui n'avaient pas pensé à la solution la plus simple.
Dans un RecyclerView
se compose de deux fichiers XML, le principal où le RecyclerView est déclaré et un autre avec du contenu.
La solution la plus simple était d'introduire le RecyclerView
dans un ScrollView
. Je peux donc déplacer tous les éléments à la fois grâce à ScrollView
verticalement et horizontalement. Je peux déplacer les éléments grâce à RecyclerView
en mode paysage.
activity_main.xml
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="@dimen/cardIn_margin_ext">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recycler_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scrollbarStyle="outsideInset"
Android:scrollbars="horizontal" />
</ScrollView>
La réponse acceptée n'a pas fonctionné pour moi. J'ai dû utiliser le ScrollView horizontal au lieu du ScrollView simple.
<HorizontalScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="@dimen/cardIn_margin_ext">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recycler_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scrollbarStyle="outsideInset"
Android:scrollbars="horizontal" />
</HorizontalScrollView >