默认效果
这是android中不经过设置,默认生成出来的布androidx.constraintlayout.widget.ConstraintLayout
(图中框选部分)这是ConstraintLayout(约束布局),是一个官方的约束布局,在通常的情况下,我们在编程的过程中需要改动这个布局。
1:LinearLayout(线性)
我们发现当把父容器改成LinearLayout效果就变成了图中所示,这就是我们的线性布局
线性布局常用属性
android:orientation=""
这条语句是用于设定布局界面的方向,他的属性有vertical(垂直)和horizontal(水平)
效果如图所示,也就是意味当我们不设置这个属性时,系统默认的方向是horizontal(水平)的,如果我们想要垂直排列就需要我们手动设置该属性
android:gravity=""
这条语句是用于设置控件在父容器中的位置,它的属性有:
top
或 start
: 文本顶部对齐
bottom
或 end
: 文本底部对齐
center
: 文本居中
left
或 right
: 文本左/右侧对齐
fill_horizontal
或 fill_vertical
: 填充整个方向
center_horizontal
或 center_vertical
: 水平/垂直居中
(如图是设置成center的效果)
注 :这一属性也可以用数字组合的方式设置。举例:
center_horizontal|bottom
表示同时在水平和顶部方向上居中(效果如图)
android:layout_weight=""
LinearLayout是可以嵌套的,所以我们可以在线性布局中在嵌套一层线性布局,这就涉及到了权重的问题,就有了下面的应用场景(如图)
我们在大的父容器中嵌套两个background(背景)不同的LinearLayout
并给它们设置了0.5的权重,就有了上图的效果,通常来说相同层级的权重总和为1,为了效果明显设置一个黑色为0.8,紫色0.2的效果(如下图)
比较之前的,可以发现不光是占比面积大了,内部的控件也变大了。
2:FrameLayout(帧)
当我们把设置成帧布局时,可以看到四个控件堆叠在一起了
把控件设置成不同的大小和颜色,发现控件丁把甲乙丙全部遮挡起来了,从视图上,很明显的是堆叠效果。
帧布局默认是按照顺序去显示图片,当我们把脚本文件中的控件顺序倒置。(效果如下)
帧布局常用的属性
android:foreground="" android:foregroundGravity=""
这两条语句设置的是前景以及位置,可以在控件中设置前景为图片或者颜色,这个设置会遮挡所有控件,这个设置具有最高优先级。
一般来说,设置的为图片o.o。如图导入mipmap图片它永远在所有图像最上方,使用foregroundFravity语句改变导入图片的位置。
padding属性 这里的padding属性是指的各种内边距的设置,在button那篇日记中记录过。
由于适用于padding属性的设置,就需要有语句去裁剪我们控件中设置的图片或者文字的裁剪
android:clipToPadding 默认为ture
它控制了视图的内容是否会被其自身的 padding(内边距)所裁剪。如果这个属性设置为 true
,那么当内容试图超出视图的实际显示区域(即减去 padding 的部分)时,内容会从屏幕上消失,不会显示出来。如果设置为 false
,则内容不受 padding 影响,会继续延伸到 padding 区域之外,可能会超出布局范围。对于 RecyclerView 这样的滚动视图,clipToPadding
可能会影响滚动的效果,因为默认情况下它是启用的。如果你需要在滚动过程中看到完整的内容而不仅仅是可视区域,就需要将其设置为 false
。
android:clipChildren="" Android XML 布局文件中的一个属性,用于控制其内部视图是否应该剪裁超出其边界的内容。如果设置为 true
,则该布局会阻止其子元素延伸到其外部区域;如果设置为 false
或者省略,则子元素可以穿透布局的边界。
后面的两条例子制作ing****o.0