2015-02-14 2 views
1

Так как название говорит, у меня есть эта проблема с моим списком. Я не использую обычный список, im используя наблюдаемую библиотеку scrollview, основанную на списке.Listview перескакивает на дно при быстрой прокрутке

Во-первых, я хотел бы разъяснить несколько вещей, чтобы дать вам больше ясности.

  1. У меня не было этой проблемы, пока я не изменил пару вещей с помощью макетов адаптеров моего списка.

  2. Это кажется странным, потому что раньше я не получал эту проблему.

  3. Он прокручивается с ненормальной скоростью, я просто бросаюсь, и он внезапно падает на дно.

  4. прокрутки медленно, не вызывает неполадку

  5. Если я замедлить мой ListView и попробовать, если да, то как?

  6. Я загружаю больше предметов в прокрутку, у меня тоже есть footerview, а footerview остается только на секунду или меньше.

+0

Делает это «рывком»/«замораживанием» перед ударом снизу? Поместите содержимое вашего метода 'getView()' в свой пользовательский адаптер. Кроме того, [прочитайте это.] (Http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/) – JonasCz

+0

Да, это как im в 4-м элементе и стрела маленькая вспышка и 10-й предмет , – TheAnimatrix

+0

http://pastebin.com/9m718LXV getview. – TheAnimatrix

ответ

0

В вашем методе getView, у вас есть

inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

View v = inflater.inflate(R.layout.custom, parent, false); 

Заменить

if (convertView == null) { 
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflater.inflate(R.layout.custom, parent, false); 
} 

И это будет гораздо лучше.

Btw, ViewHolder is not so hard. Если это не сработает, у вас есть, чтобы реализовать ViewHolder правильно. Также избегайте делать слишком много вещей в getView и убедитесь, что вы загружаете изображения асинхронно (большинство библиотек ImageLoader сделают это для вас)

+0

Я понял проблему, это вызвало вызов notifydatasetchanged() на динамически раздутом списке (больше элементов, загруженных в прокрутку) – TheAnimatrix

+0

@ TheAnimatrix, это хорошо. – JonasCz

3

Это также может быть вызвано ошибкой в ​​Android 5.1. The bug report can be found here. Два быстрых прокрутки в ListView приводят к тому, что они попадают в верхнюю часть списка, а затем мгновенно прокручиваются вниз.

В настоящее время единственным решением является использование ScrollView вместо ListView.

+0

хорошо, что это было на всех андроидах, поэтому я не использую аниматоры в списках с динамическими элементами. – TheAnimatrix

Смежные вопросы