Объяснение метода getView () объекта ArrayAdapter

Не могли бы вы объяснитьgetView() метод.ArrayAdapter

Я прочитал документы, и у него есть три параметра:

position: Положение элемента в адаптереНабор данных элемента, вид которого мы хотим.convertView: Старый вид для повторного использования, если это возможно. Примечание. Перед использованием убедитесь, что это представление не пустое и имеет соответствующий тип. Если невозможно преобразовать это представление для отображения правильных данных, этот метод может создать новое представление.

Гетерогенные списки могут указывать количество типов представлений, так что это представление всегда имеет правильный тип (см. GetViewTypeCount () и getItemViewType (int)).parent: Родитель, к которому в конечном итоге будет присоединено это представление

Я понялаposition параметр. Как они сказали, этоs подразумевает позицию предмета, просмотр которого был запрошен.

Где жеconvertView родом из. Я'видел много примеров, когда они проверяют,convertView нулевой. Если значение равно null, они раздувают новый экземпляр макета строки, заполняют его и возвращают. Я предполагаю, что я'Я тоже обдумал это, но одна вещь все еще сбивает меня с толку. Каков макет, который передается черезconvertView параметр. Еслиresource параметр, который передается при инициализацииArrayAdapter? Кэшированная копия последнего макета возвращается?getView()

И наконец. Что этоparent параметр сделать. У меня нетя видел слишком много примеров, использующих это. Большинство из них просто повторно используют / раздувают макет строки и возвращают его.

(Я'я спрашиваю, потому что у меня есть анимация по нажатию в моемListView, конкретноэтот, который нацелен на тиражирование Spotify 's выпадающее меню быстрого действия, Моя анимация была немного вялой. После некоторой диагностики этой проблемы ямы поняли, что это было связано с тем, что мойgetView() метод занимает немного времени, чтобы завершить, как ям раздувать свежий макет строки в каждой итерации. Кто-то предложил кэшировать макет строки вViewHolder в то время как другие примеры указывают на повторное использованиеconvertView параметр, т.е. только раздувание макета строки, еслиconvertView нулевой.)

Ответы на вопрос(2)

Ваш ответ на вопрос