Deux RecyclerViews sous l'autre dans une mise en page
Comment puis-je obtenir deux RecyclerViews sous l'autre dans une mise en page? Je ne veux pas avoir un seul RecyclerView pour tous les éléments.
Mon code:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@color/main__item_background"
android:layout_height="match_parent"
android:layout_width="match_parent">
<TextView
android:text="@string/find_friends__already_playing"
android:background="@color/header"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="@dimen/list_header"
android:visibility="visible"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/in_app_friends"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<TextView
android:text="@string/find_friends__invite_friends"
android:background="@color/find_friends__header"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="@dimen/list_header" />
<android.support.v7.widget.RecyclerView
android:id="@+id/friends_to_invite"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</LinearLayout>
OriginalL'auteur alan_derua | 2015-05-05
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse moi-même.
Vous avez besoin de mettre le LinearLayout dans un ScrollView et l'utilisation
wrap_content
comme RecyclerView delayout_height
.Il y a aussi un bug avec RecyclerView et
wrap_content
, donc vous devez utiliser un mise en page personnalisée gestionnaire de. Découvrez ce post: Comment puis-je faire WRAP_CONTENT travailler sur un RecyclerViewRecyclerView
avec les différents types de vues.RecyclerView.Adapter
a ungetItemViewType(int position)
qui sera passé dansonCreateViewHolder(ViewGroup parent, int itemtype)
où vous pouvez basculer sur le type et créer le bonRecyclerView.ViewHolder
.Que dois-je faire, quand je dois utiliser les différents modèles dans le recyclerviews?
wrap_content
est maintenant fixe dans le dernier Android Support Library pas besoin écrire un gestionnaire de mise en page personnaliséele travail comme un charme merci 🙂
pour un défilement fluide, il est préférable de définir également recyclerView.setNestedScrollingEnabled(false) sur chacun de le recycleur vues
OriginalL'auteur alan_derua
J'ai aussi eu le même problème et a écrit une bibliothèque qui permet d'atteindre cet en joignant les cartes et les mises en page.
Gradle dépendance de l'essayer (besoins jcenter repo):
Thea changement xml à utiliser un seul RecyclerView qui correspond parent:
Puis init RecyclerView dans le code comme ceci:
Vous pouvez vérifier ce lien pour plus d'bibliothèque de détails et d'explications. Espérons que cela aide.
hey @ReazMurshed pouvez vous s'il vous plaît m'aider avec ce stackoverflow.com/questions/49952965/...
OriginalL'auteur j2esu
Vous devez créer un fichier XML fichier de mise en page comme ceci
Et dans le code, vous devez appeler
setNestedScrollingEnabled(false)
OriginalL'auteur Ahmet Türk
Vous pouvez donner à chaque
RecycleView
hauteur égale à 0dp et de poids égal à 1:OriginalL'auteur questioner
Utilisation
NestedScrollView
en tant que parent de mise en page, il devrait avoiret donner
à chaque RecyclerView de la vôtre.Il devrait faire défiler l'une après l'autre.
OriginalL'auteur Thomas George
si vous obtenez le bas recyclerview pas de défiler avec le contenu principal, changer le LinearLayout (voir la réponse de alan_derua) à ConstraintLayout et envelopper les deux RecyclerViews à l'intérieur. Voir le code ci-dessous:
Cela a fonctionné pour moi!
OriginalL'auteur Miki
Suffit d'utiliser:
dernière ligne est à votre problème.l'utiliser.
OriginalL'auteur mehrdad