布局之ConstraintLayout 约束布局
ConstraintLayout 在测量/布局阶段的性能比 RelativeLayout大约高40%!使用的性能检测工具是Android 7.0(API 级别 24)中引入的 OnFrameMetricsAvailableListener通过该类,你可以收集有关应用界面渲染的逐帧时间信息,进而比较分析不同布局每次测量和布局操作所花费的时间。
Android引用方式
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
Androidx引用方式
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
androidStudio支持一键将已有的布局文件转成ConstraintLayout
属性
1、layout_constraintXXX_toYYYOf
xxx表示该控件在什么个方向的约束,YYY表示该控件参考的控件的方向,它们的可以是 left/right/top/bottom/start/end的任意一种,包含了水平方向和垂直方向的约束,属性的值为目标控件的id
例如:layout_constraintLeft_toRightOf:该控件的左边在参考控件的右边
2. match_constraint
充满布局match_parent已不再适用 如设置match_parent会把其他布局覆盖 ,在ConstraintLayout 应设置相应方向0dp,在调整相应方向的app:layout_constraintXXX_toYYYOf=“parent”,
设置该控件在布局同方向上。
设置match_parent:
设置0dp 奇迹了
3. 宽高比layout_constraintDimensionRatio
感觉设置了layout_constraintDimensionRatio属性屏幕适配都搞定了(只是感觉)
app:layout_constraintDimensionRatio="2:1属性表示宽高比为2:1,在已经限定控件宽度为300dp时,高度指定为0dp则可自己算出实际高度