ConstrainLayout 基础教程2,近期想跳槽的程序员必看

特性详解

Visibility behavior (可见性的表现)

ConstraintLayout对可见性被标记View.GONE的控件(后称“GONE控件”)有特殊的处理。一般情况下,GONG控件是不可见的,且不再是布局的一部分,但是在布局计算上,ConstraintLayout与传统布局有一个很重要的区别:

  • 传统布局下,GONE控件的尺寸会被认为是0(当做来处理)
  • 在ConstraintLayout中,GONE控件尺寸仍然按其可见时的大小计算,但是其外边距大小按0计算

ConstrainLayout 基础教程2,近期想跳槽的程序员必看_第1张图片

这种特殊的行为让我们在无需打乱布局情况下,在标记GONE控件的地方构建布局(如上图),这样的做法对于做简单的布局动画很有用。

注意:使用的边距将是B在连接到A时定义的边距(见上图)。在某些情况下,这可能不是您想要的余量(例如A在其容器侧面有100dp的边距,B只有16dp到A,A标记为已消失,B对容器的边距为16dp)。因此,您可以指定在连接到标记为已删除的窗口小部件时要使用的备用边距值

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

Dimensions constraints (尺寸约束)

Minimum and maximum dimensions on ConstraintLayout (最大最小尺寸)

ConstraintLayout本身可以定义自己的最大/最小尺寸:

  • android:minWidth 设置布局的最小宽度
  • android:minHeight 设置布局的最小高度
  • android:maxWidth 设置布局的最大宽度
  • android:maxHeight 设置布局的最大高度

这些最小尺寸当ConstraintLayout被设置为WRAP_CONTENT时有效。

Widgets dimension constraints (控件尺寸约束)

控件的尺寸可以通过android:layout_widthandroid:layout_height来设置,有三种方式:

  • 使用固定值(文字值如123dp或 Dimension reference)
  • 使用WRAP_CONTENT
  • 使用0dp(相当于MATCH_CONSTRAINT

ConstrainLayout 基础教程2,近期想跳槽的程序员必看_第2张图片

前两种方式和其他布局的用法相同,最后一种是通过填充约束来重新设置控件的尺寸(如上图 ,(a)是wrap_content,(b)是0dp。代码案例如下:

你可能感兴趣的:(程序员,架构,移动开发,android)