Мне нужно показать список с разными типами представлений. Поэтому мне нужно определить ListView с адаптером, где мне нужно раздуть несколько представлений. Я рассмотрел приведенный пример, но проблема в том, что мой список не симметричен, как в примере, где заголовок повторяется каждый раз после 4 элементов. Итак, я столкнулся с проблемой повторного использования элементов в getView()
.
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
if (convertView == null) {
holder = new ViewHolder();
switch (type) {
case TYPE_1:
convertView = mInflater.inflate(R.layout.item1, null);
.......
break;
case TYPE_2:
convertView = mInflater.inflate(R.layout.item2, null);
.......
break;
}
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
............
............
}
Теперь, если convertView не равен null, но тип элемента, для которого он ранее использовался, был другим, тогда макет не будет совпадать с таким же. Как этот код будет решать эту проблему?
ViewHolder
для раскладок item1 и item2, а вelse
гдеconvertView !=null
нужно проверитьtype
и привести кViewHolder1
илиViewHolder2
... как думаете? - person Yazan   schedule 06.04.2015