Android中如何修改RecyclerView Adapter的position参数(Kotlin)
解决Kotlin中RecyclerView Adapter无法修改position参数的问题
在Kotlin里,函数参数默认是只读的val类型,不像Java的int参数那样可以直接修改值,所以你直接给position赋值才会报「Val cannot be reassigned!」的错误。
解决方法很简单:声明一个新的可变变量(var),把计算后的结果存进去,后续逻辑用这个新变量就行:
override fun onBindViewHolder(holder: ViewHolder, position: Int) { // 新建可变变量存储调整后的position值 var adjustedPosition = position + 6 - (position % 7) * 2 // 接下来用adjustedPosition执行你的业务逻辑,比如绑定数据等 }
原理就是:原position是函数传入的只读参数,不能修改,但我们可以基于它计算出需要的值,存到自己定义的可变变量里,完全不影响原有逻辑,效果和Java里修改position是一样的。
内容的提问来源于stack exchange,提问作者Dr.KeyOk
相关产品推荐
相关产品推荐

