gpt4 book ai didi

java - 在 RecyclerView.Adapter 内部滚动到位置

转载 作者:行者123 更新时间:2023-12-05 00:12:37 26 4
gpt4 key购买 nike

在 RecyclerView.Adapter 类中注册点击监听器后,我必须滚动到位置 X!

    class MyAdapter(context: Context, mRV: RecyclerView, mLayoutm: LinearLayoutManager) {
...

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.itemView.XY_button.setOnClickListener { // Button inside a cell

mRV.layoutManager.scrollToPosition(x) // Not work
mRV.scrollToPosition(x) // Not work
mLayoutm.scrollToPosition(x) // Not work
(context as MyRVClass).mRV.mLayoutm.scrollToPosition(x) // Not work
(context as MyRVClass).mRV.scrollToPosition(x) // Not work
// it does't work with smoothScrollToPosition() too
}
}
}

PS:我在 swift/iOS 中用委托(delegate)协议(protocol)解决了这个问题,我们在 android/Kotlin 中有等效的东西吗?

最佳答案

RecyclerView 所在的 Activity 类中创建此方法:

fun scrollToPosition(position: Int) {
rv.scrollToPosition(position)
}

rv 替换为 RecyclerView 的 id

并在监听器中添加:

val myActivity: MainActivity = context as MainActivity
myActivity.scrollToPosition(x)

MainActivity 替换为 Activity 的名称,并将 x 替换为要滚动到的位置。

关于java - 在 RecyclerView.Adapter 内部滚动到位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52930678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com