Sobes.tech
Junior — Middle

Hoe maak je een lijst met tien verschillende elementen of celtypes?

sobes.tech AI

Antwoord van AI

Om een lijst te maken met tien verschillende elementen of celtypen in Android, wordt meestal RecyclerView gebruikt met meerdere ViewHolder-types.

Belangrijkste stappen:

  1. Overschrijf de methode getItemViewType(int position) in de adapter en geef een uniek type terug voor elk element.
  2. In onCreateViewHolder, maak verschillende ViewHolders afhankelijk van het type.
  3. In onBindViewHolder, vul de gegevens in volgens het type ViewHolder.

Voorbeeld:

class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
    override fun getItemViewType(position: Int): Int {
        return items[position].type // type van 0 tot 9
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        return when(viewType) {
            0 -> Type0ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_type0, parent, false))
            1 -> Type1ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_type1, parent, false))
            // ... tot 9
            else -> throw IllegalArgumentException("Onbekend viewtype")
        }
    }

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        when(holder) {
            is Type0ViewHolder -> holder.bind(items[position])
            is Type1ViewHolder -> holder.bind(items[position])
            // ...
        }
    }

    override fun getItemCount() = items.size
}

Op deze manier kunt u verschillende celtypen flexibel weergeven in één lijst.