0Pricing
Android Academy · Aula

Noções Básicas de RecyclerView

Exiba listas grandes com eficiência usando RecyclerView. Crie um Adapter e um ViewHolder e conecte os dados usando ViewBinding.

Noções Básicas de RecyclerView é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 2 de 6. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 6 aulas no total.

Por que usar RecyclerView?

RecyclerView é a forma padrão de exibir uma lista rolável de itens no Android.

Ao contrário do antigo ListView, RecyclerView:

  • Recicla as visualizações durante a rolagem — cria apenas a quantidade que cabe na tela
  • Funciona com listas verticais, listas horizontais e grades
  • É altamente personalizável com LayoutManagers

Arquitetura do RecyclerView

O RecyclerView precisa de três componentes para funcionar:

  • RecyclerView — o componente no seu XML de layout
  • Adapter — vincula seus dados às visualizações dos itens
  • ViewHolder — mantém referências às visualizações dentro de cada item da lista

O Adapter cria ViewHolders e vincula dados a eles enquanto o usuário rola a lista.

Adicionando RecyclerView ao XML

Adicione o componente ao seu layout e declare a dependência em build.gradle:

<!-- In res/layout/activity_main.xml -->
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<!-- app/build.gradle dependencies: -->
<!-- implementation 'androidx.recyclerview:recyclerview:1.3.2' -->

Layout do item

Crie um arquivo XML separado para cada item da lista. Por exemplo, res/layout/item_fruit.xml:

<!-- res/layout/item_fruit.xml -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tvName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvCalories"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14sp" />

</LinearLayout>

O modelo de dados

Defina a classe de dados que representa cada item da sua lista:

data class Fruit(
    val name: String,
    val calories: Int
)

Criando o Adapter

O Adapter vincula seus dados ao layout do item. Ele tem três métodos principais:

  • onCreateViewHolder — infla o XML do item
  • onBindViewHolder — preenche os dados de um item
  • getItemCount — quantidade total de itens

Implementação do Adapter

Um Adapter completo e mínimo para RecyclerView:

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView

class FruitAdapter(
    private val fruits: List<Fruit>
) : RecyclerView.Adapter<FruitAdapter.ViewHolder>() {

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        val tvName: TextView = view.findViewById(R.id.tvName)
        val tvCalories: TextView = view.findViewById(R.id.tvCalories)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context)
            .inflate(R.layout.item_fruit, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val fruit = fruits[position]
        holder.tvName.text = fruit.name
        holder.tvCalories.text = "${fruit.calories} kcal"
    }

    override fun getItemCount() = fruits.size
}

Configurando na Activity

Conecte o RecyclerView, o Adapter e o LayoutManager na sua Activity:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    val fruits = listOf(
        Fruit("Apple", 95),
        Fruit("Banana", 105),
        Fruit("Cherry", 50),
        Fruit("Mango", 202)
    )

    val adapter = FruitAdapter(fruits)

    binding.recyclerView.apply {
        this.adapter = adapter
        layoutManager = LinearLayoutManager(this@MainActivity)
    }
}

GridLayoutManager

Altere o LayoutManager para exibir uma grade em vez de uma lista de uma única coluna:

  • LinearLayoutManager — lista vertical ou horizontal
  • GridLayoutManager(context, spanCount) — grade com N colunas
  • StaggeredGridLayoutManager — grade escalonada no estilo do Pinterest

Verificação rápida

Qual é a função do ViewHolder em um Adapter do RecyclerView?

Recapitulação: fundamentos do RecyclerView

Agora você pode exibir listas de forma eficiente:

  • RecyclerView recicla visualizações para melhorar o desempenho
  • Três partes: componente RecyclerView, Adapter e ViewHolder
  • O XML do item define a aparência de uma linha ou cartão
  • O Adapter conecta os dados às visualizações em onBindViewHolder
  • LayoutManager controla o layout de lista, grade ou grade escalonada

A seguir: torne os itens da lista selecionáveis com eventos de clique.

Perguntas Frequentes

A aula “Noções Básicas de RecyclerView” é grátis?

Sim — o texto completo de “Noções Básicas de RecyclerView” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 6 aulas no total.

O que vou aprender em “Noções Básicas de RecyclerView”?

Exiba listas grandes com eficiência usando RecyclerView. Crie um Adapter e um ViewHolder e conecte os dados usando ViewBinding. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Android Academy?

Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 6.

Quanto tempo leva a aula “Noções Básicas de RecyclerView”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Android Academy?

Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Coleções do Kotlin
  2. Noções Básicas de RecyclerView
  3. Eventos de clique do RecyclerView
  4. SharedPreferences
  5. Preferências do DataStore
  6. Adaptadores e DiffUtil
← Voltar para Android Academy