Contrainte de mise en page texte du bouton d'alignement
Je suis en utilisant le nouveau Constraint
disposition pour construire ma mise en page. J'ai besoin d'avoir Button
qui occupe presque toute la largeur de l'écran et qui est facile à l'aide de contraintes.
Comme vous pouvez le voir dans l'image, je suis réglage de la largeur de 0dp
(de Toute taille), mais le texte ne colle pas au centre de ce qui est généralement le normal pour un texte du bouton.
J'ai essayé:
- définir la gravité de centre
- définir textAlignment au centre
Ressemble à ceci propriétés ne peuvent pas travailler avec 0dp
largeur (de Toute taille).
J'ai donc essayé de définir la largeur de match_parent
à l'aide de centre de gravité.
C'est un peu vers la droite.
Ce que quelqu'un sait comment résoudre ce problème ?
Remarque que je suis en utilisant alpha4
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha4'
Code XML
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/content_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="br.com.marmotex.ui.LoginActivityFragment"
tools:showIn="@layout/activity_login">
<Button
android:text="Log in"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/btLogin"
android:layout_marginTop="48dp"
app:layout_constraintTop_toBottomOf="@+id/textView6"
android:layout_marginEnd="16dp"
app:layout_constraintRight_toRightOf="@+id/content_login"
android:layout_marginRight="16dp"
android:layout_marginStart="16dp"
app:layout_constraintLeft_toLeftOf="@+id/content_login"
android:layout_marginLeft="16dp"
android:textColor="@android:color/white"
android:background="@color/BackgroundColor" />
</android.support.constraint.ConstraintLayout>
MODIFIER C'était un bug dans ConstraintLayout
alpha4.
Mise à JOUR Google a publié alpha5, le code ci-dessus Fonctionne maintenant.
Note de version
OriginalL'auteur Clayton Oliveira | 2016-08-03
Vous devez vous connecter pour publier un commentaire.
Je pense que la marge(s) est à l'origine de ces. Et ce n'est pas seulement une incidence sur les Boutons, dans mon expérience. La marge est de vissage TextInputEditText trop.
Ci-dessous est un code qui fonctionne, mais s'il vous plaît prêter attention à
android:layout_width="match_parent"
sur le Bouton. De tout temps j'ai cliqué dans l'éditeur, il va changer deandroid:layout_width="0dp"
, et de ruiner le bouton d'alignement.Inspiré par Hobo joe la solution ci-dessous est la façon dont je préfère ne. Sa solution, c'est de travailler, mais ont encore besoin d'utiliser un rembourrage pour créer de l'espacement. Si la marge a été utilisé au lieu de cela, l'alignement du texte du bouton permettra d'aller un peu vers la droite. J'ai donc utilisé un rembourrage sur LinearLayout(ou ConstraintLayout) au lieu de la marge sur le bouton.
merci @ClaytonOliveira. peut-je mettre à jour ma réponse?
OriginalL'auteur Marchell Imanuel
Avez-vous essayé ?
Cela fonctionne pour moi.
OriginalL'auteur SoH
C'est un bug. Cependant, vous pouvez contourner le problème en plaçant le bouton à l'intérieur d'un LinearLayout (Ou un autre standard ViewGroup). Définir la vue parent et le bouton de largeur de
match_parent
, et déplacer quelles que soient les contraintes que vous avez eu sur le bouton pour le parent de mise en page.Vous pouvez poster votre mise en page de code? Je viens de tester avec le XML que j'ai posté et cela a fonctionné.
afficher le code ajouté !
OriginalL'auteur Hobo Joe
Bien je pense que c'est à cause de ces contraintes
app:layout_constraintRight_toRightOf
app:layout_constraintLeft_toLeftOf
remplacer votre bouton avec celui-ci :
Espère que cela aidera.
OriginalL'auteur Mohanad ALKHOULI