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:
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 hilandero. ¿Qué he hecho mal o qué necesito hacer para deshacerme del relleno adicional?
Editar Algunos han cuestionado por qué estoy tratando de haz esto.
Según las especificaciones de Diseño de materiales, el hilandero debe ser 72dp desde el lado izquierdo
Necesito neutralizar el relleno que Google ha puesto allí para colocar correctamente mi spinner:
Edit 2
Según la respuesta de Chris Bane a continuación, establecí 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 había confundido durante varios días.
10 answers
El recuadro izquierdo es causado por la barra de herramientas contentInsetStart
que por defecto es 16dp.
Cambie esto a 72dp para alinearse con la línea de clave.
Actualización para la biblioteca de soporte v24.0.0:
Para que coincida con la especificación de Material Design hay un atributo adicional contentInsetStartWithNavigation
que por defecto es 16dp. Cambie esto si también tiene un icono de navegación.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-24 11:22:47
La respuesta anterior es correcta, pero todavía hay una cosa que podría crear problemas (Al menos creó un problema para mí)
Usé lo siguiente y no funciona correctamente en dispositivos más antiguos -
android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
El truco está aquí solo use lo 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 que ayude.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-18 05:10:25
En caso de que alguien más tropiece aquí... también puedes configurar padding , 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);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-17 05:20:49
Simplemente agregue esta línea de dos en la barra de herramientas. A continuación, obtenemos nuevo eliminado lado izquierdo espacio bcoz por defecto es 16dp.
android:contentInsetStart="0dp"
app:contentInsetStart="0dp"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-02 06:08:47
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 espaciado
Por favor, siga este enlace para más - Android Consejos
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-09 13:00:48
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í.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-18 22:46:51
Esto es lo que hice y funciona perfectamente en todas las versiones de Android.
Barra de herramientas.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>
Mi actividad.java (Para ocultar el título predeterminado de la barra de herramientas)
getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title
Resultado con Keylines Mostrados
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-20 15:37:34
Ok Así que si necesita 72dp, ¿no podría simplemente agregar la diferencia en el relleno en el archivo xml? De esta manera, mantendrás el recuadro/Relleno predeterminado de los Androides que quieren que usemos.
Entonces: 72-16 = 56
Por lo tanto: agregue relleno de 56dp para ponerse en un total de sangría/margen de 72dp.
O simplemente podría cambiar los valores en el Dimen.archivos xml. eso es lo que estoy haciendo ahora. Cambia todo, todo el diseño, incluida la barra de herramientas cuando se implementa en el nuevo Android adecuado manera.
El enlace que agregué muestra los valores dimensionales en 2dp porque lo cambié pero estaba configurado por defecto en 16dp. Solo PARA TU INFORMACIÓN...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-03 00:06:49
Esto funciona para mí en mi teléfono Android 7.11:
<!-- TOOLBAR -->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentInsetStartWithNavigation="0dp">
<TextView
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/create_account_title"
android:textColor="@color/color_dark_grey"/>
</android.support.v7.widget.Toolbar>
Nota: No tuve absolutamente ningún éxito con padding = 0, o contentInsetLeft=0, o contentInsetStart=0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-04 01:38:23
((Toolbar)actionBar.getCustomView().getParent()).setContentInsetsAbsolute(0,0);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-15 15:44:38