Intereting Posts
Добавление знака% к ярлыкам Y-оси в диаграмме диаграммы AChartEngine Не удалось найти инструмент. Пожалуйста, предоставьте правильный путь к каталогу Android SDK в качестве параметра конфигурации Не удалось найти метод onClick_Foo (View) – первый раз на Android Lollipop «App Engine Connected Android Project» недоступен Метод getWindow () не может использовать Диалоги / AlertDialogs: как «блокировать выполнение» во время диалога вверх (стиль .NET) Чтение данных SharedPreferences в фрагменте, внутри FragmentActivity Как определить сходство (в%) между двумя «черно-белыми» изображениями? Правильный клиент REST для Android DialogFragment приводит к сбою приложения при изменении ориентации Кнопки на скользящем ящике? – Android Мгновенный запуск Android studio 2.2 Я никогда не получаю hotswap всегда перезапускать и изменение типа поля уведомления Android-устройство продолжает отсоединяться от adb / eclipse Android – Пользовательский динамически созданный состав Просмотр воссоздан в RecyclerView, что приводит к низкой производительности Переопределение главного ключа. Длительное нажатие в категории.

Как избежать onCreateView () при прокрутке в вкладках

У меня есть приложение с активностью и 3 swipable вкладки (фрагменты). У меня есть некоторые сильно созданные элементы пользовательского интерфейса внутри вкладок, которые требуют определенного времени для создания, и это нормально для первого запуска, но просмотры воссоздаются каждый раз, когда я их прокручиваю.

Когда я выбираю вкладку, другая вкладка вызывает onStop (), и когда я снова выбираю предыдущую вкладку, onCreateView () вызывается снова, а просмотр заселяется, что замедляется и блокирует поток пользовательского интерфейса.

Каков правильный способ создания фрагментов внутри вкладок ONCE и избежать воссоздания их вида при прокрутке между другими вкладками?

Чтобы добавить к сообщению CommnosWare, если вы используете пейджер представления, вы можете просто вызвать mViewPager.setOffscreenPageLimit(3); Чтобы сохранить все три в памяти. Но если ваш пользовательский интерфейс слишком тяжелый, вы можете заметить какой-то бит. Поэтому попробуйте изменить код настройки пользовательского интерфейса.

У меня есть некоторые сильно созданные элементы пользовательского интерфейса внутри вкладок, которые требуют определенного времени для создания

Если «какое-то время» превышает ~ 5 миллисекунд, ваше приложение нарушено и должно быть исправлено. Используйте Traceview, чтобы точно определить, где вы тратите свое время, а затем исправлять вопросы, чтобы на основной поток приложений занимало меньше времени.

Каков правильный способ создания фрагментов внутри вкладок ОДНАЖДЫ и избегать воссоздания их вида при прокрутке между другими вкладками?

AFAIK, FragmentPagerAdapter не должен иметь эффекта, который вы описываете (хотя FragmentStatePagerAdapter будет). Но, опять же, если вы исправите onCreateView() производительности onCreateView() , даже FragmentStatePagerAdapter не опубликует проблему.

Просто добавьте следующий код внутри основного класса Fragment / Activity, где объявлен TabAdapter.

 viewPager.setOffscreenPageLimit(tabLayout.getTabCount()); 

Закладка tabLayout и viewPager следующим образом

 TabLayout tabLayout = (TabLayout) root.findViewById(R.id.tab_layout); ViewPager viewPager = (ViewPager) root.findViewById(R.id.pager);