|
|
|
Проблема с неоднородным списком в RecyclerView
|
|||
|---|---|---|---|
|
#18+
Я вывожу на экран список с помощью RecyclerView. Данные у меня хранятся вот в такой модели: Код: java 1. 2. 3. 4. 5. То есть у меня есть некий ArrayList модели описанный выше. Теперь самое интересное, в классе холдере я использую такую конструкцию: Код: java 1. 2. 3. 4. 5. 6. 7. 8. При первоначальной загрузке у меня все ок , но стоит начать двигать экран возникает какая то лажа . Собственно говоря куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 11:22 |
|
||
|
Проблема с неоднородным списком в RecyclerView
|
|||
|---|---|---|---|
|
#18+
Oleg_SP1975Собственно говоря куда копать?копать в сторону понимания, как работает RecyclerView. А работает он так, что переиспользует созданные вьюхи. А теперь подумай, что будет когда ты для даты делаешь другой шрифт и выравнивание, потом прокручиваешь список, она становится невидимой и RecyclerView решает переиспользовать созданный вью для товара. Лампочка в голове загорелась? З.Ы. в данном случае правильным решением является использовать 2 вида вьюх и 2 лейаута, тогда не нужно будет туда сюда настраивать. З.З.Ы. а еще более красивым решением будет найти имплементацию для recyclerview с "плавающими" заголовками (для даты) и поменять дурацкую модель с вот этим "boolean isDate". у каждого элемента должна быть дата, для каждой новой даты должен быть плавающий заголовок. тогда код будет простым и легкочитаемым и сам список более привлекательным. а сейчас по сути у тебя каждый элемент это какой-то гибрид крокодила и слона, он то дата, то продукт в зависимости от того, что в isDate - с точки зрения проектирования это жуткая ересь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 11:59 |
|
||
|
Проблема с неоднородным списком в RecyclerView
|
|||
|---|---|---|---|
|
#18+
getItemViewType ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 12:22 |
|
||
|
Проблема с неоднородным списком в RecyclerView
|
|||
|---|---|---|---|
|
#18+
chpashaOleg_SP1975Собственно говоря куда копать?копать в сторону понимания, как работает RecyclerView. А работает он так, что переиспользует созданные вьюхи. А теперь подумай, что будет когда ты для даты делаешь другой шрифт и выравнивание, потом прокручиваешь список, она становится невидимой и RecyclerView решает переиспользовать созданный вью для товара. Лампочка в голове загорелась? З.Ы. в данном случае правильным решением является использовать 2 вида вьюх и 2 лейаута, тогда не нужно будет туда сюда настраивать. З.З.Ы. а еще более красивым решением будет найти имплементацию для recyclerview с "плавающими" заголовками (для даты) и поменять дурацкую модель с вот этим "boolean isDate". у каждого элемента должна быть дата, для каждой новой даты должен быть плавающий заголовок. тогда код будет простым и легкочитаемым и сам список более привлекательным. а сейчас по сути у тебя каждый элемент это какой-то гибрид крокодила и слона, он то дата, то продукт в зависимости от того, что в isDate - с точки зрения проектирования это жуткая ересь Я вчера нашел такой вариант, просто думал что можно как то одной вьюхой обойтись. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 15:04 |
|
||
|
Проблема с неоднородным списком в RecyclerView
|
|||
|---|---|---|---|
|
#18+
Oleg_SP1975Я вчера нашел такой вариант, просто думал что можно как то одной вьюхой обойтись. Спасибо можно одной, но это не очень красиво, поскольку много ненужного кода, который только шум создает - нужно кроме установки текста текущего элемента еще и стили всегда устанавливать. решение с двумя вьюхами красивей (и правильней) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 17:20 |
|
||
|
Проблема с неоднородным списком в RecyclerView
|
|||
|---|---|---|---|
|
#18+
chpashaOleg_SP1975Я вчера нашел такой вариант, просто думал что можно как то одной вьюхой обойтись. Спасибо можно одной, но это не очень красиво, поскольку много ненужного кода, который только шум создает - нужно кроме установки текста текущего элемента еще и стили всегда устанавливать. решение с двумя вьюхами красивей (и правильней) Сделал ) Большое спасибо еще раз! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 21:29 |
|
||
|
|

start [/forum/topic.php?fid=13&fpage=11&tid=1331076]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 162ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...