Mais
Exemplo simples de grid Android usando RecyclerView com GridLayoutManager (como o antigo GridView)
Eu sei que o RecyclerView
substituiu a funcionalidade dos antigos ListView
e GridView
. Eu estou procurando por um exemplo muito básico que mostra uma configuração mínima de grid utilizando RecyclerView
. Eu não estou procurando por longas explicações de estilo tutorial, apenas um exemplo mínimo. Eu imagino que a grade mais simples que imita o GridView antigo consistiria nas seguintes funcionalidades:
- várias células por linha
- visão única em cada célula
- responde a eventos de clique
181
3
Resposta curta
Para aqueles que já estão familiarizados com configurar um
RecyclerView
para fazer uma lista, a boa notícia é que fazer uma grade é em grande parte a mesma coisa. Você apenas utiliza umGridLayoutManager
ao invés de umLinearLayoutManager
quando você configura oRecyclerView
.Se você precisar de mais ajuda do que isso, então veja o exemplo a seguir.
Exemplo completo
O seguinte é um exemplo mínimo que se parecerá com a imagem abaixo.
Comece com uma actividade vazia. Você irá executar as seguintes tarefas para adicionar a grade
RecyclerView
. Tudo o que você precisa fazer é copiar e colar o código em cada seção. Mais tarde você pode customizá-lo de acordo com suas necessidades.Atualizar dependências de graduação
Certifique-se de que as seguintes dependências estão no seu arquivo app
gradle.build
:Você pode atualizar os números das versões para o que quer que seja o mais atual.
Criar layout de atividades
Adicione o
RecyclerView
ao seu layout xml.activity_main.xml
Criar o layout das células da grelha
Cada célula em nossa grade 'RecyclerView' terá apenas um único 'TextView'. Crie um novo arquivo de recurso de layout.
recyclerview_item.xml
Criar o adaptador
O
RecyclerView
precisa de um adaptador para preencher as vistas em cada célula com os seus dados. Crie um novo arquivo java.MyRecyclerViewAdapter.java
Notas
GridView
e é uma necessidade comum. Você pode remover este código se você não't precisar dele.Initializar o ReciclerView em atividade
Adicione o seguinte código à sua actividade principal.
MainActivity.java
Notas
ItemClickListener
que nós definimos no nosso adaptador. Isto nos permite lidar com eventos de clique de célula no `onItemClick'.Finalizado
Isso's it. Você deve ser capaz de executar o seu projeto agora e obter algo semelhante à imagem no topo.
Continuando
Cantos arredondados
Colunas de encaixe automático
Outro estudo
Embora eu goste e aprecie Suragch's answer, eu gostaria de deixar uma nota porque eu descobri que codificar o Adaptador (
MyRecyclerViewAdapter
) para definir e expor o método ListeneronItemClick
é't a melhor maneira de fazê-lo, devido à não utilização correta do encapsulamento de classes. Então minha sugestão é deixar o Adaptador lidar com as operações de escuta somente (que's seu propósito!) e separar aquelas da Atividade que utiliza o Adaptador (MainActivity
). Então é assim que eu definiria a classe do Adaptador:MyRecyclerViewAdapter.java
Observe o método
onItemClick
agora definido emMyRecyclerViewAdapter
que é o lugar onde você gostaria de codificar suas tarefas para o evento/ação recebida.Há apenas uma pequena mudança a ser feita para completar esta transformação: o Activity não'não precisa mais implementar
MyRecyclerViewAdapter.ItemClickListener
, porque agora isso é feito completamente pelo Adapter. Esta seria então a modificação final:MainActivity.java
Você tem que configurar seu gerenciador de layout RecyclerView para o modo Gridlayout , Para fazer isso Basta alterar seu código quando você quiser configurar seu gerenciador de layout RecyclerView :
Nota : substitua a sua contagem de colunas que você quer por ###HELP####