2013-03-07 2 views
2

В настоящее время я использую ViewPager с адаптером FragmentStatePager с приблизительно 25 различными фрагментами (и различными relativelayouts). Когда я прокручиваю, я обычно замечаю значительное отставание при просмотре некоторых просмотров, за исключением случаев, когда объявляю viewpager.setoffscreenpagelimit(25). Есть ли способ увеличить производительность этого viewpager, не имея всех загруженных страниц во все времена?Производительность Android Viewpager

+0

Вы замечаете существенное, что? Одна вещь, которую вы всегда можете попробовать, - поэкспериментировать с разными номерами в параметре 'offscreenpagelimit', что означает, что загружаемые страницы проблем будут загружены до того, как вы их получите. –

+0

извините, я замечаю, что финансовая отставание – user1437481

ответ

3

Использование ViewPager из коробки будет загружать максимум три фрагмента/представления. Оставайтесь с этим номером. Это не то, что ViewPager работает медленно, вы делаете что-то в своем коде, что делает его медленным. Любой из ваших фрагментов выполняет любую задачу блокировки или процессора? Например, загрузка растровых изображений? У вас есть синтаксический анализ, который можно было бы сделать в AsyncTask? Возможно, вы могли бы разместить такие вещи где-то еще и сохранить их в базе данных, а затем, когда вы загрузите Frament, он останется очень чистым и эффективным, если вы будете читать из базы данных.

+0

да, каждый фрагмент имеет другое релятивирование и другой фон, который я загружаю в onCreateView(). Другое, что у меня есть только несколько кнопок и изображений (также загружаемых на onCreateView()) – user1437481

+0

Вы пробовали на реальном устройстве, и если да, то какой? Попытка эмулятора, как правило, очень медленная. –

+0

Я использую пару устройств, nexus 7 и галактику nexus – user1437481

1

Не могли бы вы предоставить дополнительные детали для вашего вопроса? Например, что вы делаете на каждой странице?

Вы обновили до последних Android Support Library?

Изменения для библиотеки поддержки v4:

  • Улучшенное поведение взаимодействия для ViewPager.
  • Исправлена ​​ошибка, из-за которой ViewPager мог выбрать неправильную страницу.
  • Исправлено использование метода removeView() во время компоновки для ViewPager.
  • Исправлена ​​проблема с SearchViewCompat, где использование кнопки «Назад» для увольнения не очищает текст поиска. Это исправление применяется только к уровням API хоста 14 и выше.

Вы всегда должны помнить, что FragmentStatePagerAdapter автоматически сохраняет страницы и удаляет их, если они не используются. Таким образом, если вы промахнете очень быстро, будет много загрузки/выгрузки страниц. Вы можете увеличить количество загружаемых в память страниц.

+0

Я не обновлялся до последней библиотеки поддержки, попробую это и оставит отзыв. У меня в основном есть некоторые относительные макеты, каждый с другим изображением в качестве фона, а некоторые изображения - как точки взаимодействия, вот и все. Я не выполняю связанных с сетью задач в потоке ui. – user1437481

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