在RecyclerView中重置ViewSwitcher

时间:2014-12-29 20:15:53

标签: android android-recyclerview viewswitcher

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

0 个答案:

没有答案