|
Проблема с неоднородным списком в 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&msg=39287755&tid=1331076]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 143ms |
0 / 0 |