Android 的 六大布局使用 <--线性和帧-->(努力z的日记)

默认效果

这是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值