je une disposition qui a deux CardView
« s et ressemble à ceci:RelativeLayout - ne peut pas faire des vues de la même taille verticale si elles sont alignées horizontalement
Je voulais la bonne carte pour être largeur fixe (90dp) et la gauche pour redimensionner automatiquement et remplir l'espace restant. Je l'ai fait actuellement comme ceci:
<RelativeLayout
android:id="@+id/inventory_host_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<android.support.v7.widget.CardView
android:id="@+id/inventory_last_scanned_wrapper_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:layout_toLeftOf="@+id/inventory_scanned_infobox_wrapper_card">
...
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/inventory_scanned_infobox_wrapper_card"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="false"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="false"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp">
...
</android.support.v7.widget.CardView>
</RelativeLayout>
une gauche peut se développer, donc je voulais aussi la bonne carte d'être toujours la même hauteur que celui de gauche. Habituellement, je fais ce genre d'alignement en réglant les propriétés layout_alignTop
et layout_alignBottom
sur d'autres propriétés View
mais ces propriétés ne sont pas disponibles cette fois, probablement parce que cela créerait une référence circulaire (bien que je ne comprenne pas vraiment comment l'alignement horizontal pourrait affecter verticalement). Que faire? J'ai exploré plusieurs autres options, mais revenons toujours au même point, à l'exception des hauteurs de codage en dur ou de la programmation par programme, ce que bien sûr je veux éviter.
Il semble que ce soit plus facile avec LineraLayout. Avez-vous essayé cela? – algrid
Ou ConstraintLayout :) – barotia
J'ai essayé les deux. 'LinearLayout' me permet d'aligner les deux cartes les unes à côté des autres en définissant des poids, mais je ne peux pas affecter la taille verticale de chaque carte. Je n'ai pas beaucoup d'expérience avec 'ConstraintLayout' mais quand je l'ai fait, je suis arrivé au même problème qu'avec RelativeLayout - il n'autorise pas les références circulaires donc l'alignement de l'un sur l'autre m'empêche automatiquement de le faire en sens inverse. –