ViewPager + FragmentStatePagerAdapter: ViewPager deja de funcionar cuando cambia la orientación de la pantalla

Estoy utilizando ActionBarSherlock (que es básicamente una extensión del paquete de soporte de Android).

Lo que estoy tratando de hacer es la siguiente:

Tengo un FragmentActivity que recibe apenas un ViewPager solo. Este ViewPager tiene un FragmentStatePagerAdapter (porque habrá muchos elementos en el futuro). Pero por ahora sólo se carga con 2 elementos para la prueba.

Todo está funcionando bien mientras estoy en orientación vertical. Pero cuando cambio la orientación del paisaje entonces cambia de nuevo al primer artículo en el adaptador (que está muy bien puesto que todo se recarga etc), pero no puedo swype al artículo siguiente. No pasa nada.

Desde la depuración puedo ver que el Loader devolver los dos elementos muy bien. getItem(...) también se llama con la position 0 y 1. Así basicall todo se ve bien, excepto que no lo es;)

Por cierto: lo mismo sucede a la inversa cuando empiezo en la orientación horizontal y cambio a la orientación vertical.

Cualquier idea de lo que podría estar mal aquí?

He aquí algunos de mis códigos:

 public class QuotesStatePagerAdapter extends FragmentStatePagerAdapter { private List<Quote> mQuotes; public QuotesStatePagerAdapter(FragmentManager fm, List<Quote> quotes) { super(fm); mQuotes = quotes; } @Override public Fragment getItem(int position) { Bundle arguments = new Bundle(); arguments.putSerializable("quote", mQuotes.get(position)); QuoteFragment fragment = new QuoteFragment(); fragment.setArguments(arguments); return fragment; } @Override public int getCount() { return mQuotes.size(); } 

}

 public QuotesFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public void updateOrdering(ORDERING newOrdering) { mOrdering = newOrdering; getLoaderManager().getLoader(0).startLoading(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.quotes, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mViewPager = (ViewPager) view.findViewById(R.id.viewpager); mViewPager.setOnPageChangeListener(this); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getLoaderManager().initLoader(0, null, this); } @Override public Loader<List<Quote>> onCreateLoader(int id, Bundle args) { return new QuotesLoader(getActivity(), mCategoryId); } @Override public void onLoadFinished(Loader<List<Quote>> loader, List<Quote> data) { mQuotes = data; mViewPager.setAdapter(new QuotesStatePagerAdapter( getSupportFragmentManager(), mQuotes)); } 

2 Solutions collect form web for “ViewPager + FragmentStatePagerAdapter: ViewPager deja de funcionar cuando cambia la orientación de la pantalla”

Android: configChanges = "orientación" funcionó como un encanto, pero vi que no es recomendada por el equipo de Android (sólo el último recurso de caso) … Vea aquí http://developer.android.com/guide/topics/manifest/activity -element.html # config

Descubrí que poner: setRetainInstance (true); En el onCreateView de cada fragmento retenido la instancia hacer el truco. (No por favor que el onActivityCreated será llamado otra vez)

Prueba a agregar android:configChanges="orientation" to manifest android:configChanges="orientation" Activity tag

  • ViewPager se desplaza programáticamente
  • Visualización de varias páginas en ViewPager, posición incorrecta
  • Deslizar un elemento a la vez
  • Obtenga GoogleMap del fragmento de ViewPager
  • Cambio de la cuenta de ViewPager
  • La aplicación de Android se bloquea después de un tiempo utilizando Fragments y ViewPager
  • ViewPager y base de datos
  • ¿Cómo implementar un evento Swipe para ver Flipper en un ViewPager?
  • Haga que todo el elemento ViewPager esté alineado al centro cuando PagerAdapter.getPageWidth () <1f
  • Desafío: Animación personalizada de ViewPager. Cambiar la altura de los elementos elegidos (Ver doble)
  • ¿Es seguro usar el TAG `android: switcher: + R.id.ot_pag_main +: 0` para encontrar un fragmento?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.