1

我有一个网格视图适配器,所有内容都在这段代码中:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View v = convertView; 
    CheckBox check = null;
    ImageView pic = null;

    if (convertView == null) { // if it's not recycled, initialize some
                                // attributes
    LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.check_box_and_imageview, null);
     } 

    pic = (ImageView)v.findViewById(R.id.imageView);
    check = (CheckBox) v.findViewById(R.id.checkBox);
    check.setTag(position);

    ImageLoader loader = new ImageLoader(mContext);

    //this loads image from given url
    loader.DisplayImage(url[position], pic);
    return v;



}

在这里,我创建了一个带有复选框和图像视图的视图。存在问题,因为图像视图的大小不同,并且 gridview 通过大小复选框和图像视图进行对齐。但我想通过复选框订购元素。

为了更好地解释我想要做的将显示这张图片:

在此处输入图像描述

这是我想做的。我的图像视图大小不一样。现在我将说明它的外观:

在此处输入图像描述

所以这不适合我。我想对齐不是所有的复选框和图像视图。但只是复选框将位于复选框下方。

那么这不可能与网格视图有关吗?

4

1 回答 1

0
  • 检查 convertView 是否为空:
  • 如果它是空的,是时候为这个 GridView 的元素膨胀一个新的视图了。您还可以使用持有者模式来缓存查找组成视图(而不是每次都使用 findViewById 搜索)(您使用 setTag 元素来膨胀视图,但它是来自节点数据元素的一条数据?!?你打算怎么做跟它有什么关系?!?)
于 2012-05-28T06:21:11.717 回答