Comment puis-je me débarrasser du remplissage supplémentaire dans la nouvelle barre d'outils avec Android SDK API version 21 (la bibliothèque de support)?
Je parle des flèches rouges sur cette photo:
Voici le code que j'utilise:
<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>
Comme vous pouvez le voir, j'ai mis tous les rembourrages pertinents à 0, mais il y a toujours du rembourrage autour du Spinner. Qu'est-ce que j'ai fait de mal ou que dois-je faire pour me débarrasser du rembourrage supplémentaire?
Modifier Certains se sont demandé pourquoi j'essayais de faire cela.
Selon les spécifications de conception des matériaux, le spinner doit être à 72dp du côté gauche
Je dois neutraliser le rembourrage que Google y a mis afin de placer correctement mon spinner:
Modifier 2
Selon la réponse de Chris Bane ci-dessous, j'ai mis contentInsetStart à 0. Pour la bibliothèque de support, vous devrez utiliser l'espace de noms de l'application:
<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>
J'espère que cela aide quelqu'un, ça m'a dérouté pendant plusieurs jours.
la source
contentInsetX
propriétés sur 0dp.Réponses:
L'encart de gauche est causé par la barre d'outils
contentInsetStart
qui, par défaut, est 16dp.Changez-le en 72dp pour l'aligner sur la ligne de touche.
Mise à jour pour la bibliothèque de support v24.0.0:
Pour correspondre à la spécification Material Design, il existe un attribut supplémentaire
contentInsetStartWithNavigation
qui, par défaut, est 16dp. Modifiez cela si vous avez également une icône de navigation.la source
contentInsetStartWithNavigation
à 0 a fait l'affaire pour moi avec support-v4: 25.0.1La réponse ci-dessus est correcte mais il y a encore une chose qui pourrait créer des problèmes (au moins, cela a créé un problème pour moi)
J'ai utilisé ce qui suit et cela ne fonctionne pas correctement sur les appareils plus anciens -
L'astuce est ici, utilisez simplement ce qui suit -
et se débarrasser de -
Et maintenant, cela devrait fonctionner correctement sur tous les appareils.
J'espère que ça aide.
la source
app:contentInsetStartWithNavigation
pourraient aider à réparer les choses s'ils ne sont pas déjà assezAjoutez simplement ces deux lignes dans la barre d'outils. Ensuite, nous obtenons un nouvel espace gauche supprimé bcoz par défaut, il 16dp.
la source
Dans le cas où quelqu'un d'autre trébuche ici ... vous pouvez également définir le remplissage , par exemple:
Ou contentInset :
la source
Voici ce que j'ai fait et cela fonctionne parfaitement sur chaque version d'Android.
toolbar.xml
MyActivity.java (pour masquer le titre de la barre d'outils par défaut)
Résultat avec les lignes clés affichées
la source
Faites votre barre d'outils comme:
Vous devez ajouter
attribut pour ajouter un espacement
veuillez suivre ce lien pour en savoir plus - Astuces Android
la source
Une combinaison de
android:padding="0dp"
Dans le xml de la barre d'outilset
mToolbar.setContentInsetsAbsolute(0, 0)
Dans le codeCela a fonctionné pour moi.
la source
cela fonctionne pour moi sur mon téléphone Android 7.11:
note: je n'ai eu absolument aucun succès avec padding = 0, ou contentInsetLeft = 0, ou contentInsetStart = 0
la source
Ok donc si vous avez besoin de 72dp, ne pourriez-vous pas simplement ajouter la différence de remplissage dans le fichier xml? De cette façon, vous conservez l'encart / remplissage par défaut d'Androids qu'ils souhaitent que nous utilisions.
Donc: 72-16 = 56
Pour cela: ajoutez un remplissage de 56dp pour vous mettre à un total de retrait / marge de 72dp.
Ou vous pouvez simplement modifier les valeurs dans les fichiers Dimen.xml. c'est ce que je fais maintenant. Il change tout, la disposition entière, y compris la barre d'outils lorsqu'elle est implémentée de la nouvelle manière Android appropriée.
Fichier de ressources Dimen
Le lien que j'ai ajouté montre les valeurs de Dimen à 2dp parce que je l'ai changé mais il était réglé par défaut à 16dp. Juste FYI...
la source
la source