Использование кэшей ViewPager Фрагменты после поворота экрана?

Сначала я создаю свои фрагменты внутри Activity onCreate (). Чем я занимаюсь созданием ViewPager и настройкой адаптера. Я сохраняю глобальную ссылку на фрагменты, чтобы обновлять их по мере необходимости. Кроме того, эти фрагменты доступны адаптером.

Моя проблема в том, что я замечаю, как только экран поворачивается, Фрагменты воссозданы, но ViewPager все еще содержит исходные фрагменты, созданные … ??

Как я должен заниматься жизненным циклом моего фрагмента? Мне нужно иметь возможность напрямую обращаться к фрагменту из этой операции. Является ли синглтон для фрагмента хорошей идеей? Или просто память?

protected void onCreate (Bundle savedInstanceState) { ... ... // set up cards mFrag1 = new Frag1(); mFrag1.setOnActionEventListener(mOnActionEvents); mFrag2 = new Frag2(); mFrag3 = new Frag3(); mFragPager = (ViewPager) findViewById(R.id.vpPager); mFragAdapter = new FragAdapter(getSupportFragmentManager()); mFragPager.setAdapter(mCardAdapter); mFragPager.setOnPageChangeListener(mOnCardChange); } 

Глобальные экземпляры и статические фрагменты – определенно плохая идея. Если вы не вызываете setRetainInstance() на фрагменте, он будет сериализован в Bundle и воссоздан, когда родительская активность будет воссоздана (на экране вращается и т. Д.). Это, конечно, приведет к созданию новых экземпляров фрагмента, и ваши старые ссылки будут недействительными. Вы должны получить ссылки на фрагменты с помощью FragmentManager.findFragmentById/Tag() мере необходимости и определенно не хранить их в статических переменных.

Возможно, вам нужно будет показать больше нашего кода, но пока вы создаете фрагменты в onCreate() ссылки должны быть действительны для срока действия активности. Проверьте пример кода совместимости библиотеки для получения дополнительной информации об использовании фрагментов с помощью ViewPager .

Intereting Posts
Как создать видеоизображение, такое как youtube «маленький экран и полноэкранная игра в Android» JQuery Мобильные иконки белые, а не черные на Android Буферизация Поверхностный вход в MediaCodec Существует ли ограничение на путь рисования с помощью Geocoder (Android)? Android: проблема передачи изображения и его URI между двумя действиями Как автоматически создать каталог на SD-карте «Размер растрового изображения превышает 32 бит» в buildDrawingCache на устройствах KitKat Действительно ли React действительно поддерживает Android-фрагменты? Android (3.0) Action Bar не хочет идти «Не удается найти модуль с тегом« CocosDenshion / android »в пути импорта» ошибка в приложении cocos2dx Как применить пользовательский образ spinner для выполнения диалога в android Delphi XE5 Android-приложение должно обрабатывать трудоемкие задачи внутри потока? Не удалось запустить .apk на некоторых устройствах Genymotion ? Android: attr / selectableItemBackground с другим существующим фоном Создайте библиотеку Android-openssl для платформы 2.1