Was sind die genauen Eingaben für rowHasChanged in ListView.DataSource?

8

Im nativen Beispiel geben sie uns dieses Stück Code:

%Vor%

Ich kann jedoch keine übersichtliche Dokumentation finden, die die Funktionalität von rowHasChanged beschreibt. Woher bekommen wir unsere zwei Eingänge, row1 und row2? Was definiert row1 und row2 in unserem ListView?

Ich habe die Dokumentation für Listview hier angesehen: Ссылка aber ich bin mir immer noch nicht sicher, was rowHasChanged die Eingaben definiert.

    
Randy Song 11.01.2016, 06:13
quelle

1 Antwort

18

TL, DR; Sie müssen rowHasChanged für die Daten definieren, die Sie der Datenquelle geben.

%Vor%

In diesem speziellen Beispiel sind r1 und r2 eine Zeichenkette, da ds 2 Zeichenketten als Daten haben.

Es liegt an Ihnen, Ihr eigenes Datenformat zu definieren und rowHasChanged entsprechend zu implementieren . rowHasChanged wird grundsätzlich für jeden Datenquellenzeileneintrag jedes Mal aufgerufen, wenn Sie diese Datenquellenzeilen ändern, dann werden nur die Zeilen, die geändert werden, erneut gerendert (wenn rowHasChanged true zurückgegeben hat).

Fortgeschrittenes Beispiel

Nehmen wir an, ich habe diese Art von Daten in meiner DataSource:

%Vor%

in meinem Beispielformat hier, "Typ" ist ein Pflichtfeld, um die Art der Daten zu wechseln, "Alter" ist ein Feld über alle Typen verfügbar, und dann gibt es bestimmte Felder.

dann kann ich rowHasChanged implementieren:

%Vor%

^ So wird eine Zeile nur gerendert, wenn sie sich wirklich entsprechend meinem Format ändert.

(und Sie können sich vorstellen, dass meine renderRow-Funktion auch etwas mit einem Einschalttyp ist)

    
gre 11.01.2016, 09:41
quelle

Tags und Links