/ / RecyclerView ajoute des lignes de séparation uniquement entre certains éléments - android, android-recyclerview

RecyclerView ajoute des lignes de séparation uniquement entre certains éléments - android, android-recyclerview

Je veux ajouter des lignes de séparation dans mon RecyclerView Layout. J'ai déjà cherché quelque temps, mais je ne trouve que des solutions qui utilisent RecyclerView.addItemDecoration, qui ajoute le séparateur entre tous les éléments. Je pourrais créer une mise en page qui a une seule ligne et l'ajouter à la RecyclerView, mais cela ne me semble pas être une solution élégante.

Réponses:

2 pour la réponse № 1

Vous pouvez écrire une coutume RecyclerView.ItemDecoration et dessinez le séparateur uniquement là où vous en avez besoin. Et réglez-le sur RecyclerView en utilisant:

recyclerView.addItemDecoration(new YourItemDecoration());

C'est la valeur par défaut DividerItemDecoration code source: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/recyclerview/src/android/support/v7/widget/DividerItemDecoration.java

Vous pouvez trouver la logique de dessin du diviseur dans onDraw , où il dessine un séparateur pour tous les éléments. Vous devez modifier cette partie en fonction de vos besoins pour dessiner un séparateur pour certains articles uniquement. getItemOffsets() ajoute un décalage à l'élément pour libérer de l'espace pour le séparateur.


1 pour la réponse № 2
 DividerItemDecoration myDivider = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL);
divider.setDrawable(ContextCompat.getDrawable(context, R.drawable.cutm_dvdr));
yourRecyclerView.addItemDecoration(myDivider );

ajoutez cutm_dvdr.xml dans le dossier drawble

 <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<size android:height="1dp" />
<solid android:color="#e20" />
</shape>

0 pour la réponse № 3

vous pouvez ajouter une vue personnalisée dans la disposition des éléments de ligne de la vue recycleur et définir la visibilité visible ou disparaître dans l'adaptateur quel élément de ligne que vous souhaitez aligner, vous pouvez définir.


-1 pour la réponse № 4

DividerItemDecoration recycleViewDivider = newDividerItemDecoration (contexte, DividerItemDecoration.VERTICAL); recycleViewDivider.setDrawable (ContextCompat.getDrawable (contexte, R.drawable.recycleview_item_divider));

et ajoutez ce DividerItemDecoration à vous RecycleView RecyclerView.addItemDecoration (recycleViewDivider);