Von Server (API REST), kann ich eine Liste von Artikel (Produkte) mit einigen Informationen von jedem erhalten. Ich ordne diese Liste in einem RecyclerView mit einem Adapter ab. Ich zeige eine Ladeansicht, bis ich diese Liste erhalte.Laden von Daten aus dem Netzwerk pro Artikel in RecyclerView
Allerdings muss ich mehr Informationen pro Artikel in jeder Zeile anzeigen, aber ich kann diese Informationen nur mit einer anderen HTTP-Anfrage (pro Artikel) erhalten, die ID dieses Produkts sendend. Daher möchte ich die Benutzeroberfläche jeder Zeile mit dieser Information asynchron füllen (wenn die Zeile angezeigt wird).
Wie ist der bessere Weg das zu erreichen? Ich denke, das ist das gleiche Problem wie das asynchrone Laden von Bildern, also sollte ich etwas wie Bibliotheken wie Picasso oder Universal Image Loading machen. Ist es nicht?
Kennen Sie irgendeine Bibliothek, um mir dabei zu helfen?
Vielen Dank im Voraus!
Sie könnten einen AsyncTaskLoader für jeden RecyclerView-Eintrag verwenden, der gestartet wird, wenn die Zeile angezeigt wird. –
Ja! Wie auch immer, ich sollte die Wiederverwendung von Ansichten mit de ViewHolder verwalten: Wenn der Dienst reagiert, wird die Ansicht möglicherweise wiederverwendet und einem anderen Element zugeordnet. – LopezAgrela
Wenn Sie eine statische Ansicht haben, ist es einfach wiederzuverwenden. Wenn Sie eine "On Click Visible" Ansicht haben, muss diese auf jeden Fall gerendert werden. Wenn Sie diese Operation oft tun, sollten Sie vielleicht über eine Holding-Datenstruktur nachdenken, die am Anfang mit Null gefüllt ist (also würde ein Klick eine Asynctask ausgeben) und wenn Sie das entsprechende Element bereits heruntergeladen haben, wird es gefüllt (ein Klick würde ein Laden auslösen) vom Objekt). Oder wenn es nicht zu groß ist (keine Bilder oder Videos) lade die zusätzlichen Informationen komplett herunter, es klingt wie Overhead, aber manchmal macht es Dinge einfacher und effizienter als vorher. –