2

Ich habe eine Karte, die neben anderen Informationen kann ein Bild, Bild-Slider (Third-Party-Bibliothek) oder Video (YouTubeAPI) enthalten. Früher habe ich Kartenlayout verwendet, alle drei Medienelemente (Bild, Slider, Video) und je nach Bedarf ihre Sichtbarkeit geändert, unnötige Elemente ausgeblendet und nur das Notwendige sichtbar gelassen.Android. Mit Fragmenten in RecyclerView ist es richtig oder falsch?

Dann entschied ich mich zu versuchen, die Fragmente zu verwenden. Wurden die drei Fragmente für jedes Element (beachten Sie, dass die Fragmente einer Klasse enthält alle logischen Element, er sollte nur übergeben Parameter, und den Rest wird er selbst tun), und versuchte, es in RecyclerView zu verwenden. Früher in meiner Karte hatte drei Elemente, aber jetzt wollte ich mich nur richtige Fragment in einem speziellen Container in der Karte.

Ich habe auch gelesen, dass die Verwendung von Fragmenten in RecyclerView eine schlechte Praxis ist. Frage - es lohnt sich in diesem Fall die Verwendung von Fragmenten, der Einfachheit halber (diese Fragmente werden auch in anderen Activiti und jetzt alle Logik der Medien Elemente in ihre Klassen von Fragmenten bewegt). Oder muss ich alte Schema verwenden - Karte enthält direkt alle Medienelemente, die ich dynamisch sichtbar/unsichtbar gemacht und gefüllt, wie benötigt?

enter image description here

+0

ein Fragment als Container Verwendung in Dieser Fall ist unnötig und kompliziert Ihre Struktur. Untersuchen Sie DataBinding und MVVM. Sie können nahtlos die Sichtbarkeit von Elementen verwalten und es fügt sich wunderbar in RecyclerView ein. – AgileNinja

Antwort

1

Ich bin mir nicht ganz klar, was Ihre Anforderung, die Ansichten zu ändern ist. Jedes Fragment in RecyclerView ist ein ViewHolder.

Dieser lesenswert sein kann:

für die verschiedenen Komponenten Heterogenous Layouts inside RecyclerView

  • RecyclerView der Lage ist, sich dessen bewusst zu mehr als eine Art von ViewHolder
+0

Meine Kartenansicht (Recycler-Ansichtsartikel) kann nur ein Medienelement (Bild, Bildschieberegler oder Video) enthalten. Da ich die Recycler-Ansicht verwende, muss ich die erstellte Kartenansicht erstellen und wiederverwenden. Ich suche den besten Weg, es zu tun. – Mikhail

+0

Hinweis: Ich möchte keinen separaten Kartenansichtstyp für jedes Medium erstellen. Die Kartenansicht enthält andere Ansichten, die nicht geändert werden. Medienelement ist nur ein Teil meiner Kartenansicht und kann sich dynamisch ändern (Bild, Bildschieber oder Video). – Mikhail

+0

Verwenden Sie die obige Methode, mit der die Recycleransicht drei Arten von ViewHolders erkennen kann. Erstellen Sie drei Layouts für jeden ViewHolder. Erstellen Sie nun ein viertes Layout mit diesen freigegebenen Ansichtselementen und verwenden Sie das Tag in XML. [Layouts erneut verwenden mit ] (http://developer.android.com/training/improving-layouts/reusing-layouts.html) – apelsoczi