Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Использование ScrollView вместо ListView

#android #listview #android_scrollview


Есть приложение (чат) в котором нужно сделать отображение сообщений в виде списка.
Но не просто отобразить списком view-хи с текстом, view могут содержать в себе еще
картинки + view сами по себе могут быть разными. При простом отображении элементов
выбор пал бы на ListView.  Но нужно не только их отображать но и иметь возможность
их видоизменять, анимировать и т.д. Попробовав сделать список через ScrollView я столкнулся
с проблемой что ScrollView притормаживает, как я понял потому что элементы не пересоздаются,
а хранятся в памяти! Вопрос: каким образом лучше реализовать нужную задачу, лично я
склоняюсь к ScrollView,  так как с ним по идее должно быть проще работать, но как можно
решить проблему притормаживания, может есть какие то механизмы?

p.s. может кто то знает как подобные задачи реализован в Viber, VK и остальные messanger
    


Ответы

Ответ 1



Не используйте ScrollView, со временем он будет тормозить еще больше, по мере добавления View. Используйте RecyclerView, примеров в сети достаточно. В нем вы можете указывать любые View в зависимости от объекта, который вам нужно показать. В добавок "ячейки" в RecyclerView которые ушли за экран, дестроятся. это экономит память. UPD У RecyclerView можно переопределить метод getItemViewType(), и в зависимости от возвращаемого значения в onCreateViewHolder() в можете подставлять нужную View

Комментариев нет:

Отправить комментарий