0

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

2 回答 2

0

您可以使用该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每次更新列表时调用该函数。

于 2021-02-05T16:44:18.773 回答
0

解决我的问题:

RecyclerView.scrollToPosition(var.lastIndex)

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

于 2021-03-25T13:31:44.487 回答