在我的代码中,我发送了Recyclerview的垂直偏移量以对其进行一些处理。当我删除recyclerview的底部项目时,就会发生问题。在那一刻,Recyclerview“移动”,但是即使我的recyclerview确实改变了位置,我的overridean onScrolled函数仍返回dy = 0。我尝试了recyclerview.computeVerticalScrollOffset,但它返回了一些奇怪的值...
这是我的scrollListener:
private void setScrollListener() {
elementsRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
tagConnections.setOffset(dy);
}
});
}
当我删除演示者中的项目时,我会做出:
elementList.remove(adapterPosition);
在我的活动中,我这样做:
elementsAdapter.notifyItemRemoved(adapterPosition);
在删除项目时具有很好的行移动性。 任何想法,即使在删除底部元素的过程中,也如何保持更新偏移量。 (当我删除不在底部的元素时,一切都很好)