¿Cómo me deshago 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:
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 puede ver, he establecido todo el relleno relevante en 0, pero todavía hay relleno alrededor del Spinner. ¿Qué he hecho mal o qué debo hacer para deshacerme del relleno adicional?
Editar Algunos han cuestionado por qué estoy tratando de hacer esto.
Según las especificaciones de diseño de materiales, la ruleta debe estar a 72 dp del lado izquierdo
Necesito neutralizar el relleno que Google ha puesto allí para colocar correctamente mi ruleta:
Editar 2
Según la respuesta de Chris Bane a continuación, configuré contentInsetStart en 0. Para la biblioteca de soporte, deberá 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.
fuente
contentInsetX
propiedades a 0dp.Respuestas:
El recuadro izquierdo es causado por la barra de herramientas,
contentInsetStart
que por defecto es 16dp.Cambie esto a 72dp para alinearlo con la línea clave.
Actualización para la biblioteca de soporte v24.0.0:
Para que coincida con la especificación de Diseño de materiales, hay un atributo adicional
contentInsetStartWithNavigation
que, de forma predeterminada, es 16dp. Cambie esto si también tiene un icono de navegación.fuente
contentInsetStartWithNavigation
a 0 me ayudó con support-v4: 25.0.1La respuesta anterior es correcta, pero todavía hay una cosa que podría crear problemas (al menos sí creó un problema para mí)
Usé lo siguiente y no funciona correctamente en dispositivos más antiguos:
El truco está aquí, solo usa lo siguiente:
y deshacerse de
Y ahora debería funcionar bien en todos los dispositivos.
Espero eso ayude.
fuente
app:contentInsetStartWithNavigation
las cosas podrían ayudar a solucionar si no está ya lo suficientementeSimplemente agregue estas dos líneas en la barra de herramientas. Luego obtenemos el nuevo espacio del lado izquierdo eliminado, por defecto, 16dp.
fuente
En caso de que alguien tropiece aquí ... también puede configurar el relleno , por ejemplo:
O contentInset :
fuente
Esto es lo que hice y funciona perfectamente en todas las versiones de Android.
toolbar.xml
MyActivity.java (para ocultar el título predeterminado de la barra de herramientas)
Resultado con Keylines Mostrado
fuente
Haga su barra de herramientas como:
Necesitas agregar
atributo para agregar espacio
sigue este enlace para obtener más información: consejos de Android
fuente
Una combinación de
android:padding="0dp"
En el xml para la barra de herramientasy
mToolbar.setContentInsetsAbsolute(0, 0)
En el codigoEsto funcionó para mí.
fuente
Esto funciona para mí en mi teléfono Android 7.11:
nota: no tuve absolutamente ningún éxito con padding = 0, o contentInsetLeft = 0, o contentInsetStart = 0
fuente
Ok, si necesita 72dp, ¿no podría simplemente agregar la diferencia en el relleno en el archivo xml? De esta manera, mantienes el recuadro / relleno predeterminado de Android que quieren que usemos.
Entonces: 72-16 = 56
Por lo tanto: agregue un relleno de 56dp para ubicarse en un total de sangría / margen de 72dp.
O simplemente puede cambiar los valores en los archivos Dimen.xml. eso es lo que estoy haciendo ahora. Cambia todo, el diseño completo, incluida la barra de herramientas cuando se implementa en la nueva forma adecuada de Android.
Dimen Resource File
El enlace que agregué muestra los valores de Dimen en 2dp porque lo cambié pero estaba configurado por defecto en 16dp. Solo para tu información...
fuente
fuente