¿Cómo puedo alinear los menús / íconos de la barra de herramientas de Android a la izquierda como en la aplicación Google Maps?

Aquí hay una captura de pantalla de la barra de herramientas de Google Maps.

Barra de herramientas de Google Maps

Como puede ver, los icons están alineados a la izquierda en lugar de a la derecha (comportamiento predeterminado). He intentado agregar android: layout_gravity = “left” y android: gravity = “left” a la barra de herramientas, pero no funcionó. También intenté agregar un LinearLayout interno (con los mismos valores de gravedad) a la barra de herramientas, pero tampoco funcionó. ¿Algunas ideas? Quiero poder usar un menú regular de Android con el widget de la Barra de herramientas en lugar de volver a crear todo desde el principio.

Después de algunas dificultades y profundizar en el código de la barra de herramientas de Android, pude hacerlo funcionar. Básicamente, la idea es agregar un nuevo android.support.v7.widget.ActionMenuView como elemento secundario de la barra Google, establecer su gravedad en top | start, y luego agregar el menú a esa vista del menú de acción en su Activity. Aquí está el código:

my_toolbar.xml

   

my_activity.xml

     

MyActivity.java

 import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.ActionMenuView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; public final class MyActivity extends ActionBarActivity { private ActionMenuView amvMenu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // this layout includes the custom toolbar my_toolbar.xml setContentView(R.layout.my_activity); Toolbar t = (Toolbar) findViewById(R.id.tToolbar); amvMenu = (ActionMenuView) t.findViewById(R.id.amvMenu); amvMenu.setOnMenuItemClickListener(new ActionMenuView.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { return onOptionsItemSelected(menuItem); } }); setSupportActionBar(t); getSupportActionBar().setTitle(null); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); // use amvMenu here inflater.inflate(R.menu.my_activity_menu, amvMenu.getMenu()); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Do your actions here return true; } } 

Si no hay un motivo especial para agregar elementos de la barra de herramientas como acciones de menú, los controles de la interfaz de usuario se pueden agregar directamente a la barra de herramientas y alinear de forma similar a la alineación de cualquier otro elemento dentro de un diseño.

Por ejemplo, la siguiente barra de herramientas tiene un Spinner alineado a la izquierda y un EditText alineado a la derecha.