ConstraintLayout布局

  • 简介

ConstraintLayout 与 RelativeLayout 类似,采用相对定位的布局模式,主要是为了解决布局嵌套过多的问题而出现,以灵活的方式定位和调整小部件。其灵活性高于 RelativeLayout,可以按照比例约束控件位置和尺寸,能够更好地适配屏幕大小不同的机型。从 Android Studio 2.3起,官方的模板默认使用 ConstraintLayout(在 API 9 以上的 Android 操作系统使用它)。

  • 常用属性
  1. 相对定位

<TextView

 android:id="@+id/textView1"

 app:layout_constraintLeft_toLeftOf="parent"

 app:layout_constraintTop_toTopOf="parent" />

 <TextView

android:id="@+id/textView2"

 app:layout_constraintLeft_toRightOf="@id/textView1"

 app:layout_constraintTop_toTopOf="parent" />

 <TextView

android:id="@+id/textView3"

 app:layout_constraintLeft_toLeftOf="parent"

 app:layout_constraintTop_toBottomOf="@id/textView1" />

2、基线定位

当两个 TextView 控件的高度不一致,但想要它俩的文本内容对齐,这个时候就可以使用 layout_constraintBaseline_toBaselineOf 属性

<TextView

 android:id="@+id/textView1"

  app:layout_constraintLeft_toLeftOf="parent"

 app:layout_constraintTop_toTopOf="parent" />

 <TextView

 android:id="@+id/textView2"

 app:layout_constraintBaseline_toBaselineOf="@id/textView1"

 app:layout_constraintLeft_toRightOf="@id/textView1" />

3、角度定位

可以用一个角度和一段距离来约束一个控件相对于另一个控件的位置。

<TextView

 android:id="@+id/textView1"

 app:layout_constraintLeft_toLeftOf="parent"

 app:layout_constraintTop_toTopOf="parent" />

 <TextView

 app:layout_constraintBottom_toTopOf="parent"

 app:layout_constraintCircle="@id/textView1"

 app:layout_constraintCircleAngle="120"

 app:layout_constraintCircleRadius="220dp"

 app:layout_constraintLeft_toRightOf="@id/textView1" />

4、边距定位

在 ConstraintLayout 中,可以使用 layout_margin 及其子属性进行边距定位,但必须先约束相应控件在 ConstraintLayout 里的位置,否则将不生效(margin 属性只对其相约束的 View 起作用)。

5、链定位

ConstraintLayout 中的控件的排列方式就像一条铁链,铁链中的每一环是一个控件。控件通过下图所示的方式约束在一起,可以认为他们是一条链(图为横向的链,纵向同理)。

<TextView

 android:id="@+id/textView1"

 app:layout_constraintLeft_toLeftOf="parent"

 app:layout_constraintRight_toLeftOf="@+id/textView2"

 app:layout_constraintTop_toTopOf="parent" />

 <TextView

 android:id="@+id/textView2" 

 app:layout_constraintLeft_toRightOf="@+id/textView1"

 app:layout_constraintRight_toLeftOf="@+id/textView3"

 app:layout_constraintTop_toTopOf="parent" />

 <TextView

 android:id="@+id/textView3"

 app:layout_constraintLeft_toRightOf="@+id/textView2"

 app:layout_constraintRight_toRightOf="parent"

 app:layout_constraintTop_toTopOf="parent" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值