Как установить фокус на последний элемент ArrayList в kotlin (Android)?

#android #kotlin #arraylist #focus #xlm

#Android #kotlin #arraylist #фокус #xlm

Вопрос:

Я новичок в kotlin, и я хотел бы получить некоторую помощь в том, как установить фокус прокрутки на последнем элементе ArrayList<tags> моего кода

   <androidx.recyclerview.widget.RecyclerView
    android:id="@ id/RVTags"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_marginBottom="12dp"
    android:visibility="gone"
    app:layout_constraintBottom_toTopOf="@id/startStop"
    app:layout_constraintTop_toBottomOf="@id/ui_power_range_inventory_layout"
    />
 
 class FindTagsAdapter internal constructor(
    private val ServicesList: ArrayList<Tag>
) :
    RecyclerView.Adapter<FindTagViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FindTagViewHolder {
        return FindTagViewHolder(LayoutInflater.from(parent.context), parent)
    }

    override fun onBindViewHolder(holder: FindTagViewHolder, position: Int) {
        holder.bind(ServicesList[position])
    }

    override fun getItemCount(): Int {
        return ServicesList.size
    }
}
 

Комментарии:

1. Вы хотите прокрутить до последнего элемента в вашем RecyclerView ?

2. да, чтобы прокрутка всегда оставалась на последнем элементе

Ответ №1:

Вы можете прокрутить до последнего элемента вашего списка с smoothScrollToPosition() помощью функции.

Вы можете создать функцию в своем классе для этого действия.

В моем коде я предполагаю, что вы используете две глобальные переменные для хранения вашей RecyclerView ссылки и вашего списка элементов и что вы уже инициализировали свой RecyclerView .

 private var recyclerView: RecyclerView? = null
private var servicesList = arrayListOf<Tag>()

...

private fun focusLastItem() 
{
    if (servicesList.isNotEmpty()) {
        recyclerView?.smoothScrollToPosition(serviceList.size - 1)
    }
}
 

Тогда вы можете просто вызывать focusLastItem функцию каждый раз, когда ваш список обновляется.

Ответ №2:

Решите мою проблему:

RecyclerView.scrollToPosition(var.lastIndex)

Таким образом, он автоматически прокручивается вниз.