2016-07-14 2 views
2

Я новичок в программировании на Android, и я много читал об этом в последнее время. Одна из особенностей ListView, если я правильно понял, заключается в том, что он перерабатывает представления и просто заменяет его новыми данными, когда элемент находится вне экрана.ли ListView автоматически перерабатывает представления?

И всего несколько минут назад я читал о бесконечной прокрутке, и RecyclerView был одним из популярных вариантов реализации такой функции. Поэтому я посмотрел RecyclerView, и в этом video упоминается, что RecyclerView автоматически перерабатывает представление, чтобы повторно использовать его для новых данных (как способ контраста его разности с ListView).

Я не понял ListView о его механизме рециркуляции? Или, если он перерабатывает, как вы на самом деле реализуете (или, как вы знаете, вы его реализуете)?

+0

Нет, это не так, но оно дает вам переработанное представление в методе 'Adapter # getView' как второй параметр' View convertView' – pskink

ответ

3

RecyclerView автоматически перерабатывает. Чтобы сделать элементы списка ListView, вам нужно будет сделать эту модификацию внутри класса адаптера.

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    ViewHolder holder; 

    if (convertView == null) { 
     //brand new 
     convertView = LayoutInflater.from(mContext).inflate(R.layout.days_list_item, null); 
     holder = new ViewHolder(); 

     // below is variables that will be different in your case 
     holder.numberOfDays = (TextView) convertView.findViewById(R.id.eventDays); 
     holder.sinceOrUntil = (TextView) convertView.findViewById(R.id.eventType); 
     holder.eventTitle = (TextView) convertView.findViewById(R.id.eventTitle); 
     holder.daysText = (TextView) convertView.findViewById(R.id.DaysText); 

     convertView.setTag(holder); 
    } 
    else { 
     //reusing item 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    // rest of the code 
} 

Для получения дополнительной информации см. Ссылку this.

Смежные вопросы