gpt4 book ai didi

java - notifyItemRemoved() 滚动回收器 View ,但不调用 onScrolled()

转载 作者:行者123 更新时间:2023-12-01 19:30:35 25 4
gpt4 key购买 nike

我有一个 recyclerView 设置为轮播 View 。当项目移动时,它们会随着靠近屏幕中心而扩展。缩放 View 的方法是通过重写 onScrolled() 来调用的。我的问题是,当删除项目时, View 会滚动,但不会调用 onScrolled() 并且 View 不会缩放。有没有办法知道 View 何时被删除以及动画何时完成?我无法重写 onItemRangeRemoved(),因为它仅在删除开始时调用。

 @Override
public void onChanged() {
super.onChanged();
initEmptyView();
addOnScrollListener(new OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
onScrollChanged();
}
});
}

public void onScrollChanged(){
for (int i = 0; i < getChildCount(); i++){
View child = getChildAt(i);
int childCenterX = (child.getLeft() + child.getRight()) / 2;
double spreadFactor = 150;
float scaleValue = getGaussianScale(childCenterX, 1f, 0.1f, spreadFactor);
child.setScaleX(scaleValue);
child.setScaleY(scaleValue);
}

int currentPosition = myLayoutManager.findFirstCompletelyVisibleItemPosition();
((TopUp) context).setCurrentPosition(currentPosition);
}

最佳答案

找到了。

 recyclerView.setItemAnimator(new DefaultItemAnimator(){
@Override
public void onRemoveFinished(RecyclerView.ViewHolder item) {
super.onRemoveFinished(item);

}
});

关于java - notifyItemRemoved() 滚动回收器 View ,但不调用 onScrolled(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262376/

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