我有一个具有固定大小和分隔装饰的 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;
}
我是否在适当的位置调用 vs.reset() ?提前非常感谢!