Haga que las pestañas de ActionBar se desplacen cuando alcance límite, en lugar de crear una lista desplegable

Como sugiere el título, tengo una aplicación Android 4.0 Tablet, que utiliza la barra de herramientas y el modo de pestaña.

Si añado más de 4 o 5 pestañas a la barra de acción, se creará una lista desplegable. He leído la documentación, que dice: "Nota: En algunos casos, el sistema Android mostrará las pestañas de la barra de acción como una lista desplegable para asegurar el mejor ajuste en la barra de acción".

¿Apenas se preguntaba si es posible anular el comportamiento del defecto y conseguir la barra de acción para desplazar los artículos? El documento de diseño http://developer.android.com/design/patterns/actionbar.html habla de pestañas desplazables, pero no puedo encontrar ninguna información sobre ellos aparte del documento de diseño.

He estado luchando para que esto funcione. Sin embargo, después de jugar con ActionBarSherlock, la solución es irritantemente fácil. Si descarga la fuente Styled de ejemplo y busca en la clase MainActivity, puede verla crear y agregar las pestañas, y debajo de ella:

actionBar.setDisplayShowTitleEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

Había llamado estos ANTES de añadir las pestañas, y mis pestañas se había convertido en una lista desplegable. Resulta que todo lo que necesitas hacer es llamarlos después de agregar las pestañas en lugar de guardar las pestañas de desplazamiento.

Lea la sección "Agregar una vista de acción" de http://developer.android.com/guide/topics/ui/actionbar.html

Una vista de acción es un widget que aparece en la barra de acción como un sustituto del botón de un elemento de acción.

Puede utilizar HorizontalScrollView como vista de acción especificando

 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/mytabwidget" android:title="" android:icon="@drawable/ic_launcher" android:showAsAction="always" android:actionViewClass="android.widget.HorizontalScrollView" /> </menu> 

Obtener referencia a este HorizontalScrollView en public boolean onCreateOptionsMenu(Menu menu)

Defina un RadioGroup con algún RadioButton donde cada RadioButton cuando se selecciona, actualizará su contenido asociado de las fichas. Ahora agregue este RadioGroup a HorizontalScrollView que obtendrá en public boolean onCreateOptionsMenu(Menu menu)

Puede utilizar selectTab(ActionBar.Tab tab) o algún otro método equivalente para actualizar el contenido de las pestañas.

Puede cambiar el aspecto de RadioButton estableciendo android:button a imagen transparente y, a continuación, establecer algunos StateListDrawable con estados StateListDrawable , seleccionados y normales.

Vea abajo la pantalla que conseguí usando este método.

Introduzca aquí la descripción de la imagen

En la imagen de arriba, cada RadioButton cuando se selecciona, selecciona la pestaña diferente.

¿Ha comprobado la aplicación de ejemplo de Honeycomb Gallery en el SDK? Puede tener lo que está buscando. Instálelo en un dispositivo ICS no tablet para ver las pestañas desplazables. Una tableta tiene demasiado espacio de pantalla para desplazarse.

http://developer.android.com/resources/samples/HoneycombGallery/index.html

La interfaz de usuario funciona de la manera que es por una razón. Es extremadamente confuso tener un conjunto desplazable de pestañas. Hay una buena probabilidad de que no esté claro en absoluto que hay más pestañas disponibles a la derecha, y el usuario nunca sabrá que pueden desplazarse por las pestañas para acceder a más funciones.

Recomiendo seguir con la forma en que la plataforma está diseñada para funcionar. Generalmente hace las cosas por una razón.

  • Lengüetas de material con estilo de Android 5.0
  • Fragmento de Android encreateview llamado en el cambio de ficha
  • ¿Cómo agregar divider en el estilo de TabLayout de android? TabLayout es nuevo en la biblioteca de soporte de diseño
  • Cambiar el relleno de TextView en TabLayout
  • Ficha de Android como pie de página
  • Ocultar pestañas viewPager dinámicamente
  • RecyclerView onBindViewHolder sólo se llama una vez dentro del diseño de la pestaña
  • ¿Cómo cargar la actividad del fragmento el método de creacion () de la barra seleccionada de la barra de acciones solo si la pestaña está seleccionada?
  • Cómo llamar a un método en otra actividad
  • Actionbarsherlock + tabs + multi fragmentos?
  • Controlador de medios que aparece en los fragmentos equivocados y que comienza antes de la pestaña se muestra
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.