简化开发

约束布局(ConstraintLayout)的常用属性

2022-06-26  本文已影响0人  NoBugException

1、依赖

 implementation 'com.android.support.constraint:constraint-layout:1.1.3'

2、位置控制的常用属性

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_constraintHorizontal_bias(比例,水平偏移)
layout_constraintVertical_bias (比例,垂直偏移)

3、角度定位

layout_constraintCircle(与某空间绑定,形成角度)
layout_constraintCircleAngle(角度)
layout_constraintCircleRadius(半径)

4、边距

layout_marginStart
layout_marginEnd
layout_marginLeft
layout_marginTop
layout_marginRight
layout_marginBottom

layout_goneMarginStart(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginEnd(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginLeft(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginTop(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginRight(只有在对应的约束控件 gone 时,偏移才会生效)
layout_goneMarginBottom(只有在对应的约束控件 gone 时,偏移才会生效)

5、控件尺寸

【1】直接设置固定大小

【2】使用wrap_content

【3】使用 0dp,约束布局中,0dp 相当于 match_parent,但官方不推荐在约束布局中使用 match_parent

【4】使用 layout_constraintDimensionRatio 来设置控件的宽高比例
         需要注意的是,宽和高至少有一个为 0dp 时,该属性才会生效
         app:layout_constraintDimensionRatio="2:1"
         以上代码默认是 `宽度 : 高度`
         还可以加上字母 `W`或`H`
         app:layout_constraintDimensionRatio="W,2:1"(宽度 : 高度)
         app:layout_constraintDimensionRatio="H,2:1"(高度 : 宽度)

【5】百分比
     layout_constraintWidth_percent
     layout_constraintHeight_percent

6、链

当在横向或者纵向形成一条链时,多个元素会自动居中

可以在链头使用以下属性设置链的样式:
layout_constraintHorizontal_chainStyle
layout_constraintVertical_chainStyle
可以设置三个属性
spread:展开元素
spread_inside:展开元素,链头和链尾贴近边缘
packed:所有元素贴在一起

权重也可以改变链的样式:
layout_constraintHorizontal_weight
layout_constraintVertical_weight

7、屏障

<androidx.constraintlayout.widget.Barrier
    android:id="@+id/barrier"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:barrierDirection="right"
    app:constraint_referenced_ids="textview1,textview2"/>

8、组

<androidx.constraintlayout.widget.Group
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:constraint_referenced_ids="textview1,textview2"
    android:visibility="invisible"/>

9、占位符

<androidx.constraintlayout.widget.Placeholder
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:content="@+id/textview1" />

10、辅助线

<androidx.constraintlayout.widget.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_begin="50dp"/>

<androidx.constraintlayout.widget.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_end="50dp"/>

<androidx.constraintlayout.widget.Guideline
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_end="50dp"
    app:layout_constraintGuide_percent="0.5"/>

[完...]

上一篇 下一篇

猜你喜欢

热点阅读