Android: Ajouter un séparateur entre les éléments dans RecyclerView
Je suis en utilisant RecyclerView
avec des coins arrondis, pour en faire des coins arrondis j'ai utilisé le code XML ci-dessous:
view_rounded.xml:-
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#008f8471"/>
<stroke android:width="2dp" android:color="#ffffff" />
<corners android:radius="10dp"/>
</shape>
fragment_main.xml:-
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/view_rounded"/>
adapter_main.xml:-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textTitle"
style="@style/AppTheme.ListTextView"
/>
</LinearLayout>
style.xml:-
<style name="AppTheme.ListTextView" parent="android:Widget.Material.TextView">
<item name="android:gravity">left</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textAllCaps">false</item>
<item name="android:padding">10dp</item>
<item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Medium</item>
<item name="android:textColor">@color/tabsScrollColor</item>
<item name="android:textStyle">bold</item>
</style>
Arriver (sans élément séparateur):
Nécessaire (avec l'élément séparateur):
source d'informationauteur Sun
Vous devez vous connecter pour publier un commentaire.
J'ai fait de cette façon:
onCreateView() de Fragment:
SimpleDividerItemDecoration.java:
recycler_horizontal_divider.xml:
Espère que cela va vous aider.
RecyclerView n'ont pas de diviseur de paramètres relatifs à l'affichage de la ligne de séparation. Au lieu de cela vous avez besoin pour étendre une classe de ItemDecoration et l'utilisation addItemDecoration (), méthode pour afficher le diviseur.
Créer une classe nommée DividerItemDecoration.java et de coller le code ci-dessous.
DividerItemDecoration.java
Ouvrir Activity.java et de définir l'élément de décoration à l'aide de addItemDecoration() méthode avant de l'adaptateur.
RecyclerView œuvres différentes de ListViews. Vous devez ajouter ItemDecorators pour le recycleur vue. Comme les docs dit,
Jeter un oeil sur ce lien : https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemDecoration.html
vous devriez essayer d'ajouter Diviseur
Bien ce que j'ai fait pour y parvenir, j'ai d'abord créé la mise en page pour mon adaptateur en ligne comme
Puis dans ma carte, j'ai vérifié pour la première ligne et a changé son viewLine Visibilité de l'invisible
Pour ajouter des séparateurs à votre recyclerview vous devez utiliser décorateur - https://gist.github.com/alexfu/0f464fc3742f134ccd1e après que vous l'ajouter à votre projet, ajouter une ligne
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
Réglez le sélecteur à l'arrière-plan de l'élément de la liste à votre disposition si vous utilisez l'adaptateur personnalisé
Essayez celui-ci:
Une très belle solution par Michel-F. Portzert
Essayer Ce À Partir De
Référence
Android: ListView avec des coins arrondis
Tout d'abord, nous avons besoin de l'un drawable pour l'arrière-plan de l'affiche la liste des entrées:
Pour les entrées dans le milieu de la liste, nous n'avons pas besoin des coins arrondis, afin de créer un xml dans votre dossier drawable "list_entry_middle.xml" avec le contenu suivant:
Pour les coins arrondis, en créer un autre, xml, "rounded_corner_top.xml":
La mise en œuvre de la partie inférieure est tout à fait le même, juste avec bottomLeftRadius et bottomRightRadius. (peut-être aussi créer un avec tous les coins arrondis, si la liste n'a qu'une entrée)
Pour une meilleure ergonomie, fournissent également un drawable avec d'autres couleurs pour les différents états, que l'élément de la liste peut avoir et faire référence à un autre fichier xml dans le dossier drawable ("selector_rounded_corner_top.xml") comme suit:
Maintenant faire de même pour les autres milieux de la liste.
Tout ce qui reste maintenant, c'est de céder la droite des milieux dans notre ListAdapter comme suit:
Modifier votre ListView comme ci-dessous.Ajouter le list_bg que le fond de votre ListView Également spécifier un rembourrage pour le haut et le bas de la liste sinon le 1er et le dernier élément de la liste de chevauchement avec les coins arrondis montrant les coins rectangulaires.
Utiliser cette drawable xml pour la forme de la courbe de listview et l'arrière-plan de votre fenêtre ou de toute disposition:
Essayer cette
custom_rounded_list.xml :
Votre listview:
vous définissez list_selector pour les deux textview et listview arrière-plan. Utilisation list_selector seulement pour listview et si vous voulez passez un effet sur textview trop, puis créer un autre list_selector_textview qui n'inclut pas les
<corners android:radius="10dp"
propriété.Le problème, c'est parce que vous êtes réglage de l'arrière-plan avec coins, non seulement pour l'affichage de la liste, mais aussi à l'élément. Vous devez créer des décors pour le point (avec sélecteur) et une pour l'affichage de la liste avec les coins.
list_bg.xml
Maintenant, vous pouvez configurer ce drawable que le fond de votre liste.
Et pour l'affichage de la liste élément, vous pouvez utiliser le sélecteur pour passer de la fonctionnalité:
list_item_selector.xml
Où list_item_selected est :
list_item_selected.xml
Et après que vous pouvez configurer ce sélecteur pour l'article dans votre xml:
De sorte que votre liste d'affichage ont toujours la même histoire, avec des coins et l'arrière-plan des éléments de la vue liste, sera sans angles et sera changé dans les pressées ou de l'état sélectionné.
Juste Une Ligne...
C'est tout
Cette ligne de code a fonctionné pour moi:
Pour ligne verticale, passer la deuxième argument comme
DividerItemDecoration.VERTICAL
.