Junior — Middle
Kaip sukurti sąrašą, kuriame yra dešimt skirtingų elementų arba langelių tipų?
sobes.tech AI
Atsakymas iš AI
Norint sukurti sąrašą su dešimt skirtingų elementų arba langelių tipų Android, dažnai naudojamas RecyclerView su kelių tipų ViewHolder.
Pagrindiniai žingsniai:
- Perrašykite
getItemViewType(int position)metodą adapteriuje ir grąžinkite unikalų tipą kiekvienam elementui. onCreateViewHoldersukurkite skirtingus ViewHolder priklausomai nuo tipo.onBindViewHolderužpildykite duomenis pagal ViewHolder tipą.
Pavyzdys:
class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return items[position].type // tipas nuo 0 iki 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))
// ... iki 9
else -> throw IllegalArgumentException("Nežinomas vaizdo tipas")
}
}
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
}
Šiuo būdu galite lankstiai rodyti skirtingų tipų langelius viename sąraše.