NOTA: Este es un extracto de la clase Android TrainingImplementing Effective Navigation.
Para implementar esto (en Android 3.0 o superior), se puede utilizar un ViewPager en conjunción con la API ActionBar pestañas.
Al observar el cambio de página actual, seleccione la pestaña correspondiente. Puede configurar este comportamiento usando un ViewPager.OnPageChangeListener en el método de su actividad onCreate()
:
@Override
public void onCreate(Bundle savedInstanceState) {
...
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// When swiping between pages, select the
// corresponding tab.
getActionBar().setSelectedNavigationItem(position);
}
});
...
}
Y después de seleccionar una ficha, cambie a la página correspondiente en el ViewPager. Para ello, agregue un ActionBar.TabListener a la pestaña cuando se crea utilizando el método newTab()
:
actionBar.newTab()
...
.setTabListener(new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction ft) {
// When the tab is selected, switch to the
// corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
...
}));
Hi Roman, Por favor encuentre un ejemplo que implemente el adaptador ant para implementar diseños de paneles múltiples que contengan múltiples fragmentos creados/reemplazables dinámicamente. Desafíos: - FragmentManager utiliza una ID de recurso para agregar fragmentos; Los identificadores deben ser únicos en todas las páginas (no se puede especificar una instancia de ViewGroup como contenedor) - Las vistas de contenedor deben existir antes de que FragmentManager intente restaurar los fragmentos - Instancias retenidas frente a cambio de orientación error # 1: NullPointerException cuando FragmentManager intenta guardar Estado del fragmento; # 2: NullPointerException alrededor de LoaderInfo.onLoadComplete – user289463
Deberías hacer esto como una nueva pregunta. –
Suceden cosas extrañas si agrega iconos de menú a la barra de acciones y utiliza ViewPager de esa manera ... – Maxim