J'utilise un constrainedLayout avec certains TextViews. Lorsque le texte de textViews couvre deux lignes, il semble correct. Mais lorsque le texte ne parle qu'une seule ligne, le texte ne commence pas dans la première ligne. J'ai ajouté une capture d'écran:
Donc, fondamentalement, ce que je veux, c'est décaler les lignes de texte marquées en jaune d'un niveau au-dessus de sorte que la marge entre les mots d'étiquette (Nez, Finition) et le texte ne soit pas aussi élevée. Il doit ressembler aux textViews "Taste". Voici le code XML des TextViews:
<TextView android:id="@+id/tvNoseLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="16sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.489" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.36" android:textStyle="bold" android:text="@string/Nose" /> <TextView android:id="@+id/tvNoseDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity= "fill_vertical" android:textSize="14sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.489" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.41" /> <TextView android:id="@+id/tvTasteLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="16sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.489" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.47" android:textStyle="bold" android:text="@string/Taste" /> <TextView android:id="@+id/tvTasteDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="14sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.489" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.52" /> <TextView android:id="@+id/tvFinishLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="16sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.489" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.58" android:textStyle="bold" android:text="@string/Finish" /> <TextView android:id="@+id/tvFinishDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:textSize="14sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.489" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.63" />
Avez-vous une idée de comment je peux faire ça? J'ai essayé différentes gravités (start, fill_vertical) mais cela n'a pas aidé. J'apprécierais chaque commentaire.
3 Réponses :
vous devriez écrire ceci dans votre TextView:
android: gravity = "start" ou android: gravity = "start | center"
et écrivez ceci: android: layout_width = "match_parent"
Merci Majid pour votre réponse. Malheureusement, le texte n'a été déplacé vers la gauche que lors de l'utilisation de vos commandes conseillées (ce que je ne veux pas). La position verticale est restée inchangée. Je veux changer la position VERTICALE et non horizontale.
quand vous avez une ligne, que voulez-vous exactement qu'il se passe?
vous pouvez utiliser textAlignment
pour obtenir ce que vous voulez et changer le android:layout_width
en match_parent.
<TextView android:id="@+id/tvNoseDescription" android:layout_width="match_parent" android:layout_height="wrap_content" android:textAlignment="center" // change the value to whatever you want ( ctrl + space ). ... ...
Merci Omar pour votre réponse. Malheureusement, cela n'a pas fonctionné, je ne peux que décaler la position horizontale du texte mais pas la verticale. Je veux changer la position VERTICALE et non horizontale.
Votre mise en page repose trop sur l' app:layout_constraintVertical_bias
. Pour obtenir la distribution verticale souhaitée, il est préférable d'utiliser les chaînes ConstraintLayout. Pour votre mise en page, je suggère d'utiliser une chaîne emballée verticale et de supprimer le biais vertical et les gravités. Quelque chose comme ça:
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/tvNoseLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="@string/Nose" android:textSize="16sp" android:textStyle="bold" app:fontFamily="@font/paprika" app:layout_constraintBottom_toTopOf="@+id/tvNoseDescription" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" /> <TextView android:id="@+id/tvNoseDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:gravity="fill_vertical" android:text="Soft and rounded with fruity notes of red apple" android:textSize="14sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toTopOf="@+id/tvTasteLabel" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvNoseLabel" /> <TextView android:id="@+id/tvTasteLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="@string/Taste" android:textSize="16sp" android:textStyle="bold" app:fontFamily="@font/paprika" app:layout_constraintBottom_toTopOf="@+id/tvTasteDescription" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvNoseDescription" /> <TextView android:id="@+id/tvTasteDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:gravity="center" android:text="A fine Sherried character, fruity aromas balanced with rich chovolate" android:textSize="14sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toTopOf="@+id/tvFinishLabel" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvTasteLabel" /> <TextView android:id="@+id/tvFinishLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="@string/Finish" android:textSize="16sp" android:textStyle="bold" app:fontFamily="@font/paprika" app:layout_constraintBottom_toTopOf="@+id/tvFinishDescription" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvTasteDescription" /> <TextView android:id="@+id/tvFinishDescription" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:gravity="center" android:text="Warm and lingering. Sweet and spoicy" android:textSize="14sp" app:fontFamily="@font/paprika" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvFinishLabel" /> </androidx.constraintlayout.widget.ConstraintLayout>
ce qui donne cette apparence:
Merci beaucoup Chéticamp pour votre réponse. Je l'ai accepté et je l'ai voté.