Android 4.0, el texto en la barra de acción NUNCA muestra

Estoy tratando de usar las nuevas API de Google, específicamente la barra de acciones.

Cuando la comstackción se configuró en api 10, si presioné el botón de menú, obtuve opciones de menú atractivas, cada una con una imagen y un ícono. Al usar api 14, no importa lo que bash, siempre coloca el icono en la barra de acción sin texto. He intentado todo lo que puedo pensar. Le di la propiedad “con texto”, cambié el texto a un solo carácter (en caso de que fuera un problema de sala), pero nada.

He visto esto hecho antes, incluso en la guía para desarrolladores de android.developer, pero parece que no puedo encontrar una respuesta sobre cómo hacer que aparezca.

Sospecho que fue una decisión consciente de los desarrolladores de Android que nunca se muestre el texto y el ícono de un solo elemento de menú en una barra de acción estrecha. Pero si realmente quieres hacerlo, puedes usar android: actionLayout en tu archivo menu.xml. La documentación de Android ActionBar tiene una explicación ligeramente mejor.

    

Luego crea tu diseño action_button_foo.xml :

   

y use un selector para su fondo bg_btn_action_bar.xml , por lo que cambia de color cuando lo toca:

      

Ahora necesitará hacer que sus eventos personalizados de clic de identificador de vista. En su actividad, me gusta hacer esto, de modo que pueda manejar el clic en onOptionsItemSelected junto con todos mis otros elementos no personalizados.

 @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.my_menu, menu); final MenuItem item = menu.findItem(R.id.menu_foo); item.getActionView().setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { onOptionsItemSelected(item); } }); return super.onCreateOptionsMenu(menu); } 

Esto es definitivamente lo mismo que he observado en mi Nexus S con 4.0.4. Mi aplicación utiliza una barra de acción con varias tabs que se implementan como fragmentos. Mis diversos fragmentos hacen ajustes a las opciones de menú que se muestran en la barra de acciones mientras su pestaña está visible.

Esto parece ser un error en ICS, porque funciona consistentemente de la siguiente manera, tanto en mi Nexus S como en el emulador (tanto HVGA como WVGA800):

  1. En modo retrato, mi botón de logotipo / arriba aparece en la fila superior de la barra de acciones, las tabs aparecen en la segunda fila y las acciones aparecen solo como icons (sin texto) en el lado derecho de la fila superior.
  2. Pero si cuando gire hacia el paisaje, la barra de acción se colapsará en una sola fila, y las tabs avanzarán a la barra superior como una rueda giratoria (lista desplegable) al lado de mi botón de subida. Pero, sobre todo, el texto aparece junto a mis icons de acción.

Observé algunos otros fallos técnicos con el rotador de tabs que me llevan a creer que este pequeño rincón de ICS es un poco desordenado / con errores. Si le digo a la aplicación que divida la barra de acciones en pantallas angostas (agregando android:uiOptions="splitActionBarWhenNarrow" en el manifiesto, ICS siempre empuja esos elementos a la barra inferior, aunque todavía hay mucho espacio en la parte superior. con la barra adicional, todavía no muestra el texto, solo el ícono.

En mi Xoom con 4.0.4, las tabs y los elementos de acción siempre aparecen de la manera en que esperaría que aparezcan porque hay mucho espacio.

Solución alternativa: si realmente desea texto en la barra de acciones en modo vertical, debe abandonar el icono. Retire el icono de su elemento de menú y aparecerá el texto. Esto no es exactamente lo que buscamos sin embargo.

He publicado un informe de error aquí: https://code.google.com/p/android/issues/detail?id=30180 .