Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2.3:GridView在滚动后出现故障_Android_Gridview_Scroll - Fatal编程技术网

Android 2.3:GridView在滚动后出现故障

Android 2.3:GridView在滚动后出现故障,android,gridview,scroll,Android,Gridview,Scroll,我有一个GridView加载了一堆自定义视图。当我向上或向下滚动时,以前离开屏幕的视图现在被不同的视图替换。你知道为什么会这样吗 public View getView(int position, View convertView, ViewGroup parent) { ImageView imageView; LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAY

我有一个GridView加载了一堆自定义视图。当我向上或向下滚动时,以前离开屏幕的视图现在被不同的视图替换。你知道为什么会这样吗

    public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    LayoutInflater inflater =  (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    RelativeLayout rLayout = (RelativeLayout)inflater.inflate(R.layout.collection_item, parent, false);

    if (convertView == null) {  // if it's not recycled, initialize some attributes    
        ImageView movieImage = (ImageView)rLayout.findViewById(R.id.movieImage);
        TextView movieTitle = (TextView)rLayout.findViewById(R.id.movieTitle);
        TextView movieDescription = (TextView)rLayout.findViewById(R.id.movieDescription);

        movieImage.setImageResource(movies[position]);
        movieTitle.setText(movieNames[position]);
        movieDescription.setText(movieDescriptions[position]);
    } else {
        rLayout = (RelativeLayout) convertView;
    }
    return rLayout;
}

没关系,我想出来了。只需将所有初始化代码放入if/else块之后的(convertView==null)部分和setter方法中。

这可能是由于图像加载的缘故,请尝试使用

解决方案是不用位图直接加载图像,而是使用一个叫做毕加索的很棒的库,它的速度非常快,我知道你真的很喜欢它,你可以这样做

Picasso.with(context).load(new File(title)).centerCrop()
        .resize(150, 150).error(R.drawable.ic_launcher).into(image);  
将毕加索jar文件添加到项目中(在此处下载毕加索jar文件) 使用毕加索像这样加载图像

Picasso.with(context).load(new File(title)).centerCrop()
        .resize(150, 150).error(R.drawable.ic_launcher).into(image);  
其中title是要加载的图像路径。裁剪、调整大小和错误是可选的