2017-01-13 2 views
0

У меня есть POJO с полем даты, которое я показываю в пределах RecyclerView. Теперь я хотел бы отображать дату только в первом элементе с определенной датой. Это означает, что если у меня есть 4 элемента с датой 01/13/2017, дата должна появиться в первом элементе, а не на остальных 3 предметах. Любые идеи?Элементы группы в recyclerview, основанные на значении

ответ

0

Прежде чем показывать элементы RecyclerView, отметьте все свои первые позиции логическим. Затем в методе вашего адаптера указывается дата, только если объект объекта отмечен. Очевидно, не забудьте показать и скрыть дату на всех ваших предметах, чтобы избежать проблем с переработкой.

+0

Дело в том, что существует не только дата. Может быть, десятки разных дат. Но для каждой даты только первый элемент имеет отображаемую дату – DeKekem

0

Добавить что-то вроде этого адаптера:

onBindViewHolder(..) { 
     holder.itemView.dateTextView.setVisibility(hasDate(position) ? View.VISIBLE : View.GONE) 
    } 

    private boolean hasDate(int position){ 
      if (position == 0) 
       return true; 
      return !items.get(position).getDate().equals(items.get(position-1).getDate()); 
    } 
1

Вы должны сделать это в методе onBindViewHolder в классе адаптера. Позиции позиций начинаются с 0. Следовательно, позиция первого элемента будет равна 0. Для отображения первого элемента дата и другие объекты задают невидимое средство просмотра даты.

public class MyAdapter extends RecyclerView.Adapter<MyViewHolder> { 

    // other methods.. 

    @Override 
    public void onBindViewHolder(MyViewHolder holder, int position) { 
     // initialize your other views 

     if (position == 0){ 
      // set your date here 
      holder.textViewDate.setText(ages.get(position)); 
     }else{ 
      // this will disappear the date viewer 
      holder.textViewDate.setVisibility(View.GONE); 
     } 
    } 
} 
Смежные вопросы