2011-11-18 12 views
5

Quiero crear una barra de pestañas con pestañas (NAVIGATION_MODE_TABS) con vista personalizada (DISPLAY_SHOW_CUSTOM). Debería tiene este aspecto:Cómo crear Android ActionBar con vista y pestañas personalizadas

enter image description here

que sólo tiene que ser capaz de navegar a través de las actividades a través de botones en la fila superior - como lo haría con la Barra de acciones en condiciones normales - el modo de pestañas no, y también ser capaz para cambiar las pestañas en la segunda fila. Si configuro ActionBar para que esté en modo de pestañas, la vista personalizada desaparece, parece que el modo con pestañas y la vista personalizada son mutuamente excluyentes ... ¿Es posible?

Hay más formas posibles de hacerlo sin ActionBar. Normalmente crearía un diseño con botones, lo incluiría en TabActivity (que ahora está en desuso) y eso es todo. Pero no creo que sea la mejor solución, por lo que cualquier ayuda o consejo es apreciado.

Gracias de antemano.

EDITAR: Después de investigar un poco encontré que funciona, simplemente no se muestra en mi pantalla de 4 pulgadas. Sin embargo, todavía no funciona como esperaba. En pantallas más anchas se muestra una vista personalizada en el lado derecho de las pestañas: está bien, pero en las pantallas de teléfono de 4 pulgadas no se muestra en absoluto.

Creo que la mejor solución es usar la biblioteca ActionBarSherlock (no me gusta utilizar las características en desuso y mi aplicación también debe funcionar en dispositivos con versiones anteriores a sdk11) y fragmentos: uno para ActionBar superior y el segundo para la vista con pestañas.

+0

Puede volver a considerar el uso de una barra de acción AND pestañas. Tienes una pantalla limitada para trabajar, demasiados controles de navegación solo van a ocupar tu aplicación. Por lo que puedo ver, en un teléfono de 3.5 o incluso de 4 pulgadas esto tomará casi 1/3 si no más de la pantalla. Solo un pensamiento :), y un buen trabajo en la investigación, es la mejor manera de aprender. – Jack

+0

Lamentablemente, no hay nada que reconsiderar, es un requisito de mi cliente ... Pero, finalmente, he encontrado una solución elegante y simple que antes no tenía en cuenta. Los botones de la fila superior se pueden agregar como elementos optionMenu: se realizan algunas líneas y el diseño. La pregunta puede ser cerrada ... – vitakot

Respuesta

0

Los botones en la fila superior tienen que ser añadidos como elementos OptionMenu:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    for (int i = 0; i < menuItems; i++) 
    { 
     if (i == 0) 
     { 
      menu.add(R.string.home).setIcon(R.drawable.button_home).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
      menu.getItem(0).setOnMenuItemClickListener(this); 

     } 
    } 

    return super.onCreateOptionsMenu(menu); 
} 

La filosofía de la Barra de acciones es ligeramente diferente, entonces se supone que será cuando se le pide. Desde Android developer guide:

Cuando desee proporcionar pestañas de navegación en una actividad, usar las pestañas de la barra de acciones es una gran opción (en lugar de usar TabWidget), porque el sistema adapta las pestañas de la barra de acciones para diferentes tamaños de pantalla, colocándolos en la barra de acción principal cuando la pantalla es lo suficientemente ancha, o en una barra separada (conocida como la "barra de acción apilada") cuando la pantalla es demasiado estrecha.

Cuestiones relacionadas