Relleno de la barra de herramientas de la API 21 de Android

¿Cómo puedo deshacerme del relleno adicional en la nueva barra de herramientas con Android SDK API versión 21 (la biblioteca de soporte)?

Estoy hablando de las flechas rojas en esta imagen: Introduzca aquí la descripción de la imagen

Aquí está el código que estoy usando:

<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:background="?attr/colorPrimary" android:padding="0dp" android:layout_margin="0dp"> <RelativeLayout android:id="@+id/action_bar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="0dp" android:padding="0dp" android:background="#000000"> <Spinner android:layout_width="wrap_content" android:layout_height="wrap_content"/> </RelativeLayout> </Toolbar> 

Como puedes ver, he ajustado todo el relleno relevante a 0, pero todavía hay relleno alrededor del Spinner. ¿Qué he hecho mal o qué debo hacer para deshacerme del relleno adicional?

Edit Algunos han cuestionado por qué estoy tratando de hacer esto.

Según las especificaciones del material de diseño, el hilador debe ser 72dp desde el lado izquierdo Desc

Tengo que neutralizar el relleno Google han puesto allí con el fin de colocar correctamente mi hiladora: Desc

Editar 2

Según la respuesta de Chris Bane a continuación, establezco el contentInsetStart en 0. Para la biblioteca de soporte necesitará usar el espacio de nombres de la aplicación:

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="@dimen/action_bar_height" android:background="?attr/colorPrimary" android:contentInsetStart="0dp" android:contentInsetLeft="0dp" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </android.support.v4.widget.DrawerLayout> 

Espero que esto ayude a alguien, me confundió durante varios días.

La inserción izquierda es causada por contentInsetStart de contentInsetStart que por defecto es 16dp.

Cambiar esto a 72dp para alinear a la línea clave.

Actualización de la biblioteca de soporte técnico v24.0.0:

Para que coincida con la especificación Material Design hay un atributo adicional contentInsetStartWithNavigation que por defecto es 16dp. Cambie esto si también tiene un icono de navegación.

Por encima de la respuesta es correcta, pero todavía hay una cosa que podría crear problemas (al menos no crear un problema para mí)

He utilizado lo siguiente y no funciona correctamente en los dispositivos más antiguos –

 android:contentInsetStart="0dp" android:contentInsetLeft="0dp" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" 

El truco está aquí sólo tiene que utilizar el siguiente –

 app:contentInsetLeft="0dp" app:contentInsetStart="0dp" 

Y deshacerse de –

 android:contentInsetStart="0dp" android:contentInsetLeft="0dp" 

Y ahora debería funcionar bien en todos los dispositivos.

Espero eso ayude.

En caso de que alguien tropiece aquí … usted puede fijar el relleno también, por ejemplo:

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); int padding = 200 // padding left and right toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom()); 

O contentInset :

 toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200); 

Simpley añadir esta línea dos en la barra de herramientas. A continuación, obtener nuevo eliminado lado bcoz espacio por defecto 16dp.

 android:contentInsetStart="0dp" app:contentInsetStart="0dp" 

Haz tu barra de herramientas como:

 <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/menuToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="0dp" android:background="@color/white" android:contentInsetLeft="10dp" android:contentInsetRight="10dp" android:contentInsetStart="10dp" android:minHeight="?attr/actionBarSize" android:padding="0dp" app:contentInsetLeft="10dp" app:contentInsetRight="10dp" app:contentInsetStart="10dp"></android.support.v7.widget.Toolbar> 

Necesitas agregar

ContentInset

Atributo para añadir espacio

Sigue este enlace para obtener más información.

Una combinación de

android:padding="0dp" En el xml de la barra de herramientas

y

mToolbar.setContentInsetsAbsolute(0, 0) En el código

Esto funcionó para mí.

Aquí es lo que hice y funciona perfectamente en cada versión de Android.

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/toolbar" android:layout_width="match_parent" android:layout_height="56dp" android:background="@color/primary_color" app:theme="@style/ThemeOverlay.AppCompat" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <TextView android:id="@+id/toolbar_title" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginLeft="16dp" <!-- Add margin --> android:layout_marginStart="16dp" android:gravity="left|center" android:text="Toolbar Title" <!-- Your title text --> android:textColor="@color/white" <!-- Matches default title styles --> android:textSize="20sp" android:fontFamily="sans-serif-medium"/> </android.support.v7.widget.Toolbar> 

MyActivity.java (Para ocultar el título predeterminado de la barra de herramientas)

 getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title 

Resultado con líneas clave mostradas

Introduzca aquí la descripción de la imagen

Ok, así que si usted necesita 72dp, ¿no podría agregar la diferencia en el relleno en el archivo xml? De esta manera usted mantiene Androids predeterminado Inset / Padding que quieren que usemos.

Así: 72-16 = 56

Por lo tanto: añadir 56dp relleno para ponerse en un recuento / margen total de 72dp.

O simplemente puede cambiar los valores en los archivos Dimen.xml. Eso es lo que estoy haciendo ahora. Cambia todo, todo el diseño, incluyendo la barra de herramientas cuando se implementa en la nueva forma apropiada de Android.

Archivo de recursos de Dimen

El enlace que agregué muestra los valores de Dimen en 2dp porque lo cambié pero estaba predeterminado en 16dp. Sólo para tu información…

 ((Toolbar)actionBar.getCustomView().getParent()).setContentInsetsAbsolute(0,0); 
  • Cómo cambiar los iconos de los iconos del menú de navegación y desbordamiento de la barra de herramientas (appcompat v7)?
  • La barra de herramientas de Android se vuelve translúcida al navegar hacia atrás
  • Cómo obtener la barra de herramientas de fragmento?
  • Cómo animar barras de herramientas superior e inferior (o cualquier otra vista) entrar / salir de la pantalla en desplazamiento en CoordinatorLayout?
  • El fondo de la barra de herramientas se convierte en color blanco cuando se establece en transparente
  • Android: layout_height = "? Attr / actionBarSize" no funciona con soporte: design: 23.0.0 'library
  • animateLayoutChanges no animar la eliminación de la flecha hacia atrás desde la barra de herramientas
  • ¿Cómo hacer clic en las vistas detrás de una barra de herramientas?
  • La barra de estado no es transparente cuando se utiliza una nueva biblioteca de diseño de soporte
  • No se puede bloquear el evento de clic de botón de inicio de la barra de herramientas
  • Cambiar el color y el estilo de la barra de herramientas en SearchView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.