Существует много способов повысить производительность ViewPager
, интегрированного с ListView
.
Сначала измените PagerAdapter
с FragmentPagerAdapter
на FragmentStatePagerAdapter
. Разница в том, что вы загружаете 10 страниц в пейджер. И если вы прошли все, менеджер поместит только страницы в onStop()
, поэтому он зарезервирует место. Однако использование FragmentStatePagerAdapter
уничтожит эти страницы, но сохранит их экземпляр с помощью метода onSaveInstanceState
. Поэтому, когда вы вернетесь, загрузка не займет много времени, и вы сэкономите память.
Обычно FragmentPagerAdapter
используется с 3 страницами или меньше.
Второй способ повысить производительность (но он быстрее разряжает батарею) — добавить эту строку в AndroidManifest.xml
под тегом вашего приложения:
android:hardwareAccelerated="true"
Третий способ — обнаружение жеста смахивания. Вы можете сделать это, реализуя onPageChangeListener
, затем в реализованном методе onPageScrollStateChanged
вы проверяете, является ли страница Idle
, а затем добавляете ListView
. В противном случае прекратите использование ListView
и перейдите к следующей странице. Вот лучшее объяснение этого пункта.
Надеюсь, что некоторые из этих пунктов помогут вам добиться лучшей производительности.
person
Coderji
schedule
28.12.2013