ConstraintLayout常用属性记录

ConstraintLayout控件很强大,现在基本上写布局都是用它写的,简单记录下几个常用api

相对定位

layout_constraintLeft_toLeftOf 我的左侧与你的左侧对齐
layout_constraintLeft_toRightOf 我的左侧与你的右侧对齐
layout_constraintRight_toLeftOf 我的右侧与你的左侧对齐
layout_constraintRight_toRightOf 我的右侧与你的右侧对齐
layout_constraintTop_toTopOf 我的顶部与你的顶部对齐
layout_constraintTop_toBottomOf 我的顶部与你的底部对齐 (相当于我在你下面)
layout_constraintBottom_toTopOf
layout_constraintBottom_toBottomOf
layout_constraintBaseline_toBaselineOf 基线对齐
layout_constraintStart_toEndOf 我的左侧与你的右侧对齐
layout_constraintStart_toStartOf
layout_constraintEnd_toStartOf
layout_constraintEnd_toEndOf

这里主要讲一下layout_constraintBaseline_toBaselineOf怎么使用。什么是baseline,贴张官方图
baseline
我在第一次使用的时候,左边控件没有baseline(eg:ImageView),导致右边控件无法对齐,一度认为该api没卵用。

边距

android:layout_marginStart
android:layout_marginEnd
android:layout_marginLeft
android:layout_marginTop
android:layout_marginRight
android:layout_marginBottom
layout_goneMarginStart
layout_goneMarginEnd
layout_goneMarginLeft
layout_goneMarginTop
layout_goneMarginRight
layout_goneMarginBottom

前面几个就不用过多介绍,后面带gone属性很厉害,拿layout_goneMarginStart举例,假设控件A在父容器左边20dp,控件B在A右边10dp,并且设置了layout_goneMarginStart=20dp,那么当A显示的时候,AB水平间距=10dp,当A隐藏的时候,B在父容器左边20dp。

链(Chain)

layout_constraintHorizontal_chainStyle 水平方向链式
layout_constraintVertical_chainStyle 垂直方向链式

它两的值默认可以是

CHAIN_SPREAD 展开样式(默认)
Weighted chain 在CHAIN_SPREAD样式,部分控件设置了MATCH_CONSTRAINT,那他们将扩展可用空间。
CHAIN_SPREAD_INSIDE 展开样式,但两端不展开
CHAIN_PACKED 抱团(打包)样式,控件抱团一起。通过偏移bias,可以改变packed元素的位置。
chain

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章