/ / Czy ListView ponownie rysuje się przy każdej zmianie adaptera? - Android, widok listy, widok listy Android

czy ListView ponownie rysuje się za każdym razem, gdy zmienia się adapter? - Android, listview, android-listview

Chcę utworzyć listę SMS-ów we własnej aplikacji.

moje pytanie dotyczy kroków wykonanych przez adapter (automatycznie)

- gdy przybyła nowa wiadomość, dodaje ją do obiektu listy (nie ListView). - następnie przekazuję listę do adaptera listView. metoda GetView () adaptera działa dla każdego elementu na liście

- Powiadomię widok listy o zmianie. - widok listy ponownie losuje wszystko istniejące rzędy, a następnie narysuj nowy rząd.

Moje pytanie: to zachowanie (ponowne losowanie i przerysowanie, oznacza to, że każdy rząd będzie utopiony razy równy całkowitej liczbie rzędów) wpływa na wydajność?

*jeśli pytanie nie jest jasne, mówię: czy ListView rysuje wszystkie pliki Raw, aby dodać nowy wiersz? *

Odpowiedzi:

2 dla odpowiedzi № 1

ListView nie przerysowuje każdego elementu, aby go dodać. Zostanie narysowany tylko po przewinięciu do niego. I tak, musisz powiadomić ListView o zmianie.


1 dla odpowiedzi nr 2

Chyba chcesz dodać przedmiot na najwyższym miejscu. Zmieni się więc pozycja i indeks wszystkich pozostałych elementów. Adapter przerysuje całą listę (tylko elementy widoczne na ekranie).

Dla wydajności możesz użyć wzorca viewHolder. zobacz ten link [Making ListView Scrolling Smooth] [1]http://developer.android.com/training/improving-layouts/smooth-scrolling.html