Intereting Posts
«Ресурс не найден» при создании приложения для Android в IntelliJ 9.0 Maia Public Beta Как приложение google home может автоматически получать пароль wifi на Android? R.java не создается должным образом для приложения для Android-библиотеки Android Studio – папка с макетами не появляется Сделать пустой вид займет оставшееся пространство после RecyclerView? Как обновить платформенные платформы Android в безголовом Linux? (Android Layout) Решение для кнопки «Место» поверх изображения неправильной формы или обнаружения касания (осязаемая область) определенной области изображения? Как скрыть неактивные продукты из биллинга приложений? Java.lang.NoClassDefFoundError $$ inlined $ forEach $ lambda $ 1 в Котлине Как применить прослушиватель событий click к изображению в android Android – извлечение файлов cookie после входа в webview Перечислите данные необработанных датчиков в Memo Эмулятор для галактики s3 Загружая новую версию приложения в Google Play, Консоль разработчика говорит «добавлено 69 языков», Gradle не создает ActionBarSherlock

ViewPager setCurrentItem замораживает поток пользовательского интерфейса

Я использую ViewPager из поддержки Android v13, и я бы хотел прокрутить к определенному элементу с помощью setCurrentItem(int) , но когда я пытаюсь прокрутить более 2 страниц, приложение зависает, и через несколько секунд система показывает ANR окно.

Я попытался увеличить ограничение экрана на экране с помощью setOffscreenPageLimit(2) , таким образом, он не замерзал, когда я попытался прокрутить 2 страницы, но сделал то же самое для 3-х страниц.

Моя проблема в том, что мои фрагменты довольно много памяти, поэтому мне не хотелось бы иметь слишком много памяти. Я использовал тот же код в библиотеке поддержки v4, но мне пришлось обновить его до версии v13, чтобы использовать NotificationCompat.Builder.addAction(int, CharSequence, PendingIntent) .

Кто-нибудь из вас знает, что может быть проблемой, и каково может быть решение?

Solutions Collecting From Web of "ViewPager setCurrentItem замораживает поток пользовательского интерфейса"

Ваш адаптер обрабатывает очень большое количество предметов? (Очень большой> ~ 2 20 позиций)

ViewPager.populate(int) будет зацикливаться от текущей позиции позиции до N , которая представляет собой количество элементов в адаптере, поэтому, если вы установили ее в нечто большое (например, Integer.MAX_VALUE ), это займет некоторое время, но В конце концов закончится.

Если это ваш случай, выполните поиск вопросов, связанных с бесконечным пейджером, таких как Endless ViewPager android , или ограничьте количество элементов тем, что разумно для основного потока.