美文网首页代码笔记
RecycleView包含流式布局,避免多次addView

RecycleView包含流式布局,避免多次addView

作者: _VITA | 来源:发表于2017-11-08 14:38 被阅读31次

项目中,需要在Recycleview中加一行FlowLayout实现商品评价的“用户印象”模块。
RecycleView在数据改变的情况下,会刷新界面。这样可能导致刷新一次,就会执行addView一次。原来项目中的做法是先全部清除子view,再创建view并添加。但是我觉得多次全删全创建填加不太好,于是想办法复用,得到以下方法:

            int impressCount =Data.size();
            if (impressCount<mImpressCount){//remove
                mFlowLayout.removeViews(Data.size(),mImpressCount-Data.size());
                mImpressCount=impressCount;
            }
            for (int i = 0;i<impressCount;i++){
                if (i<mImpressCount){//复用
                    ((TextView)mFlowLayout.getChildAt(i)).setText(Data.get(i).tagName+"("+Data.get(i).count+")");
                }else {//增加textview
                    TextView textView = (TextView) LayoutInflater.from(mFlowLayout.getContext()).inflate(R.layout.item_buyer_impression, mFlowLayout, false);
                    textView.setText(Data.get(i+mImpressCount).tagName+"("+Data.get(i+mImpressCount).count+")");
                    mFlowLayout.addView(textView);
                }
            }
            mImpressCount =impressCount;

相关文章

网友评论

    本文标题:RecycleView包含流式布局,避免多次addView

    本文链接:https://www.haomeiwen.com/subject/yiaemxtx.html