Замените элемент просмотра текста Recyclerview на элемент просмотра изображений - PullRequest
0 голосов
/ 29 марта 2020

У меня есть RecyclerView с TextView элементами и я хочу заменить последний элемент на ImageView. Числа должны быть текстовыми, поэтому я не могу сделать их все ImageView Это должно быть примерно так: enter image description here

Я добавляю TextView и ImageView к переработчику Строка элемента и сделать видимость ImageView gone. Вот мой ViewHolder

override fun onBindViewHolder(holder: TestView, position: Int) {

        holder.testName?.text = listOfTests?.get(position)?.testName
        holder.txtNumberIcon?.text = listOfTests?.get(position)?.txtNumberIcon

        if (listOfTests?.get(listOfTests!!.size.minus(1))?.txtNumberIcon == dont know what condition must be here) {


            holder.txtNumberIcon?.visibility = View.GONE
            holder.imageStarIcon?.visibility = View.VISIBLE

            Glide
                .with(context?.applicationContext!!)
                .load(listOfTests?.get(listOfTests!!.size.minus(1))?.testNumberIcon)
                .into(holder.imageStarIcon!!)

        }

Какое условие я должен написать, чтобы заменить последний элемент из textview в imageview?

1 Ответ

2 голосов
/ 29 марта 2020

Дайте мне посмотреть, правильно ли я понимаю. Если listOfTests имеет 10 элементов, вы хотите, чтобы 9 ячеек из RecyclerView были TextView's и 1 ImageView.

. Если это так:

override fun onBindViewHolder(holder: TestView, position: Int) {

    holder.testName?.text = listOfTests?.get(position)?.testName
    holder.txtNumberIcon?.text = listOfTests?.get(position)?.txtNumberIcon

    if (position == listOfTests.size - 1) { /* position starts from 0 */
        // I would suggest to load the image only for the element that will be displayed
        Glide.with(context?.applicationContext!!)
              .load(listOfTests?.get(position)?.testNumberIcon)
              .into(holder.imageStarIcon!!)
        holder.txtNumberIcon?.visibility = View.GONE
        holder.imageStarIcon?.visibility = View.VISIBLE
    }
    else {
        holder.txtNumberIcon?.visibility = View.VISIBLE
        holder.imageStarIcon?.visibility = View.GONE
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...