Enkelt Android-grid-eksempel ved bruk av RecyclerView med GridLayoutManager (som den gamle GridView)
Jeg vet at RecyclerView
har erstattet funksjonaliteten til de gamle ListView
og GridView
. Jeg leter etter et veldig grunnleggende eksempel som viser et minimalt rutenettoppsett ved hjelp av RecyclerView
. Jeg leter ikke etter lange forklaringer i opplæringsstil, bare et minimalt eksempel. Jeg forestiller meg at det enkleste rutenettet som etterligner det gamle GridView vil bestå av følgende funksjoner:
- flere celler per rad
- enkelt visning i hver celle
- reagerer på klikkhendelser
181
3
Kort svar
For de som allerede er kjent med å sette opp en
RecyclerView
for å lage en liste, er den gode nyheten at det å lage et rutenett stort sett er det samme. Du bruker bare enGridLayoutManager
i stedet for enLinearLayoutManager
når du setter oppRecyclerView
.Hvis du trenger mer hjelp enn det, så sjekk ut følgende eksempel.
Fullstendig eksempel
Følgende er et minimalt eksempel som vil se ut som bildet nedenfor.
]2].
Start med en tom aktivitet. Du vil utføre følgende oppgaver for å legge til rutenettet
RecyclerView
. Alt du trenger å gjøre er å kopiere og lime inn koden i hver seksjon. Senere kan du tilpasse den slik at den passer til dine behov.Oppdater Gradle-avhengigheter
Sørg for at følgende avhengigheter finnes i appens
gradle.build
-fil:Du kan oppdatere versjonsnumrene til det nyeste.
Opprett aktivitetsoppsett
Legg til
RecyclerView
i xml-layoutet ditt.activity_main.xml
Create grid cell layout
Hver celle i rutenettet
RecyclerView
skal bare ha en enkeltTextView
. Opprett en ny layoutressursfil.recyclerview_item.xml.
Opprett adapteren
RecyclerView` trenger en adapter for å fylle ut visningene i hver celle med dataene dine. Opprett en ny javafil.
MyRecyclerViewAdapter.java.
Notes
GridView
og er et vanlig behov. Du kan fjerne denne koden hvis du ikke trenger den.Initialiser RecyclerView i aktivitet
Legg til følgende kode i hovedaktiviteten din.
MainActivity.java
Notes
ItemClickListener
som vi definerte i adapteren vår. Dette gjør at vi kan håndtere celleklikkhendelser ionItemClick
.Ferdig
Det er alt. Du bør kunne kjøre prosjektet ditt nå og få noe som ligner på bildet øverst.
Fortsetter
Avrundede hjørner
Automatisk tilpasning av kolonner
Ytterligere studier
Selv om jeg liker og setter pris på Suragch s svar, vil jeg gjerne legge igjen et notat fordi jeg fant ut at koding av Adapter (
MyRecyclerViewAdapter
) for å definere og eksponere lyttermetodenonItemClick
ikke er den beste måten å gjøre det på, på grunn av ikke å bruke klasseinnkapsling riktig. Så mitt forslag er å la Adapter håndtere lytteoperasjonene utelukkende (det er hans formål!) Og skille dem fra aktiviteten som bruker Adapter (MainActivity
). Så dette er hvordan jeg ville sette Adapter-klassen:MyRecyclerViewAdapter.java.
Vær oppmerksom på
onItemClick
-metoden som nå er definert iMyRecyclerViewAdapter
, som er stedet der du ønsker å kode oppgavene dine for den mottatte hendelsen/handlingen.Det er bare en liten endring som må gjøres for å fullføre denne transformasjonen: Activity trenger ikke å implementere
MyRecyclerViewAdapter.ItemClickListener
lenger, for nå gjøres dette fullstendig av Adapter. Dette vil da være den siste modifikasjonen:MainActivity.java
Du må sette din recyclerview layoutmanager til Gridlayout-modus, for å gjøre dette, bare endre koden din når du vil angi RecyclerView LayoutManager:
Merk: erstatt antall kolonner du vil ha med ###HELP###.