我正在尝试根据数据集中的某些条件动画我的recyclerview中的一些项目。覆盖看起来像:
public void onBindViewHolder(final PlayerViewHolder playerViewHolder, final int position) {
// Some basic logic
setOnlineStatus(playerViewHolder, position);
}
private void setOnlineStatus(PlayerViewHolder playerViewHolder, int position) {
User player = players.get(position);
if(player.getIsOnline()){
playerViewHolder.playerImageView.startAnimation(pulseAnimation);
} else {
playerViewHolder.playerImageView.clearAnimation();
}
}
public static class PlayerViewHolder extends RecyclerView.ViewHolder {
TextView counterTextView;
CircularImageView playerImageView;
PlayerViewHolder(View itemView) {
super(itemView);
counterTextView = (TextView)itemView.findViewById(R.id.counterTextView);
playerImageView = (CircularImageView)itemView.findViewById(R.id.playerImageView);
}
}
这会激活在线播放器项目。如果他们离线,我取消动画。
当我尝试在recyclerview中滚动时,问题就出现了。我知道观看者正在重复使用,但这会导致我在线的有效播放器停止制作动画,我猜他们会使用离线播放器数据进行回收。
我该如何解决这个问题?