android 进度条 动画,recyclerview item中的进度条动画

写一个demo 想在recyclerview中 的item 中的进度条有动画效果

就用不断设置setProgress()的方式来写了,可是在实际过程中,会发生动画播放在不正确的item上

即使我判断如果item是被复用的话则取消也无能为力。。

SparseIntArray sparseIntArray = new SparseIntArray();

ArrayMap arrayMap = new ArrayMap<>();

binding.recyclerView.setAdapter(new BaseRecyclerViewAdapter(strings) {

@Override

public int getLayoutId(int viewType) {

return R.layout.recycler_item;//item布局 其中有一个横向的进度条空间

}

@Override

protected void convert(VH holder, Integer i, int position) {

int after = sparseIntArray.get(position); //查看item是否第一次使用

Disposable disposable1 = arrayMap.get(position);

if (disposable1 != null) {

PtrCLog.d("RecyclerViewActivity", "convert: " + "取消订阅");

disposable1.dispose();

}

if (after == i) {

PtrCLog.d("RecyclerViewActivity", "convert: " + "相同后直接设置");

holder.setProgress(R.id.progress_bar_financing_item, i);

} else {

sparseIntArray.put(position, i);//存

int castProgress = (i); //当前得到的

PtrCLog.d("LoanListAdapter", "progress: " + castProgress);

PtrCLog.d("LoanListAdapter", "初次生效当前坐标为: " + position + "-----" + "存储的进度为" + castProgress);

Disposable disposable = Observable

.intervalRange(0, castProgress + 1, 0, 30, TimeUnit.MILLISECONDS)

.observeOn(AndroidSchedulers.mainThread())

.subscribe(aLong -> {

PtrCLog.d("LoanListAdapter", "convert: " + position + "----" + aLong + "");

PtrCLog.d("RecyclerViewActivity", "convert: after" + (after == i));

holder.setProgress(R.id.progress_bar_financing_item, Integer.parseInt(aLong + ""));

}, throwable -> {

}

, () -> {

});

arrayMap.put(position, disposable);

}

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值