2011-11-25 8 views
23

El android ActionBar se puede dividir en barras superior e inferior si el parámetro de actividad "uiOptions" está establecido en "splitActionBarWhenNarrow", tenga en cuenta que este parámetro solo es válido en ICS.¿Cómo controlar la división de ActionBar programáticamente?

Honeycomb ha introducido un nuevo enfoque para los elementos de la lista de selección múltiple mediante la barra de acciones. Cuando un elemento está presionado &, la lista se convierte en un modo de selección múltiple y la barra de la barra de acciones se puede usar para realizar algunas acciones. La configuración de la barra de acciones se hereda de la actividad de la lista, es decir, si la actividad tiene una barra de acción dividida, también lo hará la selección múltiple, y si la actividad solo tiene la barra superior, entonces la selección múltiple será compatible con eso.

La pregunta es, ¿es posible tener solo una barra de acción superior en la actividad y cuando la lista se convierte en modo de selección múltiple dividir programáticamente la barra de acciones?

Gracias!

+3

yo también le encantaría para que tenga esta funcionalidad. –

+0

Bueno, siempre puedes hacer una barra inferior personalizada, que sería superior si una situación y debajo, si - como dijiste - la lista se muestra – piotrek1543

+0

visita los enlaces siguientes para ver cómo hacerlo – piotrek1543

Respuesta

26

No, no puede cambiar entre barras de acción divididas y no divididas sobre la marcha.

La contraparte setter a android:uiOptions está en Window, no en Activity. Window#setUiOptions es el método y la bandera para usar es ActivityInfo#UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW.

Sin embargo, esto no hará lo que usted quiera. Barra de acción dividida cuando se debe especificar estrecho ya que la ventana se configura por primera vez antes de que se inicialice la decoración de la ventana. En otras palabras, una vez que se ha mostrado la ventana (o incluso una vez que haya llamado al setContentView) es demasiado tarde para cambiarla.

Esta fue una decisión consciente del equipo de Android UX. Los modos de acción (incluidos los modos de selección) están destinados a reflejar la configuración de la barra de acciones en la actividad actual. Esto proporciona al usuario un lugar único para buscar acciones actualmente válidas dentro de la misma actividad.

+0

Sí, pero mis usuarios parecen estar teniendo dificultades para encontrar las acciones contextuales durante el modo de acción, ya que la mayoría de ellas se derraman en el menú de desbordamiento debido al texto "X Seleccionado" que les informa de cuántos elementos han seleccionado actualmente. –

+0

Si ese modo de acción particular es una parte importante de su UI y presenta muchas opciones, puede considerar usar la barra dividida a tiempo completo para esa actividad. – adamp

2

No lo creo. No veo nada en Activity que sirva como contraparte setter en android:uiOptions.

0

¿Se puede tratar de establecer getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW) en el Activity desea que el ActionBar para mostrar como dividida justo antes de su onCreate(), luego ocultarla usando getActionBar.hide() y sobre la acción de la lista que usted se refiere a hacer que el pop-up de vuelta usando getActionBar.show().

Probé (aunque no con las bibliotecas de soporte) mostrando ActionBar en uno Activity y dividí en otro usando lo anterior y pude ocultar y mostrar los clics del botón dividido. Espero que esto ayude. Avíseme en caso de que lo hiciera o incluso no. Feliz codificación. :)

1

El paquete AppCompat ahora ofrece el widget barra de herramientas que le permite poner una barra de acción en cualquier lugar que desee en su diseño y modificarlo como cualquier otra vista ..

Por favor, ver la documentación completa here y una guía here .

Cuestiones relacionadas