ConstraintLayout—新特性

ConstraintLayout 新特性

1 基线对其 layout_constraintBaseline_toBaselineOf
		 <TextView
	        android:id="@+id/btn1"
	        android:text="按钮1"
	        android:textSize="26sp"/>
	
	    <TextView
	        android:id="@+id/btn2"
	        android:text="按钮2"
	        app:layout_constraintBaseline_toBaselineOf="@+id/btn1"
	        app:layout_constraintLeft_toRightOf="@+id/btn1"/>

基线非基线

2 与父布局 对其
	app:layout_constraintBottom_toBottomOf="parent"  我的底部与父亲底部对齐
	app:layout_constraintTop_toTopOf="parent"   我的顶部与父亲的顶部对齐
	app:layout_constraintLeft_toLeftOf="parent"  我的左侧与父亲的左侧对齐
	app:layout_constraintRight_toRightOf="parent"  我的右侧与父亲的右侧对齐
3 居中

就是在某两个对称方向上,给予拉力(约束)

	这是垂直居中

	app:layout_constraintTop_toTopOf="parent"
	app:layout_constraintBottom_toBottomOf="parent"
	
    复制代码位于父亲的正中央

	app:layout_constraintBottom_toBottomOf="parent"
	app:layout_constraintLeft_toLeftOf="parent"
	app:layout_constraintRight_toRightOf="parent"
	app:layout_constraintTop_toTopOf="parent"
4 Bias 偏向某一边

改变两边拉力 比例

    layout_constraintHorizontal_bias  水平约束力
	layout_constraintVertical_bias  垂直约束力



    <Button
        android:text="按钮1"
        app:layout_constraintHorizontal_bias="0.3"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>

    <Button
        android:text="按钮1"
        app:layout_constraintHorizontal_bias="0.3"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"/>
5 Circular positioning (圆形的定位)

看下图:

	layout_constraintCircle :引用另一个小部件ID
	layout_constraintCircleRadius :到其他小部件中心的距离
	layout_constraintCircleAngle :小部件应该处于哪个角度(以度为单位,从0到360)

	<Button
    android:id="@+id/btn1"
    android:text="按钮1"/>

	<Button
    android:text="按钮2"
    app:layout_constraintCircle="@+id/btn1"
    app:layout_constraintCircleRadius="100dp"
    app:layout_constraintCircleAngle="145"/>
6 Visibility behavior 可见性行为

当设置 View 为 ‘visibility = gone’,会在原地留一个点,作为相关view 的参照物。

7 Dimensions constraints 尺寸限制

在ConstraintLayout中,可以给一个view设置最小和最大尺寸.
属性如下(这些属性只有在给出的宽度或高度为wrap_content时才会生效):

	android:minWidth 设置布局的最小宽度
	android:minHeight 设置布局的最小高度
	android:maxWidth 设置布局的最大宽度
	android:maxHeight 设置布局的最大高度
8 Widgets dimension constraints 宽高约束

话不多说,看代码看图

	<Button
    android:id="@+id/btn1"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:text="按钮1"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"/>

	<Button
    android:id="@+id/btn2"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="按钮2"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btn1"/>


	<Button
    android:id="@+id/btn3"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="60dp"
    android:text="按钮3"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/btn2"/>

9 WRAP_CONTENT:强制约束(在1.1中添加)

view 在特别宽的时候,不出现预期以外的效果,这是可以加上下面代码。

	app:layout_constrainedWidth=”true|false”
	app:layout_constrainedHeight=”true|false”
10 MATCH_CONSTRAINT尺寸(在1.1中添加) —很实用
当一个view的长宽设置为MATCH_CONSTRAINT(即0dp)时,默认是使该view占用所有的可用的空间. 这里有几个额外的属性
	layout_constraintWidth_min和layout_constraintHeight_min:将设置此维度的最小大小
	layout_constraintWidth_max和layout_constraintHeight_max:将设置此维度的最大大小
	layout_constraintWidth_percent和layout_constraintHeight_percent:将此维度的大小设置为父级的百分比
  • 百分比布局是必须和MATCH_PARENT(0dp)一起使用
  • layout_constraintWidth_percent 或layout_constraintHeight_percent属性设置为0到1之间的值
11 按比例设置宽高(Ratio) —很实用

可以设置View的宽高比例,需要将至少一个约束维度设置为0dp(即MATCH_CONSTRAINT),再设置layout_constraintDimensionRatio

12 Chains(链)

在上篇文章里有
优化Android 布局 —— ConstraintLayout

13 还有一些 虚拟视图,辅助配置的。

用了一段时间的 ConstraintLayout 发现还是很实用的,还没有用的小伙伴赶快用起来吧

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值