在创建Adapter时,需要重写Adapter中的ViewHolder的方法onViewRecycled()。该方法会在View被回收的时候触发,我们可以通过此方法进行一些处理,比如重置View,避免出现旧的View的影响。
示例代码如下:
public class MyAdapter extends RecyclerView.Adapter
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//创建 ViewHolder
}
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
//绑定 ViewHolder
}
@Override
public void onViewRecycled(MyAdapter.ViewHolder holder) {
//重置 ViewHolder
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView) {
//在ViewHolder中初始化View
}
}
}
在onViewRecycled()方法中,可以根据需要对ViewHolder中的View进行重置,比如将ImageView设置为默认的图片,避免在回收的时候旧的图片仍然显示在屏幕上。