我对 ConstraintLayout
和 RelativeLayout
之间的区别感到困惑。有人可以告诉我它们之间的确切区别吗?
原文由 b2mob 发布,翻译遵循 CC BY-SA 4.0 许可协议
我对 ConstraintLayout
和 RelativeLayout
之间的区别感到困惑。有人可以告诉我它们之间的确切区别吗?
原文由 b2mob 发布,翻译遵循 CC BY-SA 4.0 许可协议
相对布局和约束布局等效属性
(1) 相对布局:
android:layout_centerInParent="true"
(1) 约束布局等效:
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
(2) 相对布局:
android:layout_centerHorizontal="true"
(2) 约束布局等效:
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintEnd_toEndOf="parent"
(3) 相对布局:
android:layout_centerVertical="true"
(3) 约束布局等效:
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
(4) 相对布局:
android:layout_alignParentLeft="true"
(4) 约束布局等效:
app:layout_constraintLeft_toLeftOf="parent"
(5) 相对布局:
android:layout_alignParentStart="true"
(5) 约束布局等效:
app:layout_constraintStart_toStartOf="parent"
(6) 相对布局:
android:layout_alignParentRight="true"
(6) 约束布局等效:
app:layout_constraintRight_toRightOf="parent"
(7) 相对布局:
android:layout_alignParentEnd="true"
(7) 约束布局等效:
app:layout_constraintEnd_toEndOf="parent"
(8) 相对布局:
android:layout_alignParentTop="true"
(8) 约束布局等效:
app:layout_constraintTop_toTopOf="parent"
(9) 相对布局:
android:layout_alignParentBottom="true"
(9) 约束布局等效:
app:layout_constraintBottom_toBottomOf="parent"
(10) 相对布局:
android:layout_alignStart="@id/view"
(10) 约束布局等效:
app:layout_constraintStart_toStartOf="@id/view"
(11) 相对布局:
android:layout_alignLeft="@id/view"
(11) 等效约束布局:
app:layout_constraintLeft_toLeftOf="@id/view"
(12) 相对布局:
android:layout_alignEnd="@id/view"
(12) 等效约束布局:
app:layout_constraintEnd_toEndOf="@id/view"
(13) 相对布局:
android:layout_alignRight="@id/view"
(13) 等效约束布局:
app:layout_constraintRight_toRightOf="@id/view"
(14) 相对布局:
android:layout_alignTop="@id/view"
(14) 等效约束布局:
app:layout_constraintTop_toTopOf="@id/view"
(15) 相对布局:
android:layout_alignBaseline="@id/view"
(15) 等效约束布局:
app:layout_constraintBaseline_toBaselineOf="@id/view"
(16) 相对布局:
android:layout_alignBottom="@id/view"
(16) 等效约束布局:
app:layout_constraintBottom_toBottomOf="@id/view"
(17) 相对布局:
android:layout_toStartOf="@id/view"
(17) 约束布局等效:
app:layout_constraintEnd_toStartOf="@id/view"
(18) 相对布局:
android:layout_toLeftOf="@id/view"
(18) 等效约束布局:
app:layout_constraintRight_toLeftOf="@id/view"
(19) 相对布局:
android:layout_toEndOf="@id/view"
(19) 等效约束布局:
app:layout_constraintStart_toEndOf="@id/view"
(20) 相对布局:
android:layout_toRightOf="@id/view"
(20) 等效约束布局:
app:layout_constraintLeft_toRightOf="@id/view"
(21) 相对布局:
android:layout_above="@id/view"
(21) 等效约束布局:
app:layout_constraintBottom_toTopOf="@id/view"
(22) 相对布局:
android:layout_below="@id/view"
(22) 等效约束布局:
app:layout_constraintTop_toBottomOf="@id/view"
原文由 Naimatullah 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
ConstraintLayout
的目的是通过对每个视图应用一些规则来优化和扁平化布局的视图层次结构以避免嵌套。规则类似于
RelativeLayout
,例如将底部边缘设置为其他视图的底部。与
RelativeLayout
不同,ConstraintLayout
提供了一个bias
值,用于以相对于句柄的 0% 和 100% 水平和垂直偏移量来定位视图用红色圆圈标记)。这些百分比(和分数)提供了跨不同屏幕密度和尺寸的无缝视图定位。基线手柄(圆角的长管,位于圆形手柄下方)用于将视图的内容与另一个视图参考对齐。
方形手柄(在视图的每个角上)用于以 dps 调整视图的大小。
这完全是基于意见和我对
ConstraintLayout