我有一个具有固定大小和分隔符装饰的RecyclerView。适配器中的视图是ViewSwitchers。我希望ViewSwitcher在ViewHolder被回收时返回其原始视图,以便在用户滚动时显示正确的视图。
当我覆盖OnViewDetatchedFromWindow并滚动时,RecyclerView现在只显示每个第5个视图,并且滚动存在延迟。
这是我的适配器代码:
@Override
public void onViewDetachedFromWindow(ViewHolder holder) {
super.onViewDetachedFromWindow(holder);
holder.vs.reset();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ViewSwitcher vs = new ViewSwitcher(parent.getContext());
vs.addView(LayoutInflater.from(parent.getContext()).inflate(
R.layout.layout_audio_row, parent, false), 0);
vs.addView(LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_audio_menu_row,
parent, false), 1);
vs.setMeasureAllChildren(false);
Animation showView = AnimationUtils.loadAnimation(parent.getContext(),
android.R.anim.fade_in);
vs.setInAnimation(showView);
//vs.setOutAnimation(hideView);
ViewHolder vh = new ViewHolder(vs);
return vh;
}
我是否在适当的位置调用了vsreset()?非常感谢提前!