layout_
constraintHorizontal_chainStyle 和
layout_
constraintVertical_chainStyle 三个属性值用法相同,
以横向为例用法如下:
<Button
android:id="@+id/text1"
android:
layout_
width="w
rap_content"
Android ConstraintLayout的一些特性的示例,
基于androidx.constraintlayout:constraintlayout:2.0.0-beta6,
详见我的博客: https://blog.csdn.net/EthanCo/article/details/105722610
自己参考写了一个demo 顺便说下自己的思路,之前一直以为约束布局它是拖拽类型的每次都是直接删除掉了
这次自己把它理解为相对布局,但是不是说是,
android:
layout_marginLeft="20dp" 这个相对左边在约束布局中写 app:
layout_
constraintLeft_toLeftOf="parent" 才会移动,自己的理解为约束布局的左边相对于父布局的左边,
如果距离顶部, 就会用约束布局的顶部相对于父布局的顶部,这个才会达到移动
相对于某个位置的在什么什么地方情况类似, 例如demo中tv1的顶部位于banner底部,tab1的左边位于tab2的右边,这个都是相对的,
自己按照这个理解约束布局就很简单了,写的时候可以写后面的,to+(R,L,B,T)这是个位置能更好的提示,然后就会有提示,
app:在传统布局方式中,如果要改变某个控件的位置,需要获取
LayoutPa
rams , 后台修改属性值就行了。
但是在约束布局
ConstraintLayout 中,要改变控件的约束条件,需要用到
ConstraintSet 类。主要有 5 个步骤
第一步:创建
ConstraintSet() 实例
val set =
ConstraintSet()
第二步:需要复制一份父布局的约束,方法有三个如下
set.clone(
constraintLayout:
ConstraintLayout);
在 ConstraintLayout 中使用权重可以通过设置一个 View 的宽度或高度为 0dp,然后再设置该 View 的 layout_constraintWidth_percent 或 layout_constraintHeight_percent 属性来实现。
例如,假设有两个水平方向的 View,我们想让它们平分父布局的宽度,可以按照以下方式设置:
android:id="@+id/view1"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintWidth_percent="0.5" />
android:id="@+id/view2"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintWidth_percent="0.5"
app:layout_constraintStart_toEndOf="@+id/view1" />
其中,view1 和 view2 的宽度都被设置为 0dp,然后通过设置 layout_constraintWidth_percent 属性为 0.5,让它们各占父布局宽度的一半。同样,垂直方向的布局也可以使用相同的方式设置。