我知道之前曾有人问过这个问题,但无法弄清楚为什么此代码无法正常工作。我正在尝试将view1的底部边缘对准view2的中心:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<View
android:id="@+id/view1"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/view2"
app:layout_constraintBottom_toBottomOf="@id/view2"
android:background="@color/colorPrimary" />
<View
android:id="@+id/view2"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="200dp"
android:background="@color/colorSecondary" />
</android.support.constraint.ConstraintLayout>
从我能找到的所有内容来看,这看起来应该可行。 view1底部的两个约束应相互平衡,并将其与view2的中心对齐。相反,“ constraintBottom_toTopOf”似乎会覆盖其他约束,而“ constraintBottom_toBottomOf”会被忽略(如果我删除第一个约束,则第二个约束会正常工作)。我在这里想念什么?
类似this之类的帖子提出了相反的问题:如何将一个视图居中放置在另一个视图的边缘。答案...
<ImageView
android:id="@+id/imageView_companyLogo_jobDetails"
android:layout_width="75dp"
android:layout_height="75dp"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"
app:layout_constraintBottom_toTopOf="@+id/cardView_jobHeader_jobDetails"
app:layout_constraintEnd_toEndOf="@id/cardView_jobHeader_jobDetails"
app:layout_constraintStart_toStartOf="@id/cardView_jobHeader_jobDetails"
app:layout_constraintTop_toTopOf="@+id/cardView_jobHeader_jobDetails" />
...对我来说很有意义,Bottom_toTopOf和Top_toTopOf约束取消并迫使视图居于视图顶部上方。我在其他地方尝试过类似的东西,这是一个很好的问题。尝试以另一种方式尝试执行此操作时,无法弄清楚为什么它不起作用。
谢谢。