Objaśnienie metody getView () adaptera tablicowego

Czy mógłbyś wyjaśnićgetView() metoda anArrayAdapter.

Czytam dokumenty i ma trzy parametry:

position: Pozycja elementu w zestawie danych adaptera elementu, którego widok chcemy.convertView: Stary widok do ponownego użycia, jeśli to możliwe. Uwaga: Przed użyciem sprawdź, czy ten widok nie jest pusty i czy jest odpowiedni. Jeśli nie jest możliwe przekonwertowanie tego widoku, aby wyświetlić poprawne dane, ta metoda może utworzyć nowy widok.
Listy heterogeniczne mogą określać liczbę typów widoków, dzięki czemu ten widok jest zawsze właściwy (zobacz getViewTypeCount () i getItemViewType (int)).parent: Rodzic, do którego ten widok zostanie ostatecznie dołączony

Zrozumiałemposition parametr. Jak mówili, oznacza to pozycję przedmiotu, który został poproszony.

GdzieconvertView pochodzić z. Widziałem wiele przykładów, w których sprawdzają, czyconvertView ma wartość null. Jeśli ma wartość null, zawyżają one nowe wystąpienie układu wierszy, wypełniają go i zwracają. Wydaje mi się, że i tak mam głowę, ale jedno wciąż mnie zaskakuje. Jaki jest układ przekazywany przezconvertView parametr. Czy jeśliresource parametr przekazywany podczas inicjalizacjiArrayAdapter? Jest to buforowana kopia ostatniego układu zwrócona przezgetView()?

I wreszcie. Co robiparent parametr do. Nie widziałem zbyt wielu przykładów wykorzystujących to. Większość z nich po prostu wykorzystuje / napełnia układ rzędów i zwraca go.

(Pytam, ponieważ mam animację na kliknięcie w moimListView. konkretnieten, który ma na celu odtworzenie menu szybkiego działania Spotify. Moja animacja była trochę powolna. Po zdiagnozowaniu tego problemu przez chwilę zdałem sobie sprawę, że było to spowodowane tym, że mójgetView() Wykonanie metody zajmuje trochę czasu, ponieważ nadmuchuję świeży układ wierszy w każdej iteracji. Ktoś zasugerował buforowanie układu wierszy w aViewHolder podczas gdy inne przykłady wskazują na ponowne użycieconvertView parametr, tj. tylko zawyżanie układu rzędów, jeśliconvertView ma wartość null.)

questionAnswers(2)

yourAnswerToTheQuestion