【问题标题】:Android 2.3: GridView out of order after scrollingAndroid 2.3:滚动后 GridView 乱序
【发布时间】:2011-07-13 15:01:22
【问题描述】:

我有一个加载了一堆自定义视图的 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;
}

【问题讨论】:

    标签: android gridview scroll


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这可能是因为图片加载尝试使用Picasso library

      解决方案不是使用位图直接加载图像,而是使用一个名为 Picasso 的很棒的库,它超级快我知道你真的很喜欢这个,你可以这样做

      将 picasso jar 文件添加到您的项目中(在此处下载 picasso jar 文件) 像这样使用毕加索加载图片

      Picasso.with(context).load(new File(title)).centerCrop()
              .resize(150, 150).error(R.drawable.ic_launcher).into(image);  
      

      其中 title 是您要加载的图像路径。裁剪、调整大小、错误是可选的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多