2012-02-13 13 views
13

Como sugiere el título, tengo una aplicación de tableta Android 4.0 que usa la barra de acciones y el modo de pestaña.Hacer que las pestañas de ActionBar se desplacen cuando se alcanza el límite, en lugar de crear una lista desplegable

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

¿Me preguntaba si es posible anular el comportamiento predeterminado y obtener la barra de acciones para desplazar los elementos? El documento de diseño http://developer.android.com/design/patterns/actionbar.html habla de pestañas desplazables, pero parece que no puedo encontrar ninguna información sobre ellas más que en el documento de diseño.

+0

He hecho un poco de excavación ver: http://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby = & sort = & id = 24439 y parece que no es posible. Ahora busco enfoques alternativos – JamesSugrue

Respuesta

10

He estado luchando para que esto funcione. Sin embargo, después de jugar con ActionBarSherlock, la solución es exasperantemente fácil.Si descarga la fuente de la muestra Diseñado y mira en la clase MainActivity, se puede ver que crear y añadir las pestañas, y debajo de eso:

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

había llamado estos antes de la adición de las pestañas, y mis pestañas se había convertido en una lista desplegable. Resulta que, todo lo que necesita hacer es llamarlos después de agregar las pestañas en su lugar para mantener las pestañas de desplazamiento.

+0

No era la respuesta que buscaba, pero parece que a partir de ahora, es la única forma de hacer lo que quería. – JamesSugrue

+1

No funcionó para mí. Aún veo la lista desplegable en lugar de las pestañas. –

0

¿Has echado un vistazo a la aplicación de muestra Honeycomb Gallery en el SDK? Puede tener lo que estás buscando. Instálelo en un dispositivo ICS sin tableta para ver las pestañas desplazables. Una tableta tiene demasiado espacio de pantalla para desplazarse.

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

+1

Quiero que también se desplace en una tableta. Agregué 5 pestañas más al proyecto anterior y se condensó en un menú también. PITA – JamesSugrue

2

Lea el "Añadir una acción Vista" sección de http://developer.android.com/guide/topics/ui/actionbar.html

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

Puede utilizar HorizontalScrollView como acción de la vista mediante la especificación de

<?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> 

Get referencia a la presente HorizontalScrollView en public boolean onCreateOptionsMenu(Menu menu)

Definir un RadioGroup con un poco de RadioButton, donde cada RadioButton cuando se selecciona, actualizará sus fichas asociadas contenido. Ahora agregue este RadioGroup a HorizontalScrollView la que obtendrá en public boolean onCreateOptionsMenu(Menu menu)

Usted puede utilizar selectTab(ActionBar.Tab tab) o algún otro método equivalente para actualizar contenidos pestañas.

Usted puede cambiar el aspecto de RadioButton estableciendo android:button a imagen transparente, y luego poner un poco de StateListDrawable con los estados revisados, seleccionados y normal ..

Ver debajo de la pantalla me usando este método.

enter image description here

En la imagen, cada RadioButton Cuando se activa, selecciona pestaña diferente.

-1

La IU funciona de la manera que es por una razón. Es extremadamente confuso tener un conjunto desplazable de pestañas. Existe una buena posibilidad de que no quede claro que hay más pestañas disponibles a la derecha, y el usuario nunca sabrá que puede desplazarse por las pestañas para obtener más funciones.

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

+5

Es posible que desee señalar a los encargados de las páginas de diseño de Android, que lo que [describen como "pestañas desplazables" relacionadas con la "barra de acciones"] (http://developer.android.com/design /patterns/actionbar.html) no son ninguno de los dos. Lo que describen parece ser 'ViewPager' y alguna tira de título que no existe en el SDK (ya que' PagerTitleStrip' es de solo lectura y, por lo tanto, no puede considerarse una "pestaña"). Es frustrante que a los desarrolladores se les den pautas de diseño con las que Google no está de acuerdo (según su respuesta aquí) y/o no son compatibles con el SDK. – CommonsWare

+2

Tomado del documento de diseño de Android, "Use pestañas desplazables si tiene una gran cantidad de vistas ..." Desde mi punto de vista, en la aplicación que estamos construyendo, no es nada confuso tener ese número de pestañas . Seguramente en una plataforma "abierta", el desarrollador debe elegir lo que sea apropiado para su aplicación, no el sistema operativo. Nuestra aplicación es una vertical que nunca será utilizada por usuarios no entrenados. – JamesSugrue

+2

Además, ¿cómo las pestañas de desplazamiento son más confusas que una lista de desplazamiento que tenemos que implementar como una alternativa? No es obvio que sus cosas estén en el último elemento de la lista tampoco. – JamesSugrue

Cuestiones relacionadas