0

我有一个具有固定大小和分隔装饰的 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() ?提前非常感谢!

4

0 回答 0