GridView 重复渲染问题

来源:互联网 发布:下载淘宝 编辑:程序博客网 时间:2024/06/08 06:54

GridView 重复渲染问题

在使用GridView的时候由于本身机制问题,经常在加载的时候会多渲染一些内容,而这些这些内容又不是我们需要的,解决起来又很麻烦,在网上搜了很多方法都不管用,所以整理结合网上自己写出一段代码来解决:

代码块

在适配器Adapter中代码如下:

    public boolean mFlag = false; //标识器    public int mCount = 0 ;//计数器    @Override    public View getView(final int position, View convertView,            final ViewGroup parent) {        if (convertView == null) {            convertView = LayoutInflater.from(getContext()).inflate(                    this.resourceId, null);        }        //-----------用于去掉最后重复的渲染..  不要删除-----------//        if (position == getCount() - 1){//当位置处于最后一位时开始操作            mFlag = true;               //打开操作标识        }else if (position != 0 && position != getCount() - 1){        //如果 位置不是0 且 位置不是最后一位,  就是说是中间位置时   刷新时走这里            mFlag = false;//标识关闭            mCount = 0;   //计数器关闭        }        if(mFlag == true && position == 0){        //当操作标识为true 且是最后一位后面的0时            mCount++;  //计数开始!        }        if(mFlag == true && mCount > 0){//计算出来10             Log.v(TAG, "<getView> drop !!!");               return convertView;//直接跳出空的View        }      //-----------用于去掉最后重复的渲染..  不要删除-----------//…………return convertView;}

这样写的话,能最大限度的删除多余的渲染部分.. 目前为止使用上还没出现过重复渲染问题,但是需要注意的是计数器以及标识器的重置问题,在你需要刷新的地方设置它们进行重置。

0 0
原创粉丝点击