Utilizando MergeAdapter no Android

João Gabriel
May 23 · 2 min read
Image for post
Image for post

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

recyclerView.adapter = mergeAdapter

Obtendo o seguinte resultado:

Image for post
Image for post

Toda a implementação dos adapters, e dados utilizados estão disponíveis no Github.

É 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)


Originally published at https://dev.to on May 23, 2020.

Android Dev BR

Artigos em português sobre Android, curados pela comunidade…

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store