5

Ich versuche CardView in einer Liste zu implementieren RecyclerView.Adapter verwenden. Das Erstellen von Karten in einer Liste war ziemlich einfach mit RecyvlerView.Adapter. Ich verwende parse.com als mein Backend, also werden Abfragen nach Kartendaten unter Verwendung seiner APIs gemacht. Jetzt möchte ich Paginierung zu dieser Liste hinzufügen. Wenn ich Parse's ParseQueryAdapter verwende, kann ich von dieser API Seitenumbrüche erstellen. Aber dann müsste ich RecyclerView.Adapter (oder nicht?) Fallen lassen und auf die alte BaseAdapter-Methode zurückgreifen. Allerdings möchte ich das nicht machen und arbeite mit diesem neuen RecyclerView.Adapter von Android (wegen der Effizienz, die es verspricht).Android ParseQueryAdapter Paginierung mit RecyclerView.Adapter

Meine Frage: Was ist der bessere Ansatz?

  1. Verwenden ParseQueryAdapter mit alter BaseAdapter Methode
  2. Verwendung RecyclerView.Adapter mit normalen Datenabrufverfahren und meine eigene Paginierung schreiben

Antwort

1

Sie können versuchen, eine Shim zwischen den beiden Adaptern machen. Es würde RecyclerView.Adapter erweitern und einen ParseQueryAdapter enthalten. Dann gibt es im Grunde nur alle Methoden an. So zum Beispiel ruft der onBindViewHolder nur die ParseAdapter.getItemView auf. Der schwierige Teil besteht darin, den Listener für den Fall einzurichten, dass die Parsedaten herunterfallen, indem sie addOnQueryLoadListener verwenden und eine Aktualisierung der RecyclerView auslösen.

Hier ist ein Stummel: https://gist.github.com/mrowl/0ab027b5f84e25f51102

Es scheint für den Grund Fall zu arbeiten, aber es kann wohl auf deutlich verbessert werden. Ich bin ziemlich neu auf dieser Seite der API.