ConstraintLayout layout_constraintDimensionRatio ne fonctionne pas
J'ai utilisé constraintLayout et layout_constraintDimensionRatio = "1:1"
(la largeur est warp_content , la hauteur est de 0dp (match_constraint))
Comme un résultat, je m'attendais à de la largeur et de la hauteur de 1: 1, mais pas de travail.
quel est le problème??
J'ai collé le code et capture d'écran.
<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:background="@android:color/holo_blue_bright"
android:gravity="center"
android:text="Hello World!11"
app:layout_constraintDimensionRatio="1:1" />
</android.support.constraint.ConstraintLayout>
Je cite développeur android site sur Constraintlayout.
https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html#DimensionConstraints
"Ratio ::
Vous pouvez également définir une dimension d'un widget comme un rapport de l'autre. Pour ce faire, vous devez avoir au moins une contrainte de dimension être mis à 0dp (c'est à dire, MATCH_CONSTRAINT), et définissez l'attribut layout_constraintDimentionRatio à un rapport donné. Par exemple:
<Button android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintDimensionRatio="1:1" />
permettra de régler la hauteur du bouton à être la même que sa largeur."
--> mais je n'étais pas de travail.
ConstrainLayout
?Salut Shailesh. J'ai utilisé la version 1.0.2
match_parent
n'est pas pris en charge. Vous devez définir 0dp
donc ConstraintLayout
régler en conséquence. Cochez cette stackoverflow.com/questions/37603751/...Si vous voulez créer, puis vous pouvez le faire par un autre moyen. Cochez cette stackoverflow.com/questions/37318228/...
Grâce commentaire. Je sais match_parent n'est pas pris en charge. mais c'est uniquement pour les vues directement sous ConstraintLayout (incertain..)
OriginalL'auteur pistolcaffe | 2017-05-20
Vous devez vous connecter pour publier un commentaire.
Vous oubliez d'ajouter vos contraintes
0dp est seulement appliquée à l'enfant vues de ConstraintLayout.
Tout doit appliquer les règles d'attribut de son parent.
Le 0dp peu fait le tour. Merci!!!!
OriginalL'auteur Rami Jemli
Hors de la version 1.1.0 cela a changé.
Vous pouvez maintenant définir:
Vérifier le lien ci-dessous pour trouver toute la documentation concernant DimensionConstraints:
Lien vers les docs
OriginalL'auteur Koen Van Looveren
Dans mon cas, j'ai un problème que je dois remplir ma mise en page à l'intérieur de récipient avec du papier de format A4 ratio.
Problème
Je suis de taille A4 reprendre pages d'images à partir de backend j'ai donc ajouter ces images dans Viewpager dans lequel je suis à l'aide de ImageView pour afficher ces images.
Solution
Je suis passé par Contrainte de mise en page document dans lequel
Ratio
section est là. Donc je peux l'utiliserlayout_constraintDimensionRatio
pour la résolution de mon problème.Donc mon xml qui est utilisé pour Afficher la totalité de la Mise en page est la suite, dans mon cas, j'ai utilisé
app:layout_constraintDimensionRatio="1:1.27"
comme:le rapport hauteur, mais le ratio estapp:layout_constraintDimensionRatio="1:1.41"
OriginalL'auteur Tushar Pandey
Veuillez remarquer que la dernière ligne, ajouter des contraintes sur les bords rend la contrainte de travail.
Vous pouvez également utiliser le design de vue en Studio, et faites-le glisser et déposez les contraintes entre les objets.
OriginalL'auteur Mindborg