Android smoothScrollBy ведет себя плохо
У меня есть ListView
, который я вызываю smoothScrollBy()
on. 95% времени, smoothScrollTo()
ведет себя так, как предполагалось. Однако есть моменты, когда это не заканчивается в намеченном месте! Я подтвердил, что я даю ему такое же значение. Я замечаю, что гладкая прокрутка не так гладко, когда сделаны ошибки, однако нет других задач, которые выполняет мое приложение, которые я бы контролировал.
Я не совсем уверен, что происходит в фоновом режиме, но вероятным виновником является сбор мусора.
точность 95% недостаточно хороша в этой ситуации. Я собираюсь реализовать какой-то механизм коррекции, чтобы убедиться, что ListView
попадает в правильное место в этих случаях.
Есть ли лучший способ использовать smoothScrollBy()
, кроме простого вызова view.smoothScrollBy(distance, time);
?
Ответы
Ответ 1
Попробуйте несколько из них:
Listview имеет свой собственный механизм прокрутки. Он прокручивается при добавлении содержимого.
Если это не решит проблему. Отправьте код, в котором вы назначаете адаптер, в список, если он есть. Или соответствующий код.
Также код макета xml.
Надеюсь, что это поможет.
Ответ 2
иногда это происходит из-за проблемы синхронизации. Когда представления добавляются в ваш список и время, которое вы делаете
view.smoothScrollBy(distance, time);
listview или ui по-прежнему не нуждаются в обновлении. Так что сделайте это в потоках сообщений просмотров с определенной задержкой. Например.
view.postDelayed(new Runnable{
view.smoothScrollBy(distance, time);
},1000);