Altro
Semplice esempio di griglia Android usando RecyclerView con GridLayoutManager (come la vecchia GridView)
So che la RecyclerView
ha sostituito le funzionalità delle vecchie ListView
e GridView
. Sto cercando un esempio molto semplice che mostri una configurazione minima della griglia usando la RecyclerView
. Non sto cercando lunghe spiegazioni in stile tutorial, solo un esempio minimo. Immagino che la griglia più semplice che imita la vecchia GridView consisterebbe nelle seguenti caratteristiche:
- più celle per riga
- vista singola in ogni cella
- risponde agli eventi click
181
3
Risposta breve
Per coloro che hanno già familiarità con l'impostazione di un
RecyclerView
per fare una lista, la buona notizia è che fare una griglia è in gran parte lo stesso. Basta usare unGridLayoutManager
invece di unLinearLayoutManager
quando si imposta laRecyclerView
.Se hai bisogno di più aiuto, dai un'occhiata al seguente esempio.
Esempio completo
Quello che segue è un esempio minimo che assomiglierà all'immagine qui sotto.
Iniziate con un'attività vuota. Eseguirai le seguenti operazioni per aggiungere la griglia
RecyclerView
. Tutto quello che devi fare è copiare e incollare il codice in ogni sezione. In seguito potrai personalizzarlo in base alle tue esigenze.Aggiornare le dipendenze di Gradle
Assicurati che le seguenti dipendenze siano nel file
gradle.build
della tua app:Puoi aggiornare i numeri di versione a quello che è il più attuale.
Crea il layout dell'attività
Aggiungi la
RecyclerView
al tuo layout xml.activity_main.xml
Crea il layout delle celle della griglia
Ogni cella della nostra griglia
RecyclerView
avrà solo una singolaTextView
. Creare un nuovo file di risorse per il layout.recyclerview_item.xml
Crea l'adattatore
La
RecyclerView
ha bisogno di un adattatore per popolare le viste in ogni cella con i tuoi dati. Crea un nuovo file java.MyRecyclerViewAdapter.java
Note
GridView
ed è una necessità comune. Puoi rimuovere questo codice se non ne hai bisogno.Inizializza RecyclerView nell'attività
Aggiungete il seguente codice alla vostra attività principale.
MainActivity.java
Note
ItemClickListener
che abbiamo definito nel nostro adattatore. Questo ci permette di gestire gli eventi di click delle celle inonItemClick
.Finito
Questo è tutto. Ora dovresti essere in grado di eseguire il tuo progetto e ottenere qualcosa di simile all'immagine in alto.
Andando avanti
Angoli arrotondati
Colonne autoadattanti
Ulteriori studi.
Anche se mi piace e apprezzo Suragch'la risposta, vorrei lasciare una nota perché ho scoperto che codificare l'Adattatore (
MyRecyclerViewAdapter
) per definire ed esporre il metodo ListeneronItemClick
non è il modo migliore per farlo, a causa di non usare correttamente l'incapsulamento della classe. Quindi il mio suggerimento è di lasciare che l'Adattatore gestisca esclusivamente le operazioni di ascolto (è il suo scopo!) e separarle dall'attività che usa l'adattatore (MainActivity
). Quindi questo è il modo in cui imposterei la classe Adapter:MyRecyclerViewAdapter.java
Notate il metodo
onItemClick
ora definito inMyRecyclerViewAdapter
che è il posto dove vorreste codificare i vostri compiti per l'evento/azione ricevuta.C'è solo una piccola modifica da fare per completare questa trasformazione: l'Activity non ha più bisogno di implementare
MyRecyclerViewAdapter.ItemClickListener
, perché ora questo viene fatto completamente dall'Adapter. Questa sarebbe quindi la modifica finale:MainActivity.java
Devi impostare il tuo layoutmanager recyclerview in modalità Gridlayout, per fare questo basta cambiare il tuo codice quando vuoi impostare il tuo LayoutManager RecyclerView:
Nota: sostituire il conteggio delle colonne che si desidera con ###HELP####