3 回答
TA贡献1780条经验 获得超1个赞
在您的活动类中创建此方法,其中RecyclerView:
fun scrollToPosition(position: Int) {
rv.scrollToPosition(position)
}
替换rv为RecyclerView的 id
并在侦听器中添加以下内容:
val myActivity: MainActivity = context as MainActivity
myActivity.scrollToPosition(x)
替换MainActivity为活动的名称和x要滚动到的位置。
TA贡献1775条经验 获得超8个赞
聚会有点晚了,但我是这样做的(也RecyclerView.Adapter)
class MyAdapter(...){
private lateinit var mRecyclerView: RecyclerView
override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
super.onAttachedToRecyclerView(recyclerView)
mRecyclerView = recyclerView
}
fun scrollToPosition(position: Int){
mRecyclerView.scrollToPosition(position)
}
}
TA贡献1816条经验 获得超4个赞
如果您使用的是 MVVM 架构,您可能可以实现如下所示的内容:
在 ViewModel 中有一个字段来存储滚动到的位置作为 LiveData。
在包含 RecyclerView 的 Activity/Fragment 中,观察该字段并在其更改时滚动到其位置。
添加回答
举报