Здравствуйте, у меня имеется RecyclerView который выводит списком какое нибудь число и дату, бывают ситуации когда подряд идут несколько строк с одной и той же датой.
Есть ли какая то возможность сделать отображение даты только в той строке где дата изменилась? т.е. в первой строке пишем дату, во 2 строке если дата такая же то ее не отображаем, далее если в 3 строке дата изменилась то снова отображаем.
Я так думаю это надо в CursorAdapter делать в getItemViewType, но никак не могу проработать это.
Адаптер вашего RecyclerView должен только получать массив данных и отображать это.
Так что логику обработки исходных данных нужно выполнять на этапе получения этих данных.
А getItemViewType используется в тех случаях, когда в RecyclerView требуется отображать элементы, внешний вид которых нужно изменять в зависимости от определённых параметров.
Как пример, окно диалога (чат), где ваши сообщения отображаются справа, а сообщения собеседника - слева.
Если у вас сложности с проработкой алгоритма, то, на мой взгляд, это будет выглядеть следующим образом:
// ваш массив с данными
List<Date> dateList = new ArrayList<>();
// предыдущее значение даты
Date previousDate = null;
for(Date currentDate: dateList) {
if(previousDate != null && currentDate == previousDate) {
// или можно наполнять новый список, если не хотите менять существующий
dateList.remove(currentDate);
} else {
previousDate = currentDate;
}
}
Сравните дату текущей позиции с предыдущей. Если они совпадают - скрывайте текущую дату.
@Override
public void onBindViewHolder(AdapterRecycler.ViewHolder viewHolder, int i) {
if (i>0)
if (adapterList.get(i-1).getDate==adapterList.get(i).getDate)
viewHolder.dataText.setVisible(View.INVISIBLE);
else
viewHolder.dataText.setVisible(View.VISIBLE);
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники