Desaparición de los botones de la barra de acción al pasar entre fragmentos

Tengo una aplicación con varias pestañas en una barra de acciones, y cada pestaña tiene un conjunto diferente de iconos de menú de opciones que aparecen en la barra de acciones. Algunas pestañas tienen dos iconos, algunos no.

El problema es que cuando deslizo entre las pantallas, los botones para las pantallas individuales pueden o no aparecer. Es decir, en una pantalla donde debería haber dos iconos, ¡no habrá iconos en la barra de acción!

Cuando hago clic en las pestañas, sin embargo, las pantallas siempre muestran los iconos correctos sin fallar.

He intentado analizar el problema en el depurador. Estoy seguro de que el FragmentPagerAdapter está llamando correctamente a setMenuVisibility(true) para el Fragmento recién seleccionado, y otros Fragments se llaman con setMenuVisibility(false) .

No puedo encontrar un patrón exacto para la aparición / desaparición de los botones. Puedo deslizar izquierda / derecha entre dos pantallas que cada uno tiene dos botones diferentes. El problema ocurrirá en cualquier lugar después de 1 a 20 swipes.

La desaparición parece ser agravada por pasar a una pantalla con un icono y luego volver a una pantalla con dos iconos.

He intentado agregar las llamadas en el Activity.invalidateOptionsMenu() pero parece no tener ningún efecto. Por ejemplo, he añadido esta llamada a mi TabAdapter onPageScrollStateChanged () que se llama después de que la animación de desplazamiento se haya completado. También he intentado agregar esto en los fragmentos 'onResume () o después de TabAdapter.onTabSelected () ha terminado, sin éxito.

Estoy utilizando ActionBarSherlock 4.1.0 (y he sustituido en el último android-support-v4.jar debido a un problema diferente). Mi Actividad extiende SherlockFragmentActivity y simplemente ViewPager una instancia de ViewPager . He sobrepasado el FragmentPagerAdapter para el adaptador de ViewPager (siguiendo el ejemplo estándar en los documentos Android de ViewPager).

Mi teléfono funciona con Android 2.3.5.

2 Solutions collect form web for “Desaparición de los botones de la barra de acción al pasar entre fragmentos”

Varias soluciones para este problema se proporcionan en ViewPager / ActionBar, elementos de menú que no se muestran . La solución discutida en el punto # 8 funcionó para mí.

Sólo tienes que seguir este enlace

 if (viewPager.getCurrentItem() != position) viewPager.setCurrentItem(position); 

Aplazar la llamada a viewPager.setCurrentItem en onCreate

 public void onCreate(...) { ... view.post(new Runnable() { public void run() { // guarded viewPager.setCurrentItem } } } 
  • Android ViewPager Lag
  • ViewPager no muestra nada
  • ViewPager da fuera del error de memoria
  • Actualizar el fragmento actual en FragmentPagerAdapter
  • Aplicar fuerza cerrar en viewPager.setAdapter (adaptador)
  • FragmentManager ya está ejecutando transacciones después de usar el método setOffscreenPageLimit ()
  • ¿Es posible desactivar el desplazamiento en un ViewPager?
  • Fragmentos en viewpager, no se encontró error de vista
  • ¿Por qué un MediaController afecta a ocultar la barra de navegación?
  • Google Currents como estilo de lectura página por página
  • ¿Cómo actualizar el contenido de ViewPager?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.