转载请标明作者和出处:http://airsaid.github.io/20180422/Android-ConstraintLayout-1.1.0-Detailed/
欢迎关注我的掘金主页:https://juejin.im/user/576915101532bc00603df0e2
前言
在上一篇文章中,我们对 ConstraintLayout 1.0.2 版进行了详细的了解。而当时说好的 1.1.0 版本的文章却直到现在才出来,相隔了好久。其实关于 1.1.0 beta 版的文章早已写完,但却一直没有发布,这是因为当时担心后面的稳定版会和现有的冲突(事实上的确有),所以一直等到本周四,Google 宣布 ConstraintLayout 1.1.0 稳定版发布,于是在周末休息时重新整理发布了这篇文章。
如果对 ConstraintLayout 不了解,并且还没有观看上篇文章的,强烈建议先观看完上篇文章,因为本篇只是对上篇的补充。如果有遗落或错误,欢迎各位补充和指正。
准备
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
Circular Positioning
圆形定位(Circular Positioning)可以让一个控件以另一个控件的中心为中心点,来设置其相对与该中心点的距离和角度。
可以设置的属性有:
- layout_constraintCircle:引用另一个控件的 id。
- layout_constraintCircleRadius:到另一个控件中心的距离。
- layout_constraintCircleAngle:控件的角度(顺时针,0 - 360 度)。
下面以给头像设置 badge 为例,演示下其用法:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.github.airsaid.constraintlayoutdemo.MainActivity">
<ImageView
android:id="@+id/img_avatar"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@mipmap/ic_avatar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txt_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="VIP"
android:textColor="#FFFF00"
android:textStyle="bold"
app:layout_constraintCircle=