[Android] Gesegmenteerde lijst met gegevens

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Ik ben bezig met mijn eerste Android App ooit en ik weet nou niet precies wat voor soort layout ik het beste/makkelijkste kan gebruiken.

Het is een lijst met een soort van categorieën waar (niet altijd) items onder staan. Dit is de bron:
Afbeeldingslocatie: https://tweakers.net/ext/f/NHk0r4og5DfLQaAfzMry1W4F/full.png

En ik zou daar dus graag iets vergelijkbaars van willen maken. Kan ik daar het beste een ListView voor gebruiken? Ik weet niet precies hoe de categorieën daar werken, moeten de gegevens voor de 'headers' binnen het list item zelf zitten? Of kan je die handmatig toevoegen en zo ja mogen die dan leeg zijn.

Of kan ik beter gewoon layouts in elkaar nesten met een ScrollView? De bron is overigens op het moment een List<Object> met 2 verschillende objects erin. Één voor de headers en één voor de items.

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 04:05

F.West98

Alweer 16 jaar hier

Als ik jou was zou ik een RecyclerView gebruiken. Die wordt door Google geadviseerd boven een normale ListView en deze heeft wat meer functionaliteit om dit soort dingen te ondersteunen. Hier een goede tutorial om mee te beginnen: https://code.tutsplus.com...iew-on-android--cms-23465
Als dat gelukt is wat advies om headers/items te onderscheiden en te implementeren:
Wat ik eerst zou doen is een gemeenschappelijke superclass voor beide list-items (headers en items zelf) maken. Die kan je gebruiken in je RecyclerView.Adapter. Voor beide items apart een ViewHolder maken (dus HeaderViewHolder en ItemViewHolder bijvoorbeeld) en dan in je onCreateViewHolder en onBindViewHolder logica implementeren die onderscheid kan maken tussen beide items (zie bijvoorbeeld deze gist). Dat zou moeten voldoen.

Het nadeel van deze aanpak is wel dat je zelf de volgorde van de source-list moet onderhouden en dus ook zelf op de juiste plekken de headers moet invoegen, maar het lijkt alsof je dat al zo hebt.

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Dat moet ik nog even controleren, krijg de data via JSON binnen en stop het vervolgens d.m.v. van getJsonObject for loop in een Set<>. Of die allemaal de volgorde correct onthouden weet ik zonet nog niet.

In ieder geval bedank, de link die je geeft zal ik eens goed doorlezen :).

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD