powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Проблема с неоднородным списком в RecyclerView
6 сообщений из 6, страница 1 из 1
Проблема с неоднородным списком в RecyclerView
    #39287646
Oleg_SP1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вывожу на экран список с помощью RecyclerView.
Данные у меня хранятся вот в такой модели:

Код: java
1.
2.
3.
4.
5.
Product mProduct;
Unit mUnit;
String mPeriod;
int mWeight;
boolean isDate;




То есть у меня есть некий ArrayList модели описанный выше. Теперь самое интересное, в классе холдере я использую такую конструкцию:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
if (archive.isDate()){
mProductName.setText(archive.getPeriod());
// тут идет настройка размера и выравнивания textview
} else {
mProductName.setText(archive.getProduct().getName());
mProductDesc.setText(archive.getProduct().getDescript());
mProductUnit.setText(archive.getWeight() + " " + archive.getProduct().getUnitName());
}



При первоначальной загрузке у меня все ок , но стоит начать двигать экран возникает какая то лажа .

Собственно говоря куда копать?
...
Рейтинг: 0 / 0
Проблема с неоднородным списком в RecyclerView
    #39287657
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SP1975Собственно говоря куда копать?копать в сторону понимания, как работает RecyclerView. А работает он так, что переиспользует созданные вьюхи. А теперь подумай, что будет когда ты для даты делаешь другой шрифт и выравнивание, потом прокручиваешь список, она становится невидимой и RecyclerView решает переиспользовать созданный вью для товара. Лампочка в голове загорелась?


З.Ы. в данном случае правильным решением является использовать 2 вида вьюх и 2 лейаута, тогда не нужно будет туда сюда настраивать.

З.З.Ы. а еще более красивым решением будет найти имплементацию для recyclerview с "плавающими" заголовками (для даты) и поменять дурацкую модель с вот этим "boolean isDate". у каждого элемента должна быть дата, для каждой новой даты должен быть плавающий заголовок. тогда код будет простым и легкочитаемым и сам список более привлекательным. а сейчас по сути у тебя каждый элемент это какой-то гибрид крокодила и слона, он то дата, то продукт в зависимости от того, что в isDate - с точки зрения проектирования это жуткая ересь
...
Рейтинг: 0 / 0
Проблема с неоднородным списком в RecyclerView
    #39287663
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
getItemViewType
...
Рейтинг: 0 / 0
Проблема с неоднородным списком в RecyclerView
    #39287695
Oleg_SP1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaOleg_SP1975Собственно говоря куда копать?копать в сторону понимания, как работает RecyclerView. А работает он так, что переиспользует созданные вьюхи. А теперь подумай, что будет когда ты для даты делаешь другой шрифт и выравнивание, потом прокручиваешь список, она становится невидимой и RecyclerView решает переиспользовать созданный вью для товара. Лампочка в голове загорелась?


З.Ы. в данном случае правильным решением является использовать 2 вида вьюх и 2 лейаута, тогда не нужно будет туда сюда настраивать.

З.З.Ы. а еще более красивым решением будет найти имплементацию для recyclerview с "плавающими" заголовками (для даты) и поменять дурацкую модель с вот этим "boolean isDate". у каждого элемента должна быть дата, для каждой новой даты должен быть плавающий заголовок. тогда код будет простым и легкочитаемым и сам список более привлекательным. а сейчас по сути у тебя каждый элемент это какой-то гибрид крокодила и слона, он то дата, то продукт в зависимости от того, что в isDate - с точки зрения проектирования это жуткая ересь

Я вчера нашел такой вариант, просто думал что можно как то одной вьюхой обойтись. Спасибо
...
Рейтинг: 0 / 0
Проблема с неоднородным списком в RecyclerView
    #39287727
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_SP1975Я вчера нашел такой вариант, просто думал что можно как то одной вьюхой обойтись. Спасибо
можно одной, но это не очень красиво, поскольку много ненужного кода, который только шум создает - нужно кроме установки текста текущего элемента еще и стили всегда устанавливать. решение с двумя вьюхами красивей (и правильней)
...
Рейтинг: 0 / 0
Проблема с неоднородным списком в RecyclerView
    #39287755
Oleg_SP1975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaOleg_SP1975Я вчера нашел такой вариант, просто думал что можно как то одной вьюхой обойтись. Спасибо
можно одной, но это не очень красиво, поскольку много ненужного кода, который только шум создает - нужно кроме установки текста текущего элемента еще и стили всегда устанавливать. решение с двумя вьюхами красивей (и правильней)

Сделал )
Большое спасибо еще раз!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Проблема с неоднородным списком в RecyclerView
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]