Aquí está una captura de pantalla de Google Maps de la Barra de herramientas.

¿Cómo puedo alinear Android de la Barra de herramientas de menú/iconos a la izquierda como en la aplicación de Google Maps?

Como se puede ver los iconos están alineados a la izquierda en lugar de a la derecha (comportamiento predeterminado). He intentado añadir android:layout_gravity=»izquierda» y android:gravity=»izquierda» a la barra de herramientas pero no funcionó. También intentó agregar un interno LinearLayout (con la misma gravedad valores) a la Barra de herramientas, pero no funciono tampoco. Alguna idea? Quiero ser capaz de utilizar un regular de menú de Android con el widget de la Barra de herramientas en lugar de volver a crear todo desde cero.

  • Sólo es para su INFORMACIÓN, yo no tenía problemas de aplicación de este uso interno LinearLayout un niño de la Barra de herramientas. No estoy 100% en esto, pero creo que si utiliza la Barra de herramientas como un ActionBar (es decir, inflar un menú en él), entonces usted va a estar pegado con el comportamiento de una ActionBar. Puede haber una forma de evitar esto yo no soy consciente de que, aunque, así que no tome mi palabra para ella.
  • Sólo añadir vistas a la barra de herramientas como: <Toolbar ...> <ImageView ... /> <ImageView... /></Toolbar>
InformationsquelleAutor rylexr | 2015-04-22

2 Comentarios

  1. 100

    Después de algunas dificultades y cavar en Android de la Barra de herramientas de código que he conseguido hacer que funcione. Básicamente, la idea es agregar un nuevo android.apoyo.v7.widget.ActionMenuView como hijo de la Barra de herramientas, establecer su gravedad a la parte superior|inicio y, a continuación, agregar el menu para que el menú acción vista en su Actividad. Aquí está el código:

    my_toolbar.xml

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/tToolbar"
        android:layout_height="?attr/actionBarSize"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        android:gravity="center_vertical|start"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
    
        <android.support.v7.widget.ActionMenuView
            android:id="@+id/amvMenu"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"/>
    </android.support.v7.widget.Toolbar>

    my_activity.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!--Toolbar-->
        <include
            android:id="@+id/tToolbar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            layout="@layout/my_toolbar" />
    </RelativeLayout>

    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;
      }
    }
    • gracias por tu solución. Me ayudó a crear dos bloques de menú – uno alineado a la izquierda y otro a la derecha alineado 🙂
    • Este código tiene un problema, que si el desbordamiento del elemento de menú aparecerá, será la próxima a esos elementos. Usted debe establecer el ancho en «match_parent». He editado tu respuesta para esto. Por CIERTO, yo no creo que sea normal de la barra de herramientas con elementos de acción, ya sea. Creo que son las pestañas.
    • android:gravity="center_vertical|start" no hace nada para mí. Por qué?
  2. 2

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

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

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar_actionbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/tab_background"
        android:gravity="center_vertical">
    
        <Spinner
            android:id="@+id/categorySpinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp" />
    
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:hint="Name" />
    
    </android.support.v7.widget.Toolbar>

Dejar respuesta

Please enter your comment!
Please enter your name here