Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android ActionBar: mostrar / ocultar las pestañas de forma dinámica?

¿Es posible quitar / restaurar la barra de pestañas de la barra de acción dinámicamente?

Hasta ahora lo hice cambiando el modo de navegación de la barra de acción. He utilizado el siguiente código para eliminar y restaurar la barra de pestañas:

  • ActionBarCompat: Ocultar ActionBar antes de crear la actividad (bug?)
  • ActionBarSherlock: abre el submenú con el botón de menú
  • Estilos de Barra de Acción Contextual
  • ¿Es posible implementar el botón de alternar en el elemento de menú de acción mediante Actionbar sherlock en android
  • Nuevo ícono oficial para Android Navigation Drawer
  • ActionBar Divider Styling
  • @Override public void restoreTabs() { getSupportActionBar() .setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); this.supportInvalidateOptionsMenu(); } @Override public void removeTabs() { getSupportActionBar() .setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); this.supportInvalidateOptionsMenu(); } 

    Eso funciona, pero hay un gran problema: Cada vez que llamo setNavigationMode , onTabSelected se llama en el TabListener y la pestaña opend se recrea.

  • Sólo cuatro opciones para ShareActionProvider con ActionBarSherlock
  • Cambiar el color de fondo de ActionBarSherlock
  • Agregando barra de acciones a listactivity
  • Cómo cambiar el color de fondo de ActionMode en Android
  • IntelliJ 12 + ActionBarSherlock setttings: No se pudo encontrar la clase 'android.support.v4.app.FragmentActivity'
  • ActionBarSherlock lista de navegación con el icono y el título
  • 3 Solutions collect form web for “Android ActionBar: mostrar / ocultar las pestañas de forma dinámica?”

    Para quitar dinámicamente las pestañas de la barra de acciones, simplemente necesita:

     getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 

    Para agregarlos al vuelo, simplemente haga lo siguiente:

     getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    Para el segundo caso, la suposición es que después de configurar el modo de navegación, también agregará pestañas, a la barra de acción, similar a esto:

     for (int resourceId : tabs) { actionBar.addTab(actionBar.newTab().setText(resourceId) .setTabListener(this)); } 
     public void onDrawerClosed(View view) { getActionBar().setTitle(mTitle); // calling onPrepareOptionsMenu() to show action bar icons getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); invalidateOptionsMenu(); } public void onDrawerOpened(View drawerView) { getActionBar().setTitle(mDrawerTitle); // calling onPrepareOptionsMenu() to hide action bar icons getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); invalidateOptionsMenu(); } 

    Esto está funcionando como se pretende, ya que la ficha se está seleccionando porque no estaba apareciendo. Le sugiero que haga por su cuenta el control en TabListener.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.