RecyclerView

RecyclerView

RecyclerView е създаден за да подобри работат със списачни данни, като подобрява ListView и GridView.

При работа с RecyclerView се използват:

  • RecyclerView.Adapter - За да обработи колекцията с данни и да свърже данните с изгледа

  • LayoutManager - Помага при позиционирането на елементите

  • ItemAnimator - Помага при анимиране на обичайни операции като добавяне или премахване на елементи от списъка

  • ViewHolder Pattern - За подобряване на производителността, чрез кеширане на изгледа, за по-гладко търсене и по-бързо зареждане на елемент.

Компоненти на RecyclerView

LayoutManagers

RecyclerView приема като параметри мениджър на оформление и адаптер, за да бъде създаден. Мениджърът на оформление (LayoutManagers) управлява елементи вътре в RecyclerView и определя кога да се скриват и показват елементи. Пример за работата на LayoutManagers е показването и скриването на елементи по време на скрол, той оптимизира паметта използвана от приложението.

Видове:

  • LinearLayoutManager - показва елементи във вертикален или хоризонтален списък.

  • GridLayoutManager - показва елементите в матрична решетка.

  • StaggeredGridLayoutManager - показва елементите в шахматна решетка.

RecyclerView.Adapter

RecyclerView използва специфичен вид адаптер. Това е подобен подход на вече използваните, но с някои особености, като например ViewHolder. Трябва да се имплементират два основни метода: един, за попълване на изгледа, и друг за свърване данните с изгледа.

  • onCreateViewHolder - Приема като входни параметри родителски ViewGrop обект, в който ще се зарежда списъка с View обекти и тип на изгледа. Създава и връща като резултат RecyclerView.ViewHolder, обект на изгледа, който ще се добави към RecyclerView.

  • onBindViewHolder - Инициализиране на данните в RecyclerView.ViewHolder обекта, който се създава от onCreateViewHolder. Приема като входни данни RecyclerView.ViewHolder обект и позицията в RecyclerView, където ще се позиционира този елемент.

  • getItemCount - връща като резултат броя на данните в колекцията, която ще се визуализира в RecyclerView

Промяна на данните в ResicleView

Всеки път, когато искаме да добавяме или премахваме елементи от RecyclerView, ще трябва да уведомим изрично адаптера за събитието. Има няколко методи, които да се използват при уведомяване на адаптера за различни промени:

Метод

Описание

notifyItemChanged(int pos)

Уведомява, че елемента на тази позиция е променен.

notifyItemInserted(int pos)

Уведомява, че на това място е добавен елемент.

notifyItemRemoved(int pos)

Уведомява, че елемента от тази позиция е премахнат.

notifyDataSetChanged()

Уведомява, че колекцията от данни е променена.

RecyclerView.ViewHolder

В RecyclerView.ViewHolder се описва изглед на елемент и метаданни за неговото място в рамките на RecyclerView

Last updated