美文网首页
Android性能优化-ConstraintLayout

Android性能优化-ConstraintLayout

作者: A代码搬运工 | 来源:发表于2019-07-13 09:12 被阅读0次

    说明

    上篇文章Android性能优化-布局优化(一)咱们说过,为了解决布局冗余,我们的目标是布局扁平化。

    ​ ConstraintLayout就是google为此设计诞生的,早期我们一般使用FrameLayout/LinearLayout/RelativeLayout去绘制布局,无法避免会产生多层级嵌套,布局越嵌越深的情况。约束布局ConstraintLayout的出现就是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。

    官方API:

    https://developer.android.com/reference/android/support/constraint/ConstraintLayout

    使用方式

    添加依赖
    compile 'com.android.support.constraint:constraint-layout:1.1.3'
    
    相对定位
    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_constraintCircle : references another widget id
    layout_constraintCircleRadius : the distance to the other widget center
    layout_constraintCircleAngle : which angle the widget should be at (in degrees, from 0 to 360)
    
    边距
    layout_goneMarginStart
    layout_goneMarginEnd
    layout_goneMarginLeft
    layout_goneMarginTop
    layout_goneMarginRight
    layout_goneMarginBottom
    

    注:Margin的设置 必须先约束该控件在ConstraintLayout里的位置

    居中和偏移
    layout_constraintHorizontal_bias
    layout_constraintVertical_bias
    
    尺寸和约束
    android:minWidth set the minimum width for the layout
    android:minHeight set the minimum height for the layout
    android:maxWidth set the maximum width for the layout
    android:maxHeight set the maximum height for the layout
    

    chain_spread展开 默认 展开元素
    chain_spread_inside 展开元素,但链的两头紧贴parent
    chain_packed 链的元素打包在一起

    辅助工具
    Optimizer
    • none: 无优化
    • standard: 仅优化直接约束和屏障约束(默认)
    • direct:优化直接约束
    • barrier:优化屏障约束
    • chain: 优化链约束
    • dimensions:优化尺寸测量
    Barrier

    屏障,方便约束单个控件对多个控件

    Group

    Group可以把多个控件归为一组,方便显示隐藏一组控件

    placeHolder
    GuideLine
            android:orientation="vertical" // 设置方向
            app:layout_constraintGuide_percent="0.6" // 值得取值范围为 0.0 到 1.0 ,描述的是百分比偏移量。
    

    特殊注明:

    • margin只能设置正值,负值无效
    • 代码动态修改属性,使用ConstraintSet
    • ConstraintSet和TransitionManager配合使用 可以实现动画效果

    ​ ConstraintLayout因为只是单纯的使用问题,在这就不做详细讲诉。通过Layout Inspector去分析布局文件,是很容易发现这是满足咱们布局绘制的扁平化原则。

    相关文章

      网友评论

          本文标题:Android性能优化-ConstraintLayout

          本文链接:https://www.haomeiwen.com/subject/hyhpkctx.html