Junior — Middle
Cum se poate crea o listă care conține zece elemente sau tipuri diferite de celule?
sobes.tech AI
Răspuns de la AI
Pentru a crea o listă cu zece elemente sau tipuri diferite de celule în Android, se utilizează de obicei RecyclerView cu mai multe tipuri de ViewHolder.
Pași principali:
- Suprascrieți metoda
getItemViewType(int position)în adaptor și returnați un tip unic pentru fiecare element. - În
onCreateViewHolder, creați diferite ViewHolder în funcție de tip. - În
onBindViewHolder, completați datele conform tipului de ViewHolder.
Exemplu:
class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return items[position].type // tip de la 0 la 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))
// ... până la 9
else -> throw IllegalArgumentException("Tip de vizualizare necunoscut")
}
}
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
}
Astfel, puteți afișa diferite tipuri de celule într-o listă într-un mod flexibil.