下面的代码用于在1.0.2中正常工作,但在1.1.0 stable中不起作用 - 字面上删除了布局中所有视图中所有其他约束的影响。有原因还是只是一个怪癖?花了一段时间来追捕它。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app1="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/viewOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/viewTwo" <-- culprit
tools:text="View one"/>
<TextView
android:id="@+id/viewTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app1:layout_constraintTop_toBottomOf="@+id/viewOne" <-- culprit
tools:text="View two"/>
</android.support.constraint.ConstraintLayout>
删除其中一个罪魁祸首约束会使所有内容在1.1.0中恢复正常。
答案 0 :(得分:2)
将app:layout_constraintTop_toTopOf="parent"
添加到viewOne
,它将再次有效。您也可以删除app:layout_constraintBottom_toTopOf="@+id/viewTwo"
,因为不需要,所以不会发生任何变化。
虽然两个视图是垂直约束的,但它们彼此约束,没有任何东西将它们绑定到容器。如果没有其他限制,该组将默认滑动到顶部。看起来两者都将在1.1.0中滑到顶部并在1.0.2中排在另一个之下。这可能只是视图定义的副作用。
在任何情况下,XML都没有格式良好,并且视图都应该直接或间接地限制为包含ConstraintLayout
。进行上述更改,一切顺利。
答案 1 :(得分:1)
删除
应用:layout_constraintBottom_toTopOf =&#34; @ + ID / viewTwo&#34; 强>
从上面的xml代码中你很高兴。
下面给出的代码非常有效。
<?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:app1="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/viewOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="View one" />
<TextView
android:id="@+id/viewTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app1:layout_constraintTop_toBottomOf="@+id/viewOne"
tools:text="View two" />
</android.support.constraint.ConstraintLayout>
所以仅在你的情况下 app:layout_constraintBottom_toTopOf =&#34; @ + id / viewTwo&#34; 这是罪魁祸首。