У меня есть простой класс RecyclerViewAdapter:
class TariffsCardAdapter(context: Context, tariffCardItems: List<ItemsItem?>?) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var context: Context? = null
private var tariffCardItems: ArrayList<ItemsItem?>? = null
init {
this.context=context
this.tariffCardItems=tariffCardItems as ArrayList<ItemsItem?>
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.layout_tariff_card_items, parent, false)
return TariffsCardAdapterViewHolder(view)
}
override fun getItemCount(): Int {
return tariffCardItems!!.size
}//getItemCount ends
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val viewHolder = holder as TariffsCardAdapterViewHolder
Log.e("posX","pos:::".plus(position))
}
private inner class TariffsCardAdapterViewHolder : RecyclerView.ViewHolder {
var text: TextView? = null
constructor(row: View) : super(row) {
text= row.findViewById(R.id.text) as TextView
}
}
}
Теперь предположим, что мой ТарифCardItems: List будет иметь только 5 элементов в списке, которые я хочу показать!
Проблема в том, что когда создается экземпляр адаптера в первый раз; методы onBindViewHolder, вызываемые дважды!
, чтобы значения журнала печатались как:
поз ::: 0
поз ::: 1
поз ::: 0
поз ::: 1
, что означает, что моя позиция просмотра переработчика будет 1 после всего этого!
и самое первое представление будет создано с элементом списка с 1 индексом , что неверно и должно быть 0
в простом, самый первый дочерний элемент представления рециркулятора создается на 1 значение позиции, что неверно
Может кто-нибудь выяснить, что я делаю не так
Заранее благодарим и уважаем