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

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

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

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

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, но это немного усложняет для разработчика.

Недостатки

я) Это намного сложнее, чем представление списка.

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

III) Это может излишне усложнить вашу жизнь кодирования.

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

Другие вопросы по тегам