如何在网格视图中订购元素

时间:2012-05-28 06:10:07

标签: android xml gridview

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

@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通过大小复选框和图像视图进行对齐。但我想通过复选框订购元素。

为了更好地解释我想要做什么将显示这张照片:

enter image description here

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

enter image description here

所以这不适合我。我想要对齐而不是所有复选框和imageview。但只是复选框将在复选框下。

那么这可能与gird视图有关吗?

1 个答案:

答案 0 :(得分:0)

  • 检查convertView是否为null:
  • 如果为null,则需要为此GridView元素充气新视图。您还可以使用holder模式来缓存查找组合视图(而不是每次都使用findViewById进行搜索)(对于膨胀的View,您使用setTag元素,但它是来自Node数据元素的一段数据?!?您计划什么?用它做什么?!?)