¿Cómo declaro una barra de herramientas / barra de acción de altura extendida en Android Lollipop?

He visto barras de aplicaciones de altura extendida en las pautas de la barra de aplicaciones de diseño de Google. ¿Cómo los implemento en Android Lollipop?

Debe usar el nuevo widget de la Barra de herramientas para lograr esto. La barra de herramientas tiene un manejo especial para su altura mínima para declarar la cantidad de espacio que se usa para los botones (y acciones).

En el ejemplo siguiente, estamos estableciendo la altura en 128dp (que es 56dp + 72dp como se define en la especificación), pero manteniendo android:minHeight como el actionBarSize estándar (que generalmente es de 56dp). Esto significa que los botones y las acciones están obligados a colocarse verticalmente en la parte superior de los 56dp. Entonces podemos usar android:gravity para posicionar el título en la parte inferior.

  

Si está utilizando AppCompat, cambie la statement para usar android.support.v7.widget.Toolbar lugar y use sus atributos.

Gracias por su pregunta, su respuesta y, además, por la implementación de la barra de herramientas en la biblioteca nativa y de soporte 🙂

Y podemos jugar más. Podemos, en tiempo de ejecución, jugar con Height y MinimalHeight.

La altura es la altura de la barra de herramientas, es simple, todos los cuerpos lo entienden, y la gravedad actúa de acuerdo con esa altura.

El minimalHeight es más complicado y no debe tener un mínimo de 56dp. Este minHeight se utiliza para colocar la línea de su elemento de menú. Esta línea está en el medio de tu minHeight.

De modo que puede agregar este código a su actividad para ver por sí mismo la diferencia. 🙂

 Runnable toolBarAnimator=new Runnable() { @Override public void run() { if(postICS){ // toolbar.setTranslationX(iteration); // toolbar.setElevation(iteration); toolbar.setMinimumHeight(iteration * 5); toolbar.getLayoutParams().height++; } uiThreadHanlder.postDelayed(this,16); iteration++; if(iteration>150)iteration=0; } }; Handler uiThreadHanlder=new Handler(); int iteration=0; @Override protected void onResume() { super.onResume(); //launch the animation uiThreadHanlder.postDelayed(toolBarAnimator, 1000); } @Override protected void onPause() { super.onPause(); //stop the animation uiThreadHanlder.removeCallbacks(toolBarAnimator); } 

Donde la barra de herramientas es:

barra de herramientas = (Barra de herramientas) findViewById (R.id.toolbar);

Al hacer esto obtienes: enter image description here

pero si abandonas la animación, obtienes: enter image description here

Por eso, configurar su barra de herramientas android: layout_height para wrap_content es una buena opción en la mayoría de los casos, porque la barra de herramientas adaptará su altura de acuerdo con su contenido (y puede cambiar el contenido en tiempo de ejecución 🙂

Y esta es también la forma de cambiar el tamaño de la barra de herramientas en tiempo de ejecución.

Gracias Chris Banes por el increíble trabajo que hiciste en la barra de acciones.