android RecyclerView条目滑动大小渐变
根据item距离左边间距距离计算渐变大小
post方法防止刷新时渐变大小错乱
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
recyclerView.post(new Runnable() {
@Override
public void run() {
int childCount = recyclerView.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = recyclerView.getChildAt(i);
int left = child.getLeft();
int paddingStart = recyclerView.getPaddingStart();
// 遍历recyclerView子项,以中间项左侧偏移量为基准进行缩放 0.5
float bl = Math.min(1, Math.abs(left - paddingStart - DensityUtil.dip2px(getContext(), 9)) * 1f / child.getWidth());
float scale = (MaxScale - bl * (MaxScale - minScale));
child.setScaleX(scale);
child.setScaleY(scale);
}
}
});
}
});