gpt4 book ai didi

android - GridView 滚动问题

转载 作者:搜寻专家 更新时间:2023-11-01 09:06:18 25 4
gpt4 key购买 nike

我有一个包含图像的列表,每次用户单击图像然后在 GridView 上图像将显示在 GridView 上,这部分我已经完成并且正在运行。问题是当用户开始向上/向下滚动时,网格上所有以前的图像开始显示在不同的地方。我猜我的适配器中的 getView 函数有问题

public class GridAdapter extends BaseAdapter{

Context mContext;
public GridAdapter(Context con){
mContext = con;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return Globals.obsImageMatrix.size();
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public View getView(final int position, View convertView, ViewGroup arg2) {

if(convertView==null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.grid_image, null);
Holder.image =(ImageView) convertView.findViewById(R.id.obsImage);
// Holder.image.setImageResource(R.drawable.blank);
}
Holder.image =(ImageView) convertView.findViewById(R.id.obsImage);
Holder.image.setImageResource(Globals.obsImageMatrix.get(position));
return convertView;
}



public static class Holder{
public static ImageView image;
}

Globals.obsImageMatrix 是一个矩阵,它的大小与网格本身相同,包含网格的图像。

最佳答案

您没有正确使用 ViewHolder。试试这个:

@Override
public View getView(final int position, View convertView, ViewGroup arg2) {

ViewHolder holder = null;
if(convertView==null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.grid_image, null);
holder = new ViewHolder();
holder.image =(ImageView) convertView.findViewById(R.id.obsImage);
convertView.setTag(holder);
}else{
holder = (ViewHolder)convertView.getTag();
}

holder.image.setImageResource(Globals.obsImageMatrix.get(position));
return convertView;
}

public static class Holder{
public ImageView image;
}

您必须阅读更多有关 viewHolder 的内容才能理解此模式。 SO 和 google 上有很多帖子。

希望对你有帮助

关于android - GridView 滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11684265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com