in meiner Aktivität beibehalten i ViewPager
haben, die, die für zwei fragments
, in diesen Fragmenten umgesetzt Ich habe einige Pop-up wie Dialog, der auf drehen Gerät Popups wieder von vorn anfangen, Popups dies auf createview
ist und nach dem Mutter Aktivität i läuft Holen Sie einige Daten vom Server, wie kann ich diese Fragmente behalten, um nicht wieder auf Änderungsgerätausrichtung zu laden?Android-Fragmente auf ViewPager
Aktivität:
private void setupViewPager(ViewPager viewPager) {
adapter = new RegisterViewPagerAdapter(getSupportFragmentManager());
//adapter.addFragment(new FragmentEmpty());
adapter.addFragment(FragmentCheckValidationCode.getInstance());
adapter.addFragment(FragmentRegisterPhoneNumber.getInstance());
viewPager.setOffscreenPageLimit(1);
viewPager.setAdapter(adapter);
registerPages.setCurrentItem(1);
registerPages.setPageMargin(50);
registerPages.setScrollDurationFactor(5);
}
Fragmente:
public static FragmentCheckValidationCode getInstance() {
if (instance == null) {
instance = new FragmentCheckValidationCode();
}
return instance;
}
FragmentCheckValidationCode:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//@formatter:off
activity = getActivity();
context = getActivity().getBaseContext();
//@formatter:on
setRetainInstance(true);
}
Verwenden Sie FragmentPagerAdapter anstelle von FragmentStatePagerAdapter. Dies lädt alle Fragmente in den Speicher. Zum Speichern der Instanz siehe @SaravInferns Antwort –
@NinoHandler ich ändere 'FragmentPagerAdapter' in' FragmentStatePagerAdapter' und füge 'setRetainInstance (true) hinzu;' in 'onCreate', fragmentiere mit Dialogen lade wieder –
verwendest du ein anderes Layout für Landschaft? wenn nicht, könntest du android: configChanges = "orientation | screenSize | keyboardHidden" zu deiner Aktivität in dir hinzufügen Manifest –