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)); } 

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

  • Detección de eventos de toque / toque en un viewpager
  • Evitar que ViewPager destruya vistas fuera de pantalla
  • El ViewPagerIndicator no es fácil con 1000 páginas
  • ¿Por qué restoreState () y saveState () de PagerAdapter no funcionarán?
  • ¿Por qué parpadean los iconos / textos de las lengüetas de TabLayout al pasar entre páginas?
  • SetOnPageChangeListener no llama aPageSelected
  • Android ViewPager w / varias clases de fragmentos cada w / archivo de diseño independiente
  • ViewPager & ViewPagerIndicator no muestra nada
  • PagerSlidingTabStrip: Cómo actualizar fragmento interno Listview en la ficha actual en tiempo de ejecución y detener los datos de carga para la siguiente pestaña
  • Imageview y PagerAdapter
  • Cómo acceder al valor de edittext dentro de fragmento que está en un viewpager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.