#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)
Таким образом, он автоматически прокручивается вниз.