Wenn die Methoden getItemCount und getItemViewType im Recycler Adapter aufgerufen werden

8

Ich sah ähnliche Fragen im Stackoverflow, aber sie geben keine klaren Antworten auf meine Frage. Markieren Sie es nicht als Duplikat, bevor Sie meine vollständigen Fragen gelesen haben. Ich habe diesen Link gesehen, dies und dies auch . Danke, dass du deine Zeit damit verbracht hast, dies zu lesen.

Ich habe meine drei Fragen unterhalb des Quellcodes gestellt, bitte sehen Sie sich das an.

Ich werde es einfach machen. Ich versuche zwei ViewHolder im Recycler Adapter zu verwenden, den ich in ViewPager für TabLayout verwenden werde. Beide View Holder haben verschiedene Xml und verschiedene Elemente (zB textview, imageview etc ..) Aber wurden mit einigen Verwirrungen darin getroffen.

Ich habe meine RecyclerView Adapter Klasse wie folgt implementiert

%Vor%

Und meine Fragen sind,

Q1. Wann und wo getViewType aufgerufen wird und was in der Variable " position " sein wird und was wir zurückgeben müssen

Q2. Wann und wo getItemCount aufgerufen wird und wie kann ich richtig zurückgeben (weil ich zwei Ansichtshalter verwende und jeder eine andere Anzahl hat )

Q3. Ich habe separate Recyclerview Adapter-Klasse erstellt, aber es gab einen Fehler, dass RecyclerViewAdapter-Klasse mit dem anderen kollidiert . (Da ich sie in der gleichen Aktivität für TabLayout verwende, dachte ich, dass Fehler geworfen wurde, bin ich richtig? Oder gibt es irgendeine Möglichkeit, separate Adapter-Klasse zu erstellen)

Wenn Sie den gesamten Prozess von RecyclerViewAdapter erklären können, wäre das großartig :) Aber bitte klären Sie meine obigen Verwirrungen.

Jede Art von Hilfe, Danke im Voraus ...:)

    
Ganesh 14.11.2015, 10:52
quelle

1 Antwort

5

Q1) Die Methode getViewType () wird jedes Mal vor der Methode onCreateViewHolder () aufgerufen, wenn Ihre benutzerdefinierte Ansicht erstellt wird.

Sie müssen eine Liste mit Ihren benutzerdefinierten Listeneinträgen List<CustomItem> list=method_to_return_your_list() und jeder davon mit einer getViewType () - Getter-Methode erstellen.

In Ihrem erhalten getItemViewType ()

%Vor%

Dies kann entweder 0 oder 1 sein, wenn Sie Ihre switch case-Anweisung in der onCreateViewHolder () -Methode

berücksichtigen

Q2)   Die Methode getItemCount () sollte die Anzahl der Listenelemente zurückgeben.

%Vor%

Q3) Erstellen Sie keinen anderen RecyclerView-Adapter für dieselbe Recycler-Ansicht

Auch ich fogot.    Anstatt neue ViewHolder zu erstellen, ändern Sie einfach die itemView im Ansichtshalter wie

%Vor%     
Collins A 14.11.2015, 11:16
quelle