回收者视图:向上或向下滚动时动画会重新启动

时间:2019-09-27 14:21:55

标签: android animation kotlin android-recyclerview progress-bar

我有一个包含进度条的回收站视图

我正在用此动画对这些进度条进行动画处理

fun setProgresAnim(progress: ProgressBar, value: Int) {
    val anim = ProgressBarAnimation(progress, 0, value)
    anim.duration = 2000
    progress.startAnimation(anim)
}

这是适配器中的MyViewHolder

  inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
    fun bind(deviceScan: DeviceScan) {
        if (deviceScan.percentage > 0) {
            itemView.title.text = deviceScan.name
            itemView.tv_percentage.text = deviceScan.percentage.toString() + "%"
            setProgresAnim(itemView.progress, deviceScan.percentage)}}}

问题是当我上下滚动动画时再次重新启动。

我想做一次这个动画。

1 个答案:

答案 0 :(得分:0)

您应该避免在setProgresAnim(itemView.progress, deviceScan.percentage)中调用onBindViewHolder,因为每次您向上或向下滚动时,它都会再次调用您的动画。最好在RecyclerView 适配器之外调用它。

相关问题