У меня есть бесконечный и автоматический просмотр пейджера с 3 страницами (виды, а не фрагменты). Использование ObjectAnimator
я создал фиктивную анимации, как так:Пейджер с автопрокруткой вызывает падение кадров
valueAnimator.setRepeatMode(ObjectAnimator.RESTART);
valueAnimator.setRepeatCount(ObjectAnimator.INFINITE);
valueAnimator.setDuration(1500);
и onAnimationRepeat
, я использую setCurrentItem(nextItem, true)
, чтобы перейти к следующей странице. Однако, если я сижу и жду на этом экране, тогда производительность пользовательского интерфейса становится ниже и ниже после 10 или около того изменений страницы (используя TinyDancer Я заметил, что FPS падает до 20 с 60).
Однако, изменив линию на setCurrentItem(nextItem, false)
(установка smoothScroll
на false), падение производительности устраняется.
Есть ли что-то о вызове setCurrentItem
несколько раз, что может вызвать это? Могу ли я настроить поведение smoothScroll
, чтобы исправить это? Опять же, я в любой момент загружаю в этот пейджер не более 5 просмотров, и я наблюдал, как использование памяти остается неподвижным при просмотре FPS.
Установите предельный размер экрана для вашего ViewPager равным нулю или одному (setOffscreenPageLimit (0)). –
Я уже устанавливаю его в 1; установив его на 0, выдается сообщение журнала 'Requested offscreen page limit 0 слишком маленькое; по умолчанию 1'. – blork