Android-线性布局LinearLayout

ops/2024/12/25 0:34:56/

线性布局LinearLayout-横着或者竖着按顺序排列的布局

新建工程,在layout下新建一个layout文件,如图操作

LinearLayout的基础属性如下表格,先简单了解一下,接下来逐一讲解

属性

说明

orientation

1.vertical:垂直排列
2.horizontal:水平排列

也就是这个线性布局到底是水平方向逐个排列还是垂直方向逐个排列

layout_width
layout_height

1.match_parent:填充父容器的剩余空间
2.wrap_content:根据子视图宽高自适应自己的宽高
3.自定义大小50dp

layout_width和layout_height是android中控件的必要属性,规定了控件的宽度和高度,这个两个属性的值可以是指定的值,也可以根据内容自适应,还可以填充整个剩余空间

background

#ff0000 红色

填充背景色

gravity

1.center:所有子视图相对于父容器居中显示
2.center_horizontal":所有子容器的横向方向上相对父容器居中显示
3.center_vertical:所有子视图的纵向方向上相对父容器居中显示

决定子控件相对该父容器的位置

layout_gravity

1.center:该容器相对于它的父容器居中显示
2.horizontal_center:该容器横向方向上相对它的父容器居中显示
3.vertical_center:该容器纵向方向上相对它的父容器居中显示

决定该容器相对它的父容器的位置

weight

按比例分配父容器剩余的宽度或高度

看这段代码 我们写了四个按钮文件 layout_width layout_height是必须有的属性

我们可以看到这四个按钮是从上到下垂直排列的,这是因为android:orientation="vertical"设置了vertical

如果你觉得效果不明显 我们把按钮宽度设置一下,这样就清晰了

接下来我们来设置为水平排列,android:orientation="horizontal"

看图,为水平排列

接下来学习背景颜色设置android:background="@color/purple_200" 语法是这么写的,颜色在@color/后面设置,也可以使用#xxxxxx十六进制的方式写,分别如图所示

在高版本中 对于button按钮背景颜色的设置就不能使用background了,应该使用backgroundTink来设置

如图所示

接下来讲gravity决定子控件相对该父容器的位置,常见三个属性

话不多说走代码

第一个android:gravity="center_horizontal":所有子容器的横向方向上相对父容器居中显示

第二个android:gravity="center_vertical":所有子视图的纵向方向上相对父容器居中显示

第三个android:gravity="center":所有子视图相对于父容器居中显示

接下来讲layout_gravity首先先把父组件的android:gravity="center"去掉,这会会影响效果,走代码

我们给每个按钮都加了android:layout_gravity="center_horizontal",这样都处于居中位置

接下里我们调节其中一个属性为android:layout_gravity="center_vertical",我们发现 为什么毫无变化呢,按道理来说,应该在垂直方向居中鸭,为什么没有变呢?请思考一下

如果android:gravity和layout_gravity的方向一致就会失效

是因为我们的父控件android:orientation="vertical"设置了vertical,所以,在垂直方向都需要按照顺序来,所以没有改变,我们将android:orientation="horizontal"修改为水平,这样就可以看到,android:layout_gravity="center_vertical"属性生效了,相反的,其他属性就无效了,我们需要在特定的情况使用这些属性

我在学习的过程中发现,实践才是真理,这些代码一定要动手敲一遍,这样才能更加深刻的记住

接下来介绍最后一个属性 weight:按比例分配父容器剩余的宽度或高度

当给一个控件设置weight的时候,这个控件的width就是无效的,所以给width设置为0

减去原来设置的长度剩下的长度按照比例分配

如图所示,这样是否就很好理解了呢

如果orientation是水平方向的,那么子控件的layout_width可以使用weight等比分配,layout_height则不行

如果orientation是垂直方向的,那么子控件的layout_height可以使用height等比分配,layout_weight则不行

这里就不演示了


http://www.ppmy.cn/ops/144706.html

相关文章

linux firewalld 命令详解

简介 firewalld 是一个在 Linux 中的防火墙管理工具,提供动态接口管理网络流量,它使用区域来定义网络连接的信任级别,并支持 IPv4 和 IPv6。 常用示例 启动防火墙 sudo systemctl start firewalld 停止防火墙 sudo systemctl stop fire…

《C++ 赋能强化学习:Q - learning 算法的实现之路》

在当今科技飞速发展的时代,人工智能无疑是最热门的领域之一,而强化学习作为其中的重要分支,正逐渐改变着我们解决复杂问题的方式。Q - learning 算法作为强化学习中的经典算法,在众多领域如游戏、机器人控制、资源管理等有着广泛的…

Liunx下MySQL:表的约束

目录 什么是约束 空属性null/not null 默认值 列描述 zerofill 主键 自增长 什么是约束 约束就是约束ovO。 约束是为了保证数据的合法性,业务逻辑的正确性逼这程序员做约束之内的事情。 假如约束就是10之内的数字,那么程序员想要插入11&#xf…

深度学习之目标检测篇——残差网络与FPN结合

特征金字塔多尺度融合特征金字塔的网络原理 这里是基于resnet网络与Fpn做的结合,主要把resnet中的特征层利用FPN的思想一起结合,实现resnet_fpn。增强目标检测backone的有效性。代码实现如下: import torch from torch import Tensor from c…

2.4 网络概念(分层、TCP)

网络层与传输层概述 网络层: 抽象概念:网络层是基于 IP 的抽象概念,与数据链路层用 MAC 地址标记设备不同。MAC 地址是一种具体化的概念,绑定于所在的物理网络,而 IP 地址可以是固定的,也可以通过路由动态…

oracle 加字段和字段注释 sql

在 Oracle 数据库中,你可以使用 ALTER TABLE 语句来添加字段,并使用 COMMENT ON COLUMN 语句来添加字段注释。以下是一个示例: 假设你有一个名为 employees 的表,你想要添加一个名为 email 的字段,并为其添加注释。 …

[蓝桥杯 2013 省 AB] 错误票据

蓝桥杯,都知道吧 [蓝桥杯 2013 省 AB] 错误票据(抱歉是图片形式) Python解决程序 n int(input()) ids [] for i in range(n):line list(map(int, input().split()))ids.extend(line) ids.sort() missing 0 duplicate 0 for j in range(len(ids) - 1):if ids[…

【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?

解决App配置相关问题列表 1、Harmony Next如何配置图标? 2、Harmony Next如何配置App名称? 3、Harmony Next如何配置版本号? 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号? 6、Harmony Next多语言配置在哪…