OnBindViewHolder срабатывает только один раз - PullRequest
0 голосов
/ 07 марта 2020

Что происходит: Несмотря на то, что в коллекции val list: ArrayList<StudentModel> есть два элемента, как показано на рисунке ниже, и я явно указал размер 2 в getItemCount(). Только один раз onBindViewHolder срабатывает

enter image description here

AdapterCode

class ListAdapter(private val list: ArrayList<StudentModel>,val context: Context) : RecyclerView.Adapter<MovieViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MovieViewHolder {
        return MovieViewHolder(LayoutInflater.from(context).inflate(R.layout.frag_disp_group_blocks, parent, false))
    }

    override fun getItemCount(): Int {
        Timber.i("$list.size")
        return 2
    }

    override fun onBindViewHolder(holder: MovieViewHolder, position: Int) {
        val movie = list[position]
        Timber.i("$movie")
        Timber.i("$movie.get(position)")

        holder?.tvAnimalType?.text = ""
    }

}

class MovieViewHolder (view: View) : RecyclerView.ViewHolder(view) {
    // Holds the TextView that will add each animal to
    val tvAnimalType = view.list_title
}

Ответы [ 2 ]

1 голос
/ 07 марта 2020

передача контекста из действия / фрагмента не обязательна, если они не служат цели их использования. Используйте контекст из родительского параметра onCreateViewHolder.

return MovieViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.frag_disp_group_blocks, parent, false))

0 голосов
/ 08 марта 2020

Это была ошибка с моей стороны .... Я дал парам matchParent, поэтому он срабатывал один раз. wrapContent решил проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...