У меня есть кнопка и индикатор выполнения (невидимый) в списке. При нажатии кнопки он должен исчезнуть, и индикатор выполнения должен быть видимым и начать работу (, загрузив с веб-сервера), и когда это будет сделано с кнопкой запуска, должно появиться снова. Теперь, когда я нажимаю кнопку первого элемента, индикатор выполнения работает, но если я прокручиваю вниз, пока первый элемент не погаснет, я вижу индикатор выполнения, одновременно работающий с индикатором выполнения первого элемента в последнем элементе списка. Если я прокрутку вверх, индикаторная панель первого элемента работает нормально. Это случается так же, если я нажимаю второй элемент, второй второй элемент listview делает то же самое. В чем проблема и как я могу ее решить? Пожалуйста помоги!!!Ошибка при просмотре при прокрутке вниз
ответ
Вы должны помнить, какие позиции загружаются, их прогресс (если вы не показываете неопределенный бар) и обновляете эти значения в getView вашего адаптера. Это действительно очень быстро усложняется: если вы хотите обновить представление еще раз, когда загрузка закончится, вы должны сделать очень очень тщательное кодирование, чтобы сделать так, как работает listviews, и как они перерабатывают представления, или вам нужно обновить весь listview всякий раз, когда файл заканчивает загрузку или обновление прогресса, что может привести к мерцанию.
Выберите концепцию класса viewHolder, которая сохраняет состояние списка до завершения процесса. Основная проблема Urs заключается в том, что когда u прокручивает список, просмотр получает обновление сыну только до исходного состояния.
Class ViewHolder
{
TextView mtext;
Button mButton;
ProgressBar mBar;
}
В методе GetView инициализация класса viewholder
ссылки:
http://developer.android.com/training/improving-layouts/smooth-scrolling.html http://developer.android.com/training/contacts-provider/display-contact-badge.html
попробовать что-то вроде этого ... Я использую разные точки зрения для Pdf скачивания, но вы можете используйте эту концепцию
Holder holder;
class Holder {
TextView txt_pdfname;
Button btn_download;
ImageView img_pdficon;
}
@Override
public View getView(final int arg0, View arg1, ViewGroup arg2) {
// position=arg0;
View v=arg1;
if (v == null) {
holder = new Holder();
v = layoutInflater.inflate(R.layout.cell_document, arg2,false);
holder.txt_pdfname = (TextView) v.findViewById(R.id.txt_pdfname);
holder.img_pdficon=(ImageView)v.findViewById(R.id.img_pdficon);
holder.btn_download = (Button) v.findViewById(R.id.btn_download);
v.setTag(holder);
} else{
holder = (Holder) v.getTag();
}
File pdfFile=new File(Environment.getExternalStorageDirectory().toString()+"/fpapdf/"+(pdfUrl[arg0].substring(pdfUrl[arg0].lastIndexOf('/')+1)));
if(pdfFile.exists()){
holder.btn_download.setVisibility(View.INVISIBLE);
}else
holder.btn_download.setVisibility(View.VISIBLE);
holder.txt_pdfname.setText(this.pdfArray[arg0]);
holder.img_pdficon.setImageResource(pdfImage[arg0]);
holder.btn_download.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// YOUR CODE HERE
}
});
return v;
}
для получения дополнительной информации см this by Romain
это точно, как я это сделал. Но я все еще сталкиваюсь с проблемой. – casper
просто заменить GetView с этим, я удалением, если (вид == NULL) этим вы будете получать каждый раз новый вид еще чем из тега
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ArrayList<String> array=JournalArray.get(position);
final ViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater();
view = new ViewHolder();
convertView = inflator.inflate(R.layout.familylist_item, null);
view.progress=(ProgressBar)convertView.findViewById(R.id.downprogress);
view.txtViewTitle = (TextView) convertView.findViewById(R.id.text);
view.imgViewFlag = (ImageView) convertView.findViewById(R.id.imageView1);
view.imgAR=(Button)convertView.findViewById(R.id.imageAR);
view.imgAR.setTag(view);
view.imgDown=(Button)convertView.findViewById(R.id.imageDown);
view.imgDown.setTag(view);
view.imgPDF=(Button)convertView.findViewById(R.id.imagePDF);
view.imgPDF.setTag(view);
view.progress=(ProgressBar)convertView.findViewById(R.id.downprogress);
view.btnDel=(Button)convertView.findViewById(R.id.btnDel);
view.btnDel.setTag(view);
convertView.setTag(view);
}
- 1. Обнаруживать при прокрутке вниз
- 2. Затухание при прокрутке вниз
- 3. Изменения при прокрутке вниз
- 4. анимировать при просмотре при прокрутке до углового2
- 5. Listview появляется ошибка при прокрутке вниз
- 6. Ошибка при прокрутке фрагмента вверх/вниз непрерывно
- 7. Утилизация UITableViewCell при прокрутке и обратном просмотре
- 8. слайд вниз меню при прокрутке вниз jQuery
- 9. Затухайте при прокрутке вниз. Как?
- 10. Хорошие эффекты при прокрутке вниз
- 11. ImageView Масштабирование при прокрутке вниз
- 12. высота вырезания при прокрутке вниз
- 13. Уничтожьте эффект при прокрутке вниз
- 14. Расширение сайта при прокрутке вниз?
- 15. Показывать навигацию при прокрутке вниз
- 16. Запуск javascript при прокрутке вниз
- 17. Заголовок таблицы при прокрутке вниз
- 18. Скрыть AppBar при прокрутке вниз
- 19. Различные фоны при прокрутке вниз
- 20. Фиксированная навигация при прокрутке вниз
- 21. OnCheckedChangeListener срабатывает при прокрутке вниз
- 22. RecyclerView autoload при прокрутке вниз
- 23. Скрытие заголовка при прокрутке вниз/показывается при прокрутке вверх
- 24. Ошибка при просмотре списка
- 25. Ошибка приложения при просмотре
- 26. Перетаскивание текста SHIFT при прокрутке вверх/вниз
- 27. Рисование пользовательских ячеек, которые появляются при просмотре при прокрутке
- 28. фон и положение divs при прокрутке вниз
- 29. Высота div не работает при прокрутке вниз
- 30. Приложение UITableView подавляет при прокрутке слишком вниз
Отправьте соответствующий исходный код, пожалуйста. – ozbek
поделитесь своим кодом – Ishtiaq
, с которым вы столкнулись, чтобы перепутать ваши записи? – Ishtiaq