1:RelativeLayout (相对)
相对布局一般来说是非常好用的,相对于其他的布局,他可以避免在不同机型之间,由于分辨率的不同导致不同控件之间的位置发生变化,同时又可以避免像素的计算。0v0
可以看到将标签改成RelativeLayout时。我们的控件默认的放在了父容器的左上角位置,跟帧布局的效果来说是差不多的。但是在语句用法上缺略有差异。
与帧布局的相同点首先它们都是适用于padding的用法。且在编程的过程中相对布局更适用于一些复杂的布局,比如说嵌套等o.o,这些是帧布局不能胜任的,帧布局跟适合一些简单的布局或者一些复杂布局的底层基础。
相对布局的常用语句
android:layout_toRightOf
如上是所呈现的效果
android:layout_toEndOf=""
android:layout_toLeftOf=""
android:layout_toStartOf=""
这三条语句不过多举例,English总会吧
android:layout_margin=""
上面说过相对布局适用padding,所以内边距相关的语句也是可以使用的,它的效果参考之前button的博客
android:layout_below=""
这里是一个和android:layout_toEndOf=""对比的效果,我们发现这个end所指向的并不是我们想放置的“底部”,这里就是一个误区,这里的end指的就是android:layout_toRightOf=""
因为Andorid在API 21及以上版本,用于指定视图的开始点和结束点,取代了之前的left和right属性
android:layout_alignParent =“”
这个属性是决定控件在父容器中的位置,他的语句主要有
android:layout_alignParentBottom="" android:layout_alignParentTop="" android:layout_alignParentLeft="" android:layout_alignParentRight="" android:layout_alignParentEnd="" android:layout_alignParentStart=""
可以在效果图中看到该语句的属性是true或者false,这里的end和start效果更right和lift是一样的。
android:layout_gravity =" "
这个语句通过周师傅查阅资料发现也是适用于相对布局的界面设置的这条语句不是专为相对布局设计,但在某些场景下,可以用来快速设置视图的对齐方式,比如gravity=“center_horizontal”
2: ConstraintLayout(约束)
约束布局是android中默认生成的布局,在官方文档上,它是主流的布局样式,可以完全替代其他布局(?,他的效果如下。
可以发现当我们把父容器改为约束布局时,我们的控件出现了错误,这是因为在约束布局中,每个控件之间都要"连“起来.
当我们连接起来后就不报错了,红框中是"链接"的属性。
约束布局的常用语句(红框中的属性)
app:layout_constraintBottom_toBottomOf=""
app:layout_constraintStart_toStartOf=""
app:layout_constraintEnd_toEndOf=""
app:layout_constraintTop_toTopOf=""
这四条对应的就是你想要对应容器的四条变,他的值有”parent“或者"任一控件的ID",在效果图中有几条使用的值是”parent“,有几条使用的是控件的"ID",这几条语句对应的是图中的几条虚线。也就”连起来了“。
app:layout_constraintHorizontal_bias=""
app:layout_constraintVertical_bias=""
这两天是关于水平和垂直的偏移量的设置,在效果图中的高低是通过设置水平这个属性实现的,它的阈值是0-1之间,可以通过更改来实现不同的布局效果。
andorid:layout_margin=""
和传统的Margin一样,可以设置边距,但是约束布局支持更复杂的边缘对齐。
layout_constraintWidth/Height
设置元素的最大或最小宽度或高度。
layout_constraintGuide_begin/guide_end:
使用指导线(Guideline)来定距离,例如设置一个固定的间距。
layout_constraintHorizontal_chainStyle
控制元素在行中的排列顺序。
layout_constraintVertical_chainStyle
用于列中的元素。