【发布时间】:2019-11-26 11:13:44
【问题描述】:
如何设置它,以便将Constraint Layout 中的水平助手设置在特定View 的底部,其间的边距为16dp?
我试过的(水平Guideline):
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.30779755"
app:layout_constraintTop_toBottomOf="@id/view2" />
它实际上并不关心layout_marginTop 和layout_constraintTop_toBottomOf 属性。如果我删除 layout_constraintGuide_percent 属性,它会变得混乱并粘在父级的顶部。
编辑
我创建了 Guideline,因为我有一个 View,它充当 multiple Views 背后的“背景”。我希望将这个背景View 限制在这个Guideline 的底部,与最后一个垂直对齐的View(来自多个Views)有16dp 的偏移。我希望这个背景View 的高度基于多个Views 中最后一个垂直对齐的View,即高度由视图底部+ 16dp 边距确定。如果我将所述背景View 的底部限制到最后一个垂直对齐的View 的底部并添加底部边距,则背景View 会从最后一个垂直对齐的View 的底部缩回16dp。
【问题讨论】:
-
您看到的是正确的行为。助手通常不遵守边距。指南的放置基于百分比或固定距离。你需要这样的指南吗?为什么不用 16dp 的边距限制到视图的底部?
-
@Cheticamp 我明白了。是的,我确实需要该指南,因为我有一个
View,它充当 multipleViews后面的“背景”。我希望这个背景View的高度基于多个Views中最后一个垂直对齐的View,即高度由视图底部+ 16dp 边距确定。如果我将所述背景View的底部约束到最后一个垂直对齐View的底部并添加底部边距,则背景View反而从最后一个垂直对齐View的底部缩回16dp。 -
有道理。使用 ConstraintLayout 2.0,您可以使用 Layer widget 为视图设置背景,并将底部填充设置为
16dp。您不能将其他视图约束到此图层小部件,但如果它只是一个背景,那没关系。否则,您可以放置一个上边距为16dp的空间小部件,并将其顶部限制在最底部视图的底部。然后可以将背景视图限制在空间视图的顶部,这将为您提供16dp边距。 -
@Cheticamp 哇,我不知道图层小部件。但我昨天做了更多研究,发现了
Space小部件。您想在下面提供完整的答案吗(也许还有实现)?
标签: android-studio android-layout android-constraintlayout