convertView
- это представление, которое повторно используется адаптером ListView
. При прокрутке элементы, которые больше не видны, снова используются для отображения новых элементов, которые становятся видимыми. Это называется утилизацией и сделано для улучшения производительности.
Если convertView
равно нулю, это означает, что нет представления, которое можно повторно использовать для этих элементов, поэтому вам нужно накачать новое представление из макета XML и вернуть его в конце метода.
Когда оно не равно нулю, это означает, что представление использовалось повторно. Вы можете использовать представление преобразования, заменить старые данные новыми и вернуть вместо этого это представление. Таким образом, вы можете устранить вызов метода inflate
, который является дорогостоящей операцией. Это помогает вашему списку плавно прокручиваться.
Здесь также есть еще одно улучшение производительности - шаблон держателя вида. Он хранит ссылки на представления элементов, поэтому вам не нужно вызывать операцию findViewById
для каждого элемента. Это также дорогостоящая операция, которую приятно избегать.