J'ai une mise en page comme celle-ci. Ceci me donne la suite de sortie P> look, En-tête ok, si je modifiais le Donc, ma question est, je veux que ma mise en page soit développée horizontalement autant que possible, comment puis-je y parvenir? Il n'est pas nécessaire d'utiliser P> < p> aucun problème avec cela. Mais si
TVHeader code> n'a qu'un texte
bonjour code>, p>
largeur code> modifié en un centre inférieur et aligné. p>
layout_width code> de
TVHeader code> vers
0DP code> regarder les sorties. P>
contraintlayout code>, même
linearlayout code> suffit pour moi. P> p>
3 Réponses :
Faire la contrainte 'Match Parent' en largeur et en hauteur. Eh bien, essayez ceci. P> P>
Layout parent ne doit pas avoir de parent match.
Voulez-vous dire dans votre code? Comme il n'y a pas de règle générale telle que. C'EST Y Demander?
Non, dans votre code contraintlayout code> largeur et hauteur est match_parent, je veux qu'elle soit enveloppée.
OK, faites-le envelopper le contenu. Et essayez mon code restant?
Je veux la sortie comme ma première capture d'écran dans n'importe quelle situation. Est-ce possible?
Vous avez enveloppé le contenu de l'ensemble de la mise en page. Ensuite, lorsque nous spécifions le premier TextView comme Match_Parent, et la deuxième contrainte de démarrage de TextViews au début TextView 'Démarrer. Vous pouvez obtenir une telle sortie. Essayez mon code et dites en modifiant la largeur et la hauteur de la mise en page parent à MathC Parent
Pour moi, cela ne fonctionne pas, pouvez-vous changer le texte du TVHeader comme bonjour et confirmer moi si cela fonctionne pour vous.
Si nous définissons Match_Parent sur la mise en page parent, la couleur de fond sera-t-elle ajoutée à une largeur entière droite?
Eh bien ça marche pour moi. De mon code, changez simplement la largeur et la hauteur de la mise en page parent à envelopper. Tout le reste devrait fonctionner.
Et comme vous avez demandé à Abt la couleur, j'ai édité ma réponse afin que vous puissiez réaliser ce que vous voulez en gardant la largeur de la mise de parent match_parent. Essayez ça. Si vous travaillez, les pls acceptent la réponse.
Il remplit #heded avec une largeur entière.
Ne donnez pas cette couleur dans le parent. Il suffit d'ajouter que dans le TextView que vous voulez, car vous ne le souhaitez pas répartir sur l'écran.
Utilisez le J'ai également optimisé votre mise en page, car il est idéal d'avoir 16 dP de marge à partir de l'écran et un peu de marge entre les vues de frères et sœurs. Et a également réarrangé les contraintes. Essayez ce code: P> Android: MAXLINES = "1" code> attribut de votre TextView afin que le texte soit limité à une seule ligne, cela ne laisse pas le TextView se développer verticalement. Enveloppez également les visites TextViews dans une linearlayout verticale
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:background="#ededed"
android:padding="1dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tvHeader"
style="@style/TextAppearance.AppCompat.Headline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#fdfdfd"
android:maxLines="1"
android:text="Hello world"
/>
<TextView
android:id="@+id/tvContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Hello world" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
Pour le texte long, cela fonctionne, si l'en-tête n'a que Bonjour code>, il ne remplit pas.
OK laissez-moi vérifier
J'ai mis à jour la réponse s'il vous plaît vérifier si cela répond à vos exigences
Un texte manquant dans le texte plus long.
Il est simple d'envelopper les deux TextViews dans une linearlayout vertical au lieu de la contrainteLayout comme: et strong> Vous pouvez également utiliser Android: Maxlines = "1" code> attribut pour limiter le contenu de la TextView à une ligne. p> p>
Pour le texte plus court, TVHeader devient plus petit.
Oui pour ce cas, définissez simplement l'en-tête TextView Largeur pour faire correspondre le parent !!
Qu'en est-il si j'ai deux groupes de vue au lieu de TextView. Je cherche quelque chose d'une solution élégante et simple. Cela devrait fonctionner tout ce que c'est. Il devrait remplir la largeur des parents, mais le parent devrait avoir Wrap_Content.
Vous manquez la contrainte
extrémité code> sur le second
textview code>. Ajoutez cela et voyez si cela aide.
@Commonsware aucun ami, ça ne marche pas.
Pourquoi ne pas utiliser la largeur de l'en-tête de la télévision, disons 200dP? Je ne suis peut-être pas sûr de l'exigence
Je ne peux pas réparer la largeur, j'en ai besoin pour être étendue autant que nécessaire. Si le contenu est plus grand, j'ai besoin d'une plus grande disposition.
Est-ce que le problème que lorsque vous avez le "bonjour" juste dans la mise en page du poing, vous ne voulez pas que le texte soit centré? Si oui, avez-vous essayé de supprimer la contrainte de la première vue de texte?