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 № 1ListView 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