Sobes.tech
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:

  1. Adaptörde getItemViewType(int position) metodunu geçersiz kılın ve her öğe için benzersiz bir tip döndürün.
  2. onCreateViewHolder içinde, tipe göre farklı ViewHolder'lar oluşturun.
  3. onBindViewHolder iç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.