ANDROID_LIVE Telegram 273
​​Адаптируем RecyclerView
#разработка #библиотека

За последние несколько лет в Android поменялось много вещей. Но одна вещь остается неизменной: нам нужно отобразить пользователям данные в наиболее удобном для них виде. И если этих данных много, то мы используем список. Сегодня есть RecyclerView, которым мы отображаем списки уже несколько лет. Но так ли хорош RecyclerView или есть вещи, которые можно улучшить?

1) Adapter. Каждый RecyclerView для отображения данных использует адаптер. Если рассмотреть адаптер как паттерн, то это прослойка, которая позволяет интерфейсам уже созданных классов использоваться в других интерфейсах. Все адаптеры используют разные реализации ViewHolder, поэтому адаптер RecyclerView подходит под это определение. Но одной из наиболее известных ошибок, которая встречается в написании адаптеров является бизнес-логика внутри них. Надо помнить, что Adapter — это слой, который связывает логику отображения, и в нем нет места для бизнес-логики.

2) В любом адаптере надо переопределить много методов:
• установку данных в конструкторе или через сеттер;
• переопределить getItemCount();
• если есть несколько типов данных, то переопределить getItemViewType();
• переопределить onCreateViewHolder();
• ну и напоследок написать onBindViewHolder();

Если типов данных в списке много, то количество кода увеличивается. А с появлением нескольких адаптеров повторяющегося кода становится в разы больше.

3) DiffUtil — это класс, который решает проблему установки новых данных в адаптер, изменяя только те данные, которые нужно. Но недостаток в том же, что и во втором пункте: повторяющийся код. Для каждого Callback надо переопределить areItemsTheSame() и areContentsTheSame() и число этих методов растет в зависимости от числа типов элементов.

Этот список можно продолжать и дальше, ведь мы не касались обработки пустого списка, пагинации, выбора данных и прочих распространенных вещей.

Для решения этих и других проблему, рекомендую библиотеку OneAdapter, которая убирает большинство из этих недостатков. В ее основе лежит подход в создании модулей для биндинга ViewHolder, кликов, пагинации. Подробнее о библиотеке можно почитать в этой статье.
👍1



tgoop.com/android_live/273
Create:
Last Update:

​​Адаптируем RecyclerView
#разработка #библиотека

За последние несколько лет в Android поменялось много вещей. Но одна вещь остается неизменной: нам нужно отобразить пользователям данные в наиболее удобном для них виде. И если этих данных много, то мы используем список. Сегодня есть RecyclerView, которым мы отображаем списки уже несколько лет. Но так ли хорош RecyclerView или есть вещи, которые можно улучшить?

1) Adapter. Каждый RecyclerView для отображения данных использует адаптер. Если рассмотреть адаптер как паттерн, то это прослойка, которая позволяет интерфейсам уже созданных классов использоваться в других интерфейсах. Все адаптеры используют разные реализации ViewHolder, поэтому адаптер RecyclerView подходит под это определение. Но одной из наиболее известных ошибок, которая встречается в написании адаптеров является бизнес-логика внутри них. Надо помнить, что Adapter — это слой, который связывает логику отображения, и в нем нет места для бизнес-логики.

2) В любом адаптере надо переопределить много методов:
• установку данных в конструкторе или через сеттер;
• переопределить getItemCount();
• если есть несколько типов данных, то переопределить getItemViewType();
• переопределить onCreateViewHolder();
• ну и напоследок написать onBindViewHolder();

Если типов данных в списке много, то количество кода увеличивается. А с появлением нескольких адаптеров повторяющегося кода становится в разы больше.

3) DiffUtil — это класс, который решает проблему установки новых данных в адаптер, изменяя только те данные, которые нужно. Но недостаток в том же, что и во втором пункте: повторяющийся код. Для каждого Callback надо переопределить areItemsTheSame() и areContentsTheSame() и число этих методов растет в зависимости от числа типов элементов.

Этот список можно продолжать и дальше, ведь мы не касались обработки пустого списка, пагинации, выбора данных и прочих распространенных вещей.

Для решения этих и других проблему, рекомендую библиотеку OneAdapter, которая убирает большинство из этих недостатков. В ее основе лежит подход в создании модулей для биндинга ViewHolder, кликов, пагинации. Подробнее о библиотеке можно почитать в этой статье.

BY Android Live 🤖




Share with your friend now:
tgoop.com/android_live/273

View MORE
Open in Telegram


Telegram News

Date: |

With the “Bear Market Screaming Therapy Group,” we’ve now transcended language. Healing through screaming therapy The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). The channel also called on people to turn out for illegal assemblies and listed the things that participants should bring along with them, showing prior planning was in the works for riots. The messages also incited people to hurl toxic gas bombs at police and MTR stations, he added.
from us


Telegram Android Live 🤖
FROM American