<?xml version="1.0" encoding="utf-8"?>
<!--
ConstraintLayout的妙用:
1.layout_constraintStart_toStartOf
2.constraintDimensionRatio 宽高比例
3.constraintHorizontal_chainStyle spread(等间隔分开),spread_inside 靠边分隔开 ,packed集中在一起
4.constraintHorizontal_bias 偏向
5.constraintWidth_percent 宽(高)占百分比
-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_top"
android:layout_width="300dip"
android:layout_height="0dip"
android:background="#ff4163"
android:gravity="center"
android:text="宽固定,高变动"
android:textColor="#FFFFFF"
app:layout_constraintDimensionRatio="h,8:2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> <!-- 写的是哪个,哪个就是变动的,写h就表示h是变动的,宽是固定的-->
<TextView
android:id="@+id/tv_top2"
android:layout_width="0dip"
android:layout_height="100dip"
android:layout_marginTop="10dip"
android:background="#008833"
android:gravity="center"
android:text="高固定人,宽变动"
android:textColor="#FFFFFF"
app:layout_constraintDimensionRatio="w,3:1"
app:layout_constraintHorizontal_bias="1.2"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_top" />
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="#f5ec7e"
android:gravity="center"
android:text="Hello World!"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/tv2"
app:layout_constraintTop_toBottomOf="@id/tv_top2" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="#55e4f4"
android:gravity="center"
android:text="Hello World!"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintLeft_toRightOf="@+id/tv1"
app:layout_constraintRight_toLeftOf="@+id/tv3"
app:layout_constraintTop_toBottomOf="@id/tv_top2" />
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="#f186ad"
android:gravity="center"
android:text="Hello World!"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintLeft_toRightOf="@+id/tv2"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_top2" />
<TextView
android:id="@+id/tv4"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/colorAccent"
android:text="@string/app_name"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.2"
app:layout_constraintTop_toBottomOf="@id/tv3" />
<TextView
android:layout_width="0dip"
android:layout_height="100dp"
android:background="@color/colorAccent"
android:text="@string/app_name"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintWidth_percent="0.5"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@id/tv4" />
</androidx.constraintlayout.widget.ConstraintLayout>
另外还有高级用法
Group,
Flow,
Motionayout动画(特别有用),
Layer
等等的作用与用法自行搜索吧。