Leeroy писал(а):Переопредели методы
public int getItemViewType(int position)
public int getViewTypeCount()
а в
Код: Выделить всё
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
// Choose the layout type
int viewType = getItemViewType(cursor.getPosition());
int layoutId = -1;
switch (viewType) {
case VIEW_TYPE_ONE: {
layoutId = R.layout.list_item_one;
break;
}
case VIEW_TYPE_TWO: {
layoutId = R.layout.list_item_two;
break;
}
}
View view = LayoutInflater.from(context).inflate(layoutId, parent, false);
ViewHolder viewHolder = new ViewHolder(view);
view.setTag(viewHolder);
return view;
}
Не получится. У ExpandableListAdapter нет таких методов. Нужно искать альтернативные библиотеки, так как ExpandableListView такой возможности не предоставляет.
Можно конечно не переиспользовать View и игнорировать convertView, создавая каждый раз новую, подходящую для текущей строки View. Но это больше из разряда вредных советов.
А еще можно самому вести учет View для переиспользования. У AbsListView есть слушатель RecyclerListener он срабатывает когда View отправляется в кучу для не используемых View. Но для реализации подобного нужно хорошо понимать как работает ListView. И еще мне не совсем понятно как поведет себя ListView если подсовывать ему View из его же списка ScrapViews.