Junior — Middle
Ինչպե՞ս կարող եք ստեղծել տասն տարբեր տարրեր կամ բջիջների տեսակներ պարունակող ցանկ։
sobes.tech AI
Պատասխան AI-ից
Իրականացնելու համար տասն տարբեր տարրեր կամ սյունակների տեսակներ Android-ում, սովորաբար օգտագործվում է RecyclerView մի քանի ViewHolder տեսակներով:
Հիմնական քայլեր՝
- Օգտագործեք
getItemViewType(int position)մեթոդը ադապտերում և վերադարձեք յուրահատուկ տեսակ յուրաքանչյուր տարրի համար: onCreateViewHolder-ում ստեղծեք տարբեր ViewHolder-ներ՝ ըստ տեսակի:onBindViewHolder-ում լրացրեք տվյալները՝ ըստ ViewHolder տեսակի:
Օրինակ՝
class MultiTypeAdapter(private val items: List<Item>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun getItemViewType(position: Int): Int {
return items[position].type // տեսակ 0-ից 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))
// ... մինչև 9
else -> throw IllegalArgumentException("Անհայտ տեսակի տեսք")
}
}
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
}
Այսպիսով՝ կարող եք ճկուն կերպով ցուցադրել տարբեր տեսակի սյունակներ մեկ ցանկում։