Подтвердить что ты не робот

Что такое преимущества RecyclerView по сравнению с ListView?

Я только начал использовать RecyclerView, и я видел, что ему не хватает многих функций, таких как header, footer, divider, list selector, теперь у меня есть вторая мысль об использовании его вместо ListView.

Каковы преимущества и недостатки RecyclerView по сравнению с ListView? Может ли он обрабатывать более сложные виды, чем ListView?

Я использую ListView до сих пор и для некоторых, пора ли переключиться на RecyclerView или это слишком скоро?

4b9b3361

Ответ 1

С появлением Android Lollipop RecyclerView официально появился. RecyclerView гораздо более мощный, гибкий и значительное улучшение над ListView. Я попытаюсь дать вам подробное представление об этом.

<сильные > Преимущества

1) Шаблон ViewHolder

В ListView было рекомендовано использовать шаблон ViewHolder, но это никогда не было принуждением. В случае RecyclerView это обязательно, используя класс RecyclerView.ViewHolder. Это одно из основных различий между ListView и RecyclerView.

Это делает вещи немного сложнее в RecyclerView, но многие проблемы, с которыми мы столкнулись в ListView, решаются эффективно.

2) LayoutManager

Это еще одно значительное усовершенствование, появившееся в RecyclerView. В ListView единственным доступным видом является вертикальный ListView. Нет официального способа даже реализовать горизонтальный ListView.

Теперь, используя RecyclerView, мы можем иметь

i) LinearLayoutManager - который поддерживает как вертикальные, так и горизонтальные списки,

ii) StaggeredLayoutManager - который поддерживает Pinterest как шахматные списки,

iii) GridLayoutManager - который поддерживает отображение сеток, как показано в приложениях галереи.

И самое лучшее, что мы можем делать все это динамически, как мы хотим.

3) Аниматор предметов

ListViews не хватает поддержки хорошей анимации, но RecyclerView привносит в нее совершенно новое измерение. Используя класс RecyclerView.ItemAnimator, анимация представлений становится настолько простой и интуитивно понятной.

4) Украшение предметов

В случае ListViews динамически украшающие элементы, такие как добавление границ или разделителей, никогда не были легкими. Но в случае RecyclerView класс RecyclerView.ItemDecorator дает огромный контроль разработчикам, но делает вещи немного более трудоемкими и сложными.

5) OnItemTouchListener

Перехват кликов элементов в ListView был простым, благодаря его интерфейсу AdapterView.OnItemClickListener. Но RecyclerView дает гораздо больше возможностей и контроля своим разработчикам с помощью RecyclerView.OnItemTouchListener, но это немного усложняет разработчику.

Недостатки

i) Это сложнее, чем просмотр списка.

ii) Для начинающего может потребоваться много времени, чтобы полностью понять RecyclerView.

iii) Он может излишне затруднить жизнь в кодировании.

iv) Вам нужно будет потратить на него гораздо больше времени, чем когда-либо понадобилось для ListView