Спасибо всем! Я использовал паттерн ViewHolder немного по другому. За эту дезинформацию прошу прощения.
Привожу отрывок из кода:
class ViewHolder{
ImageView image, bt_plus, bt_minus;
TextView tv;
.......
View convertView;
}
В методе getView(......) делаю следующую проверку:
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = getItem(position);
if(holder.convertView == null) {
holder.convertView = mInflator.inflate(R.layout.item_list_image_add, parent, false);
holder.image = (ImageView) holder.convertView.findViewById(R.id.image);
holder.bt_plus = (Button) holder.convertView.findViewById(R.id.bt_plus);
holder.bt_plus.setTag(holder);
............
}
return holder.convertView;
}
Для bt_plus прописал в .xml
......
android:onClick="onClickPlus"
......
а в класс Activity добавил метод:
public void onClickPlus(View v){
ViewHolder holder = (ViewHolder)v.getTag();
RelativeLayout rl = (RelativeLayout)v.getParent();
TextView circle = (TextView)rl.getChildAt(7);
Button bt_minus = (Button)rl.getChildAt(3);
final Button bt_plus = (Button)v;
......
}
Я понял, что незачем было хранить дополнительно convertView в holder.
При правильном использовании паттерна ViewHolder все заработало хорошо. Нет ошибок и заторможенности. Список прокручивается плавнее.
Но возник вопрос: "Почему появляется заторможенность, если возвращать holder.convertView в методе getView(......)?"