参照: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 条评论

发表回复

您的电子邮箱地址不会被公开。