2012-01-31 12 views
11

Si una ActionBar de Android se divide en una parte superior e inferior usando android:uiOptions="splitActionBarWhenNarrow" en , hay una manera de forzar algunas de las acciones que se mostrarán en porción superior en lugar de tenerlos todos en la parte inferior?Cómo agregar acciones a la parte superior de una ActionBar dividida

+0

Parece que la respuesta es "no" y se respondió a http://stackoverflow.com/questions/8571754/android-split-action-bar-with-action-items-items -in-top-and-bottom –

Respuesta

1

No hay una forma estándar de hacerlo. Dicho eso, la vista personalizada de la barra de acciones aparecerá en la barra superior, por lo que puedes usarla. Perderá algunos de los extras (brindis con la pulsación larga), por lo que tendrá que implementarlos usted mismo. Dicho esto, de que estás usando ActionBarSherlock, todos los diseños y estilos para un botón normal están ahí, así que puedes usarlos.

2

Sí! Puede continuar usando android:uiOptions="splitActionBarWhenNarrow" en su Manifest.xml.

Sólo También es necesario establecer:

// set the actionbar to use the custom view 
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

//set the custom view to use 
getActionBar().setCustomView(R.layout.custom_action_bar_top); 

Dónde R.layout.custom_action_bar_top habría una vista que tiene todos los botones que desea que aparezca en la barra de acciones superior.

Todos los elementos del menú que desee en la parte inferior, se deben agregar como de costumbre en el método onCreateOptionsMenu de su actividad.

+1

Hola @immersion, esto tiene sentido pero ¿lo has probado? ¿Realmente funciona de esa manera? – ericn

+2

Hola @fuzzybee, sí, cuando necesitaba hacer esto, solo necesitaba una barra de búsqueda en la parte superior, así que usé: 'SearchView searchView = new SearchView (context); getSupportActionBar(). SetCustomView (searchView, \t nuevo LayoutParams (Gravity.RIGHT)); ' Si quiere ver cómo se ve, consulte [SwishPix] (https://play.google.com/store/ aplicaciones/detalles? id = com.immersion.swishpix.free). La captura de pantalla de la lista de álbumes es un ejemplo de lo que podría parecer. –

+0

Con esta solución, también deberá volver a implementar el icono y el título manualmente, por lo que no será una solución fácil de instalar. – Andres

1

Me gustaría secundar la solución de Dylan Watson, pero con una mejora. Para aquellos que deseen conservar el título y no reemplazar toda la barra de acciones con su nueva Vista, usan getActionBar().setDisplayShowCustomEnabled(true), en lugar de getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);, ya que este último hará que la vista sea la única vista que se muestra en la barra de acciones. Mi código:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    SearchView searchView = new SearchView(this); 
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    getActionBar().setDisplayShowCustomEnabled(true); 
    getActionBar().setCustomView(searchView, new ActionBar.LayoutParams(Gravity.RIGHT)); 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
+0

Confirmado, esto habilita la vista personalizada sin deshabilitar el botón de inicio y el título como en la respuesta de Dylan. Si el título aún no aparece, podría estar cubierto por la vista personalizada; esta respuesta proporciona algunas opciones de diseño: http://stackoverflow.com/a/16517395/462162 – arlomedia

Cuestiones relacionadas