Junior — Middle
On fərqli element və ya hüceyrə növünü ehtiva edən siyahı necə yaradılır?
sobes.tech Süni İntellekt
AI-dan cavab
Android-də on müxtəlif element və ya hüceyrə növü ilə siyahı yaratmaq üçün adətən RecyclerView və bir neçə ViewHolder növü istifadə olunur.
Əsas addımlar:
- Adapterdə
getItemViewType(int position)metodunu yenidən yaza və hər element üçün unikal növ qaytara bilərsiniz. onCreateViewHolderdə növə görə müxtəlif ViewHolder-lər yaradın.onBindViewHolderdə ViewHolder növünə uyğun məlumatları doldurun.
Nümunə:
class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return items[position].type // 0-dan 9-a qədər
}
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))
// ... 9-a qədər
else -> throw IllegalArgumentException("Naməlum görünüş növü")
}
}
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
}
Bu şəkildə, müxtəlif hüceyrə növlərini çevik şəkildə eyni siyahıda göstərə bilərsiniz.