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

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

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

position: The position of the item within the adapter's data set of the item whose view we want. convertView: The old view to reuse, if possible. Note: You should check that this view is non-null and of an appropriate type before using. If it is not possible to convert this view to display the correct data, this method can create a new view.
Heterogeneous lists can specify their number of view types, so that this View is always of the right type (see getViewTypeCount() and getItemViewType(int)). parent: The parent that this view will eventually be attached to

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

Где жеconvertView родом из. Я видел много примеров, когда они проверяли,convertView нулевой. Если значение равно null, они раздувают новый экземпляр макета строки, заполняют его и возвращают. Думаю, я тоже об этом подумал, но одна вещь все еще сбивает меня с толку. Каков макет, который передается черезconvertView параметр. Еслиresource parameter that is passed in when initialising the ArrayAdapter? Является ли кэшированная копия последнего макета, возвращенногоgetView()?

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

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

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

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