如何在 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)
这样它会自动滚动到底部。
我是 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)
这样它会自动滚动到底部。