Есть приложение (чат) в котором нужно сделать отображение сообщений в виде списка. Но не просто отобразить списком view-хи с текстом, view могут содержать в себе еще картинки + view сами по себе могут быть разными. При простом отображении элементов выбор пал бы на ListView. Но нужно не только их отображать но и иметь возможность их видоизменять, анимировать и т.д. Попробовав сделать список через ScrollView я столкнулся с проблемой что ScrollView притормаживает, как я понял потому что элементы не пересоздаются, а хранятся в памяти! Вопрос: каким образом лучше реализовать нужную задачу, лично я склоняюсь к ScrollView, так как с ним по идее должно быть проще работать, но как можно решить проблему притормаживания, может есть какие то механизмы?
p.s. может кто то знает как подобные задачи реализован в Viber, VK и остальные messanger
Ответ
Не используйте ScrollView, со временем он будет тормозить еще больше, по мере добавления View. Используйте RecyclerView, примеров в сети достаточно. В нем вы можете указывать любые View в зависимости от объекта, который вам нужно показать. В добавок "ячейки" в RecyclerView которые ушли за экран, дестроятся. это экономит память.
UPD
У RecyclerView можно переопределить метод getItemViewType(), и в зависимости от возвращаемого значения в onCreateViewHolder() в можете подставлять нужную View
Комментариев нет:
Отправить комментарий