Comment inclure la contrainte de mise en page à une autre contrainte de mise en page et de définir des contraintes entre chaque
Je suis en utilisant constraintLyout v 1.0.1.
Je voudrais inclure dans mon xml un sous ConstraintLayout correspondant à une partie de ma mise en page globale (qui lui-même est un ConstraintLayout). J'ai divisé la mise en page en deux xmls afin d'utiliser cette sous partie ailleurs
J'ai essayé ceci mais je n'ai pas de contrôle sur l'endroit où placer mes sous contrainte de mise en page dans le parent. Je me demande si je dois tout mettre dans le même fichier xml ou si leur est une solution pour utiliser des fichiers séparés.
tmp_1.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LABEL1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="16dp"
/>
<TextView
android:id="@+id/label_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LABEL2"
app:layout_constraintStart_toStartOf="@id/label"
app:layout_constraintEnd_toEndOf="@id/label"
app:layout_constraintTop_toBottomOf="@id/label"
android:layout_marginTop="16dp"
/>
<include layout="@layout/tmp_2" />
</android.support.constraint.ConstraintLayout>
tmp_2.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/view_80"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="80th element"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="10dp"
android:layout_marginStart="12dp"
/>
</android.support.constraint.ConstraintLayout>
Le résultat est cette Résultat réel
Mais je le veux ce Résultat attendu
J'ai essayé ceci mais ça ne fonctionne pas
<include
app:layout_constraintTop_toBottomOf="@id/label_2"
layout="@layout/tmp_2" />
Je serais heureux d'avoir vos solutions,
Merci
Vous devez vous connecter pour publier un commentaire.
Effectivement trouvé une solution.
Android Studio n'a pas de saisie semi-automatique constraintLayout paramètres dans une balise include mais ils ont un impact sur elle aussi longtemps que vous donnez qui incluent une taille.
<merge />
tag. Quand j'ai enlevé que la gauche et la contrainte de mise en page à l'être parent, mise en page, j'ai été en mesure d'ajuster le positionnement et la tailleapp:layout_constraint*
paramètres, que vous devez également spécifier leandroid:layout_width
etandroid:layout_height
pour la<include>
À inlude une contrainte de mise en page et de la contrainte en fonction de son besoin, on aura à donner la largeur et la hauteur à la mise en page comme ceci :
Vous pouvez éviter l'
ConstraintLayout
contraintes à l'comprennent point. Je viens de<include/>
comme il est.MainActivity fichier de Mise en page:
De la barre d'outils de Mise en page du fichier:
include
puisque vous n'avez plus de contrainte de mise à plat de la hiérarchieincluding
une autre mise en page que vous pouvez réutiliser les inclus dispositions dans d'autresactivities
.parentTag
comme décrit ici (android.jlelse.ue/android-dev-pointe-5-55226527e780). Je vais le tester dès que j'ai le temps, ou vous pouvez le tester et de laisser savoir à la communauté.parentTag
semble être la bonne solutionD'inclure une contrainte de mise en page à l'autre contrainte de mise en page à utiliser un plus contrsaint la mise en page à chaque parent d'inclure la mise en... Comme ci-dessous:
c'est un travail sur mon xml de mise en page. Profitez de code.