A. *_*ini 2 java android kotlin android-recyclerview
在 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
}
}
}
Run Code Online (Sandbox Code Playgroud)
PS:我在 swift/iOS 中使用委托协议解决了这个问题,我们在 android/Kotlin 中是否有等效的东西?
在您的活动类中创建此方法,其中RecyclerView:
fun scrollToPosition(position: Int) {
rv.scrollToPosition(position)
}
Run Code Online (Sandbox Code Playgroud)
替换rv为RecyclerView的 id
并在监听器中添加以下内容:
val myActivity: MainActivity = context as MainActivity
myActivity.scrollToPosition(x)
Run Code Online (Sandbox Code Playgroud)
替换MainActivity为活动的名称和x要滚动到的位置。
| 归档时间: |
|
| 查看次数: |
7725 次 |
| 最近记录: |