Top*_*per 1 android android-recyclerview
为什么notifyItemMoved 不重新绑定(我的意思是onBindViewHolder不调用)我的recyclerView 的适配器?在顶部或底部移动项目后,我点击了旧位置
如何通过单击获取 itemView 的当前位置?
我的回收站移动方法
fun moveUp(position: Int){
if(position>0){
itemList.swap(position, position-1)
notifyItemMoved(position, position-1)
}
}
fun moveDown(position: Int){
if(itemList.lastIndex>position){
itemList.swap(position, position + 1)
notifyItemMoved(position, position + 1 )
}
}
Run Code Online (Sandbox Code Playgroud)
我的绑定方法
override fun View.bind(item: Document, position: Int) {
document_name.text = getFileName(item.file)
this.setOnClickListener{
onItemClick(this, position)
}
Run Code Online (Sandbox Code Playgroud)
notifyItemMoved()应该在项目移动但未更改时调用:
这是一个结构性变化事件。数据集中其他现有项目的表示仍被认为是最新的,不会反弹,尽管它们的位置可能会改变。
这意味着给予的职位onBindViewHolder()可能会发生变化。您可以使用ViewHolder.getAdapterPosition()来获取当前位置。
| 归档时间: |
|
| 查看次数: |
2945 次 |
| 最近记录: |