1

假设 GridView 有以下子项:

0  1  2
3  4  5
6  7  8

当它们都可见时,getChildAt(5) 返回子 5。如果第一行不可见,我相信 getChildAt(5) 返回子 8。

我的理解正确吗?如果是这样,我怎样才能始终获得具有指定索引的 GridView 的孩子?

以下代码是我想如何使用位图 bm 更新位置 iPosition 的孩子:

GridView gridview = (GridView) findViewById(R.id.gridview);
View vGrid = gridview.getChildAt(iPosition);

ImageView iv = (ImageView) vGrid.findViewById(R.id.imageView);
iv.setImageBitmap(bm);

适配器的getView:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View vGrid;

    if (convertView == null) { // if it's not recycled, initialize some attributes

        vGrid = new View(activity);
        LayoutInflater li = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        vGrid = li.inflate(R.layout.devicetile, parent, false);

    } else {
        vGrid = convertView;
    }

    ImageView iv = (ImageView) vGrid.findViewById(R.id.imageView);
    iv.setImageBitmap(null);

    return vGrid;
}
4

0 回答 0