Manejo del cambio de orientación con ViewPager + FragmentPagerAdapter
Tengo problemas para controlar el cambio de orientación de pantalla con ViewPager y FragmentPagerAdapter. Funciona bien en el inicio de la aplicación, pero los fragmentos dentro del viewpager no son visibles tras el cambio de orientación (tal vez perdido). ¿Cómo puedo solucionar este problema. La siguiente es la estructura de mi actividad:
Edit: Este es el archivo de manifiesto
- Android - Interfaces y clases internas
- FragmentPagerAdapter sólo existe en Android.Support.V4.App (y no en Android.App)
- Cómo cambiar fragmento de forma programática en FragmentPagerAdapter?
- Añadir pestañas a la izquierda con FragmentPagerAdapter
- FragmentPagerAdapter getItem no está siendo activado
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <application android:name="com.test.myapp.NetworkManager.TBVolleyInstance" android:allowBackup="true" android:icon="@drawable/launcher" android:label="@string/app_name" android:theme="@style/CustomActionBarTheme"> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity android:name=".Home" android:label="@string/app_name" android:windowSoftInputMode="adjustNothing" > </activity> <activity android:name=".RouterActivity" android:label="@string/app_name" > <intent-filter android:label="@string/app_name" > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
Implementación de FragmentPagerAdapter:
public class PagerAdapter extends FragmentPagerAdapter{ public PagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int index) { switch (index) { case 0: return new Fragment1(); case 1: return new Fragment2(); } return null; } @Override public int getCount() { return 2; } @Override public float getPageWidth(int position){ return(1.0f); }
}
- Fragmentos de Viewpager y de Sherlock. ¿Cómo hacer somethng dentro de fragmento de FragmentActivity?
- IllegalStateException con PagerAdapter
- Android: reutilizar fragmentos de ViewPager y FragmentPagerAdapter
- Cambia dinámicamente el título de un android.support.v4.view.PagerTitleStrip
- Tengo un error extraño al usar un ViewPager dentro de un Fragmento
- FragmentPagerAdapter muestra todo el contenido del fragmento en la primera página
- No se puede cambiar ID de contenedor de fragmento
- ViewPager con fragmentos anidados?
Un poco tarde pero acabo de solucionar este problema exacto en mi aplicación. Hay dos soluciones.
1) Usted tiene que utilizar un FragmentStatePagerAdapter
lugar de un FragmentPagerAdapter
O
2) Si su ViewPager está envuelto en un fragmento (como su imagen muestra), entonces al crear el adaptador de ViewPager, tiene que utilizar getChildFragmentManager()
lugar de getSupportFragmentManager()
.
Espero que esto ayude a alguien como esto me llevó un día entero de tortura para resolver esto.
- ¿Qué es una "interrupción del deslizador" en Android
- TextView en las filas listview que muestran valores repetidos en desplazamiento en Android?