如何在 kotlin (Android) 中将焦点设置在 ArrayList<> 的最后一个元素上?

How to set focus on the last element of an ArrayList<> in kotlin (Android)?

我是 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
    }
}

您可以使用 smoothScrollToPosition() 功能滚动到列表的最后一项。

您可以在 class 中为该操作创建一个函数。

在我的代码中,我假设您使用两个全局变量来存储您的 RecyclerView 引用和您的项目列表,并且您已经初始化了您的 RecyclerView.

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

...

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

然后你可以在每次更新列表时调用 focusLastItem 函数。

解决我的问题:

RecyclerView.scrollToPosition(var.lastIndex)

这样它会自动滚动到底部。