DEV Community

João Gabriel
João Gabriel

Posted on

6 2

Utilizando MergeAdapter no Android

Introdução

MergeAdapter é uma nova feature introduzida no recyclerview:1.2.0-alpha02, habilitando a possibilidade de agrupar adapters e os exibir sequencialmente utilizando o mesmo RecyclerView.

Integração

Para fazer o uso do Merge Adapter é necessário adicionar a dependência no build.gradle do app ou módulo que irá fazer a utilização:

dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03'
}


até o momento deste texto, esta era a versão mais recente da biblioteca.

Hands On

Será utilizado o Valorant, jogo recém lançado pela Riot Games, como exemplo.

Neste exemplo, serão utilizados: um layout de header, uma lista de personagens e um banner, assim criando um adapter para cada view: HeaderAdapter, PersonageAdapter e BannerAdapter.

Será necessário fazer o merge dos 3 adapters, utilizando o construtor do Merge Adapter e passando sua instância para o adapter do recyclerview.

val headerAdapter: HeaderAdapter= …
val personageAdapter: PersonageAdapter= …
val bannerAdapter: BannerAdapter= …
val mergeAdapter = MergeAdapter(headerAdapter, personageAdapter,
footerAdapter)

As views do recyclerview, serão renderizadas de acordo com a ordem dos adapters passados no construtor do [Merge Adapter] .(https://developer.android.com/reference/androidx/recyclerview/widget/MergeAdapter)

recyclerView.adapter = mergeAdapter

Obtendo o seguinte resultado:
RecyclerView Completo

Toda a implementação dos adapters, e dados utilizados estão disponíveis em:

GitHub logo 1jGabriel / Valorant-Merge-Adapter

Repositório para testes do merge adapter

Dica ao utilizar Merge Adapter

É recomendável também utilizar que cada adapter faça a extensão de ListAdapters para evitar chamar RecyclerView.Adapter.notifyDataSetChanged() assim ao passar novos dados para um adapter só é necessário chamar adapter.submitList(list)

Sentry growth stunted Image

If you are wasting time trying to track down the cause of a crash, it’s time for a better solution. Get your crash rates to zero (or close to zero as possible) with less time and effort.

Try Sentry for more visibility into crashes, better workflow tools, and customizable alerts and reporting.

Switch Tools 🔁

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay