android - Android - constraintLayout layout_constraintDimensionRatio不工作

我使用constraintLayout和layout_constraintDimensionRatio ="1:1"(宽度为warp_content,高度为0dp (match_constraint )),

因此,我希望宽度和高度为1:1但不工作。

哪儿出问题了??

我附加了代码和屏幕截图。


<?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>



屏幕截图

我引用了android开发者站点关于Constraintlayout ,https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html#DimensionConstraints

"比率::您还可以将窗口小部件的一个维度定义为另一个维度的比率。为此,您需要将至少一个约束维度设置为0dp(即mATCH_CONSTRAINT),并将属性layout_constraintDimentionRatio设置为给定比率。例如:


 <Button android:layout_width="wrap_content"


 android:layout_height="0dp"


 app:layout_constraintDimensionRatio="1:1" />



将按钮的高度设置为与它的宽度相同。"

- >但我不能工作。

时间:

忘记添加约束


<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="0dp"


 android:layout_height="0dp"


 app:layout_constraintLeft_toLeftOf="parent"


 app:layout_constraintRight_toRightOf="parent"


 app:layout_constraintTop_toTopOf="parent"


 app:layout_constraintBottom_toBottomOf="parent"


 android:background="@android:color/holo_blue_bright"


 android:gravity="center"


 android:text="Hello World!11"


 app:layout_constraintDimensionRatio="1" />



</android.support.constraint.ConstraintLayout>



0dp仅应用于ConstraintLayout的子视图,任何视图都应该去应用它父级的属性规则。

从版本1.1.0开始,这已经改变了。

你现在可以定义:


app:layout_constraintDimensionRatio="1:1"


app:layout_constraintDimensionRatio="W,1:1"


app:layout_constraintDimensionRatio="H,1:1"



查看下面的链接以查找有关DimensionConstraints的所有文档:

链接到文档

请注意最后一行,在边缘添加约束使约束工作。

还可以在Studio中使用设计视图,并在对象之间拖动和删除约束。


<TextView


 android:id="@+id/textView"


 android:layout_width="wrap_content"


 android:layout_height="wrap_content"


 android:text="Available chats" />



<ListView


 android:id="@+id/listChats"


 android:layout_width="0dp"


 android:layout_height="wrap_content"


 app:layout_constraintTop_toBottomOf="@+id/textView"/>



...