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:
Comme vous pouvez le voir, je mets tous les remplissages pertinents à 0, mais il rest encore du rembourrage autour du Spinner. Qu’est-ce que j’ai mal fait ou que dois-je faire pour me débarrasser du rembourrage supplémentaire?
Modifier Certains ont demandé pourquoi j’essayais de le faire.
Selon les spécifications de conception matérielle, le fileur devrait être 72dp du côté gauche
J’ai besoin de neutraliser le rembourrage que Google a mis pour y placer correctement ma roulette:
Modifier 2
Conformément à la réponse de Chris Bane ci-dessous, je mets contentInsetStart à 0. Pour la bibliothèque de support, vous devrez utiliser l’espace de noms de l’application:
J’espère que cela aide quelqu’un, ça m’a confondu pendant plusieurs jours.
L’encart gauche est provoqué par contentInsetStart
la barre d’outils, qui par défaut est 16dp.
Changer à 72dp pour s’aligner sur la ligne de touche.
Mise à jour de la bibliothèque de support v24.0.0:
Pour correspondre à la spécification Material Design, il existe un atsortingbut supplémentaire contentInsetStartWithNavigation
qui, par défaut, est 16dp. Changez ceci si vous avez également une icône de navigation.
La 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 il ne fonctionne pas correctement sur les anciens appareils –
android:contentInsetStart="0dp" android:contentInsetLeft="0dp" app:contentInsetLeft="0dp" app:contentInsetStart="0dp"
L’astuce est ici, utilisez simplement ce qui suit –
app:contentInsetLeft="0dp" app:contentInsetStart="0dp"
et se débarrasser de –
android:contentInsetStart="0dp" android:contentInsetLeft="0dp"
Et maintenant, tout devrait bien fonctionner dans tous les appareils.
J’espère que cela aide.
Au cas où quelqu’un d’autre trébucherait ici … vous pouvez également définir un remplissage , par exemple:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); int padding = 200 // padding left and right toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom());
Ou contentInset :
toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200);
Simpley append cette deux lignes dans la barre d’outils. Ensuite, nous obtenons de nouveaux espaces latéraux supprimés bcoz par défaut il 16dp.
android:contentInsetStart="0dp" app:contentInsetStart="0dp"
Faites votre barre d’outils comme:
Vous devez append
contentInset
atsortingbut pour append de l’espacement
s’il vous plaît suivez ce lien pour plus – Conseils Android
Une combinaison de
android:padding="0dp"
Dans le XML pour la barre d’outils
et
mToolbar.setContentInsetsAbsolute(0, 0)
Dans le code
Cela a fonctionné pour moi.
Voici ce que j’ai fait et cela fonctionne parfaitement sur chaque version d’Android.
toolbar.xml
android:layout_marginStart="16dp" android:gravity="left|center" android:text="Toolbar Title" android:textColor="@color/white" android:textSize="20sp" android:fontFamily="sans-serif-medium"/>
MyActivity.java (Pour masquer le titre de la barre d’outils par défaut)
getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title
Résultat avec Keylines illustré
Ok, donc si vous avez besoin de 72dp, ne pourriez-vous pas simplement append la différence de remplissage dans le fichier xml? De cette façon, vous conservez les insertions / rembourrages par défaut des androïdes à utiliser.
Donc: 72-16 = 56
Pour cela, ajoutez un rembourrage de 56dp pour vous mettre à un retrait total / 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 mise en page entière, y compris la barre d’outils lorsqu’il est implémenté dans la nouvelle manière Android appropriée.
Dimen Resource File
Le lien que j’ai ajouté montre les valeurs de Dimen à 2dp car je l’ai changé mais il était réglé par défaut à 16dp. Juste FYI…
Cela fonctionne pour moi sur mon téléphone Android 7.11:
note: je n’ai eu aucun succès avec padding = 0, ou contentInsetLeft = 0, ou contentInsetStart = 0
((Toolbar)actionBar.getCustomView().getParent()).setContentInsetsAbsolute(0,0);