2012-04-14 34 views
0

我有一個列表視圖中的自定義控件來顯示播放進度,當我點擊一個listitem。重複的動畫自定義控件在android中滾動列表視圖

當我點擊一個listitem,當它播放聲音時,我會顯示一個進度圈,但是如果我滾動listview這個自定義控件,它會顯示上面的每行6行。

這是我的問題: http://i43.tinypic.com/34dsx2e.png

這是我CustomAdapter的getView:

public View getView(int position, View convertView, ViewGroup parent) { 
    final ViewHolder holder; 

    if (convertView == null) { 
     mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);   
     convertView = mInflater.inflate(mResourceId, parent, false); 
     holder = new ViewHolder(convertView); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.position = position; 


    Item item = getItem(position); 
    holder.progressWheel.setPosition(position); 
    holder.textViewTitle.setText(item.getName()); 
    return convertView; 
} 

提前感謝!

回答

0

因爲您正在回收convertView(listview將convertView參數發送給您以前使用過的視圖以減少內存使用量),因此會顯示進度圈。解決辦法有兩個:

A)不回收的convertView(子obtimal)

替換:

​​

有:

mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);   
convertView = mInflater.inflate(mResourceId, parent, false); 
holder = new ViewHolder(convertView); 

B)隱藏在該progressWheel查看「return convertview」之前

相關問題