您的位置:首页 > 其它

修改Adapter实现GridView列表中的增加按钮

2015-02-14 14:47 337 查看
如下是常见的GridView,红色是显示的图片,绿色加号是增加图片的按钮,如何实现这样的效果?



第一个思路,是在数据list最后位置增加一个加号图片数据,但这样改动原始list数据的方法显然不好,牵扯很多。
第二个思路,是在Adapter里面的数据list最后一个位置增加加号图片数据,但是,为了显示一个按钮而变动正常数据list总是不妥的。再有一点,Adapter中数据list的头指针是自己的,list里面的items数据项可能和外面的list共享的,也即可能是同一体。可能是这样,这点我没细看。
第三个思路是我推荐的,其方法是在Adapter比对View和数据item时偷偷插入一环,

public class RvAdapterCollectPic extends Adapter<RvAdapterCollectPic.ViewHolder> {

List<LvRowFile> listItems;

public RvAdapterCollectPic(List<LvRowFile> li) {

this.listItems = li;

}

@Override

public int getItemCount() {

return listItems.size() + 1; //偷偷为GridView增加一个子View位置

}

@Override

public void onBindViewHolder(ViewHolder holder, int position) {

if (position == listItems.size()) { //在最后位置增加一个加号图片

holder.file_icon.setImageDrawable(here is a add pic));

holder.file_icon.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

}

});

return;

}

holder.file_icon.setImageDrawable(listItems.get(position)); // 平时就是普通的list数据
holder.file_icon.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

}

});

}

}

类似地,可以让getItemCount()返回“listItems.size() + 2”来实现如下效果而不改变list数据本身:



蓝色指向上一级目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐