2011-07-13 91 views
3

我有一個GridView加載了一堆自定義視圖。當我向上或向下滾動時,之前屏幕上顯示的視圖現在被替換爲不同的視圖。任何想法爲什麼發生這種情況Android 2.3: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; 
} 

回答

3

沒關係我想通了。只需將所有初始化代碼放入(convertView == null)部分和if/else塊之後的setter方法即可。

+0

應該複製它! – Mikey

0

這可能是becouse圖像加載的請嘗試使用Picasso library

解決方案是不是使用位圖載入圖片直接使用了一個名爲畢加索真棒圖書館的只是超級快,我知道你真的愛這個你可以做到這一點像這樣

畢加索jar文件添加到您的項目(下載畢加索jar文件在這裏) 使用畢加索加載這樣

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

其中標題是要看哪圖像路徑的圖像廣告。裁剪,調整大小,錯誤是可選的。