Andoird 约束布局笔记

都8102年了,赶紧来学一下约束布局
ConstraintLayout 约束布局。约束贯穿这个布局的使用方式。

定位位置

要诀: 其实就是哪一条边与哪一条边对齐。
例如:让一个button居中,可以为它添加layout_contrainLeft_toLeftOflayout_contrainRight_toRightOf
layout_contrainTop_toTopOf
layout_contrainBottom_toBottomOf这4个约束。

layout_xxx_to_leftOf与layout_xxx_to_StartOf类似,同理右边也是一样。

  • layout_contraintLeft_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_goneXXX

在ContraintLayout中常用的android:layout_marginXXX依然可用。除了这些ContraintLayout还添加了当被依赖的约束对象visibility设置为gone时的位置属性。

  • layout_goneMarginStart
  • layout_goneMarginEnd
  • layout_goneMarginLeft
  • layout_goneMarginRight
  • layout_goneMarginTop
  • layout_goneMarginBottom

layout_constrainHorizontal_bias / layout_constrainVertical_bias

当控件设置为横向约束(layout_contraintLeft_toLeftOflayout_contraintRight_toRightOf)或者纵向约束(layout_contraintTop_toTopOflayout_contraintBottom_toBottomOf)的时候,以上属性才会生效。
该属性的范围是 0.0 -----1.0 ,当为0.5时,使用该属性的控件在方向上居中。

控件大小

在ConstraintLayout中,不支持layout_widthlayout_height取值为match_parent

取值:

  • wrap_content
  • 具体的dp值
  • 0dp(match_constraint)

注意:

  1. 0dp的意思不是match_parent,是填充约束。比如一个控件添加了横向的约束,它的layout_width取值为0dp时,表示占满横向。
  2. 当控件为wrap_content可以使用app:layout_constrainedWidth=”true|false”
    app:layout_constrainedHeight=”true|false”来限制控件是否会超过约束限制。

app:layout_constraintWidth_percent`

当控件的宽度为0dp时,此属性代表占父布局的的百分比(0.5即占父布局的一半)

layout_constraintDimentionRatio

设置控件的宽高比,此属性要在控件的layout_width设置为0dp时才有用。

代替LineartLayout

layout_contraintXXX_toXXXOf就可以实现。
水平方向:在第一个控件设置layout_constraintHorizontal_chainStyle
垂直方向:同样在第一个控件设置layout_constraintVertical_chainStyle
取值效果如下:

Andoird 约束布局笔记_第1张图片
chain的style

圆形布局

  • layout_constraintCircle : 圆心,值是某个view的id
    l- ayout_constraintCircleRadius : 半径
  • layout_constraintCircleAngle :角度,值是从0-360,0是指正上方-

Group

可以同时控制多个view可见性的虚拟view



    

比如有a、b、c 和 d四个textview使用group可以同时改变他们的可见性。

你可能感兴趣的:(Andoird 约束布局笔记)