Rotazione dello schermo di Android ViewPager

Ho un'attività con tabs ActionBarSherlock e un ViewPager all'interno di esso. Quando le pagine vengono scornetworking, le tabs vengono commutate e le tabs vengono modificate, anche la pagina corrente viene modificata. Sto utilizzando una class che estende FragmentStatePagerAdapter come adattatore nella visualizzazione di pagine. Il problema è che quando il dispositivo ruota, il getItem dalla scheda di pagina non viene chiamato e sembra che i riferimenti dei frammenti non siano corretti. Questo è un problema enorme, poiché l'utente deve soddisfare alcuni campi all'interno del cercapersone. Questi campi vengono recuperati correttamente sulla rotazione, ma poiché i riferimenti per i frammenti non sono corretti, non posso salvare questi valori nel modo giusto. Qualche idea circa la rotazione?

  • Controllare la connettività Internet in Android
  • Android Persistent Checkable Menu in Widget personalizzato dopo il riavvio Android
  • Come posso mostrare la posizione corrente su un Google Map su Marshmallow Android?
  • Accendere il vivavoce each volta che viene effettuata una chiamata in output
  • Android studio java.lang.NoClassDefFoundError: android.support.v4.app.NavUtilsJB
  • Adattatore a spina personalizzato
  • Android Development Tool 23.0.0 e Android L Aggiorna l'errore in Eclipse
  • Come funziona AsyncTask in Android
  • C2DM con PHP utilizzando OAuth2.0 (ClientLogin è obsoleto!)
  • Perché maxWidth su un button non funziona e come funziona attorno ad esso?
  • Bytes Per Pixel valore per la rappresentazione di byte di image in Android
  • Come annullare il timer e rinnovare lo stesso timer?
  • 3 Solutions collect form web for “Rotazione dello schermo di Android ViewPager”

    Salvare il numero della pagina corrente in onSavedInstanceState:

    @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("item", mViewPager.getCurrentItem()); } 

    Poi in onCreate:

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(savedInstanceState != null) { mViewPager.setCurrentItem(savedInstanceState.getInt("item")); } } 

    Ho inviato una soluzione a questo problema nella domanda qui https://stackoverflow.com/a/21517213/3170538 . Essenzialmente si vuole essere sottoclass di PagerAdapter, non di FragmentPagerAdapter e gestire la creazione e l'eliminazione di oggetti da soli (getItem () è una routine che viene chiamata da FragmentPagerAdapter.instantiateItem (), quindi il problema è quando lo schermo viene ruotato la routine doesn ' t ri-call getItem (), a causa di un codice che presumibilmente migliora le performance. Quando la sovrascriverai puoi gestire correttamente la rotazione non tentando di riconnettersi al frammento eliminato.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.