Junior — Middle
O'n ta element yoki hujayra turini o'z ichiga olgan ro'yxatni qanday yaratish mumkin?
sobes.tech AI
AIdan javob
Androidda o'n turli elementlar yoki hujayra turlaridan iborat ro'yxat yaratish uchun odatda RecyclerView va bir nechta ViewHolder turlaridan foydalaniladi.
Asosiy bosqichlar:
- Adapterda
getItemViewType(int position)metodini qayta yozing va har bir element uchun noyob turni qaytaring. onCreateViewHolderda turga qarab turli ViewHolderlarni yarating.onBindViewHolderda ViewHolder turiga mos ravishda ma'lumotlarni to'ldiring.
Misol:
class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return items[position].type // 0 dan 9 gacha
}
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 gacha
else -> throw IllegalArgumentException("Noma'lum view turi")
}
}
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
}
Shu tarzda, siz bir ro'yxatda turli xil hujayra turlarini moslashuvchan tarzda ko'rsatishingiz mumkin.