参照:https://www.jianshu.com/p/17ec9bd6ca8a
目录
1.相对定位
1)layout_constraintBaseline_toBaselineOf
有些控件是包含文字内容的, 所以约束布局的控件有一个文字基准线约束。这个基准线指的是控件的文字的下方的水平基线,如:
-- 举个例子:故意把文字大小、gravity调整的不一样,便于看出效果。
<androidx.constraintlayout.widget.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=".MainActivity">
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="80dp"
android:background="@android:color/holo_red_dark"
android:text="text1"
android:textSize="30sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:gravity="center"
/>
<TextView
android:id="@+id/TextView2"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:background="@android:color/holo_green_dark"
android:text="text2"
android:textSize="10sp"
app:layout_constraintBaseline_toBaselineOf="@+id/TextView1"
app:layout_constraintLeft_toRightOf="@+id/TextView1"
android:gravity="bottom"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
上面,如果把TextView1给gone掉,那么TextView2的文字baseLine就会贴住屏幕边缘, TextView2会跑到屏幕外。
2. 边距
1)只有先约束了位置,margin才会生效。
比如可以先结束居中,然后再根据居中位置进行偏移。
2)layout_goneMarginXXX
相对的控件为GONE,margin才会生效。
3. 居中和偏移
1)bias
layout_constraintHorizontal_bias 水平偏移
layout_constraintVertical_bias 垂直偏移
如何计算bias值:
bias值=子View左相关的长度/(子View左相关的长度+其右相关的长度)
https://blog.csdn.net/shulianghan/article/details/97102389
https://segmentfault.com/a/1190000020083269?utm_source=tag-newest
https://blog.csdn.net/truechenshicong/article/details/86609593
4. 尺寸约束
1)宽高比( layout_constraintDimensionRatio )
https://blog.csdn.net/qq_36946446/article/details/100740427
5. 链(Chain)
6. 辅助工具
1)Barrier
2)Group
3)GuideLLine
0 条评论