Шаблон ViewHolder улучшает частоту кадров прокрутки ListView, как показано в следующем примере: https://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html
Можно ли сохранить этот шаблон при использовании разных видов представлений для разных строк?
Другими словами, возможно ли сделать что-то вроде:
public View getView(int position, View view, ViewGroup parent) { // calculate viewID here if (view == null || *view is not null but was created from different XML than viewID* ) { view = mInflater.inflate(viewId, null);
Да, хотя гораздо лучше переопределить getViewTypeCount() и getItemViewType() в вашем адаптере. Это научит пул объектов Android передавать вам только строку правильного типа в getView().
getViewTypeCount()
getItemViewType()
getView()