Android — разница между RecyclerView и ListView

Опубликовано: 28 Января, 2023

В Android View это основной строительный блок пользовательского интерфейса. Представление — это небольшой прямоугольный блок, реагирующий на действия пользователя. RecyclerView и ListView — два основных представления в Android. Итак, в этой статье мы увидим основные различия между этими двумя взглядами.

RecyclerView

RecyclerView — это ViewGroup, добавленная в студию Android в качестве преемника GridView и ListView. Это улучшение обоих из них, и его можно найти в последних пакетах поддержки v-7. Он был создан, чтобы сделать возможным создание любых списков с XML-макетами в качестве элемента, который можно настраивать в широких пределах, повышая при этом эффективность ListViews и GridViews. Это улучшение достигается за счет повторного использования представлений, которые не видны пользователю. Например, если пользователь прокрутил вниз до позиции, где видны элементы 4 и 5; элементы 1, 2 и 3 будут удалены из памяти, чтобы уменьшить потребление памяти.

Чтобы узнать больше о RecyclerView, обратитесь к этой статье: RecyclerView в Android с примером

Посмотреть список

ListView — это тип AdapterView, который отображает вертикальный список представлений с возможностью прокрутки, и каждое представление размещается одно под другим. С помощью адаптера элементы вставляются в список из массива или базы данных. Для отображения элементов списка используется метод setAdaptor(). Метод setAdaptor() соединяет адаптер со списком. Android ListView — это ViewGroup, которая используется для отображения списка элементов в нескольких строках и содержит адаптер, который автоматически вставляет элементы в список.

Чтобы узнать больше о ListView, обратитесь к этой статье: Android Listview в Java с примером

Таблица различий

RecyclerView

Посмотреть список

Адаптер RecyclerView заставляет нас использовать шаблон ViewHolder. Представления разделены на методы onCreateViewholder() и onBindViewholder(). ListView по умолчанию не обеспечивает такой защиты, поэтому без реализации шаблона ViewHolder внутри getView().
Эффективная прокрутка, мы можем выбрать способ прокрутки по вертикали или горизонтали и сетки. Неэффективная прокрутка, мы можем создать только вертикальную прокрутку.
Использование меньшего объема памяти. Для длинного списка используется больше памяти. Иногда устройства зависают.
Анимации с использованием ItemAnimator получаются простыми и плавными. Анимации, такие как появление и исчезновение списка, добавление или удаление определенных представлений и т. д. Сложно использовать анимацию и трудно с ней справиться.
Разделители между элементами по умолчанию не отображаются. Разделители между элементами отображаются по умолчанию.
Используйте ItemDecorations, чтобы добавить поля и рисовать на элементе View или под ним. ItemDecorations требуют настройки.