Cómo mostrar el fragmento seleccionado en la pestaña de la barra de acción

Estoy enfrentando un problema con respecto a la pestaña. Mi proyecto se basa en Android 3.2. Estoy implementando el desplazamiento de tab con la biblioteca de soporte 4.0 (android-support-v4.jar). Todo lo implementado está funcionando bien, pero cuando implemento mi aplicación en un dispositivo ICS, entonces en modo retrato, estoy obteniendo un giro en la barra de acción para la selección de pestañas. En el modo de retrato, la selección de pestañas no cambia cuando se realiza el deslizado aunque el contenido está cambiando y todo funciona bien en modo horizontal.

final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayHomeAsUpEnabled(true); // Set up the ViewPager with the sections adapter. ViewPager mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); } }); 

He intentado poner el punto de interrupción actionBar.setSelectedNavigationItem(position); En esta línea e incluso en el modo de retrato se está llamando, pero la selección no está cambiando.

¿Alguien puede ayudar con esto?

EDITADO: Encontrado un problema similar, pero no veo exactamente cómo se resuelve y cómo integrarlo en mi código.

Problema: Debido a un estado real insuficiente, la plataforma utiliza la navegación colapsada (es decir, Spinner). El sistema determina automáticamente NAVIGATION_MODE_TABS para el paisaje y NAVIGATION_MODE_LIST para el retrato, cambiando la orientación del paisaje al retrato actualiza la interfaz de usuario, pero por alguna razón no actualiza la propiedad del modo de navegación a NAVIGATION_MODE_LIST y, por lo tanto, no se llama mActionView.setDropdownSelectedPosition (posición). Vea el siguiente código de ActionBarImpl: setSelectedNavigationItem

  public void setSelectedNavigationItem(int position) { switch (mActionView.getNavigationMode()) { case NAVIGATION_MODE_TABS: selectTab(mTabs.get(position)); break; case NAVIGATION_MODE_LIST: mActionView.setDropdownSelectedPosition(position); break; default: throw new IllegalStateException( "setSelectedNavigationIndex not valid for current navigation mode"); } } 

Solución alternativa: A través de la reflexión podemos obtener el objeto spinner de tabulación y llamar al método setSelection.

 private Spinner getTabSpinner() { try { int id = getResources().getIdentifier("action_bar", "id", "android"); View actionBarView = findViewById(id); Class<?> actionBarViewClass = actionBarView.getClass(); Field mTabScrollViewField = actionBarViewClass.getDeclaredField("mTabScrollView"); mTabScrollViewField.setAccessible(true); Object mTabScrollView = mTabScrollViewField.get(actionBarView); if (mTabScrollView == null) { return null; } Field mTabSpinnerField = mTabScrollView.getClass().getDeclaredField("mTabSpinner"); mTabSpinnerField.setAccessible(true); Object mTabSpinner = mTabSpinnerField.get(mTabScrollView); if (mTabSpinner != null) { return (Spinner)mTabSpinner; } } catch (Exception e) { return null; } return null; } 

A continuación, llame al método anterior en el evento onPageSelected.

  public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); Spinner spinner = getTabSpinner(); if (spinner != null) { spinner.setSelection(position); } } 

Referido este mensaje https://gist.github.com/2657485

  • "No se encontró ningún identificador de recurso para el atributo 'showAsAction' en el paquete 'android'"
  • Título de barra de acción con más de una línea?
  • Agregar barra de herramientas a la actividad causa NoClassDefFoundError
  • Android L: ActionBar setHideOnContentScrollEnabled
  • Replicar las pestañas incrustadas de la barra de acciones
  • ActionBarCompat - Acción de icono de aplicación (clic) no funciona en dispositivos 4.0
  • Relleno entre el icono de inicio de ActionBar y el título
  • Icono de la barra de acciones activado no es el título
  • ¿Hay alguna forma de detectar la altura del androide actionBar antes de mostrarlo?
  • Cambiar el color de fondo de ActionBar dinámicamente
  • Las pestañas de navegación de Android ActionBar parecen diferentes en teléfonos y tabletas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.