Junior — Middle
On farklı öğe veya hücre tipi içeren bir liste nasıl oluşturulur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Android'de on farklı öğe veya hücre tipi içeren bir liste oluşturmak için genellikle RecyclerView ve birkaç ViewHolder tipi kullanılır.
Ana adımlar:
- Adaptörde
getItemViewType(int position)metodunu geçersiz kılın ve her öğe için benzersiz bir tip döndürün. onCreateViewHolderiçinde, tipe göre farklı ViewHolder'lar oluşturun.onBindViewHolderiçinde, ViewHolder tipine göre verileri doldurun.
Örnek:
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 kadar
}
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 kadar
else -> throw IllegalArgumentException("Bilinmeyen görünüm tipi")
}
}
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 şekilde, farklı hücre tiplerini tek bir listede esnek şekilde gösterebilirsiniz.