(四)Android布局类型(线性布局LinearLayout)

news/2024/4/19 2:28:16

线性布局(LinearLayout):按照一定的方向排列组件,方向主要分为水平方向和垂直方向。方向的设置通过属性android:orientation设置

android:orientation

其取值有两种

水平方向:android:orientation="horizontal"
垂直方向:android:orientation="vertical"

 使用案例1:按照水平方向排列组件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"tools:context=".MainActivity"><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="水平按钮1" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="水平按钮2" /><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="水平按钮3" />
</LinearLayout>

核心代码:设置方向为水平方向,这也是LinearLayout默认的方向

android:orientation="horizontal"

如果再增加两个按钮,则效果如下:

也就是说,排满后,不会自动换行。

 使用案例2:按照垂直方向排列组件

在上述代码中,更改核心代码为下列代码

android:orientation="vertical"

更常见的使用方法是:组件在布局中均分,均分情况主要有两种,分别是水平方向均分、垂直方向均分 

使用案例3:水平方向均分

思路:首先使用水平方向排列,将三个组件放入布局中;然后设置三个按钮的宽度均为0dp占比相等(相等指的是,可以同时为1,也可以同时为2,数字相同就是相等)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:id="@+id/button"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="水平按钮1" /><Buttonandroid:id="@+id/button2"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="水平按钮2" /><Buttonandroid:id="@+id/button3"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="水平按钮3" />
</LinearLayout>

核心代码1:线性布局上添加属性,使得排列方向设置为水平方向(由于默认是水平方向,你也可以不设置)

android:orientation="horizontal"

 

核心代码2:每个组件中,添加上两个属性;

android:layout_width="0dp"
android:layout_weight="1"

使用案例4:垂直方向均分 

思路:思路:首先使用垂直方向排列,将三个组件放入布局中;然后设置三个按钮的高度均为0dp、占比相等(相等指的是,可以同时为1,也可以同时为2,数字相同就是相等)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/button"android:layout_width="wrap_content"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮1" /><Buttonandroid:id="@+id/button2"android:layout_height="0dp"android:layout_width="wrap_content"android:layout_weight="1"android:text="水平按钮2" /><Buttonandroid:id="@+id/button3"android:layout_width="wrap_content"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮3" />
</LinearLayout>

 

核心代码1:整体线性布局设置为垂直方向

android:orientation="vertical"

核心代码2:由于在垂直方向均分,所有高度具体为多少不知道,将其设置为0dp,根据占比系统进行计算所得

 android:layout_height="0dp"android:layout_weight="1"

检测自己是否领会到该布局的使用方法 

实现如下布局

 

观察特点:3行2列。

方法1:整体采用线性布局,设置方向为水平方向,嵌套两个线性布局,两个布局的宽度设置为0dp、占比为相等,实现水平均分。

第一个线性布局中,设置方向为垂直方向;放入三个组件,每个组件设置属性(宽度占满父容器、高度设置为0dp、占比设置为1);第二个线性布局也是同样的设置。

完整代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><LinearLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:orientation="vertical"><Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮1" /><Buttonandroid:id="@+id/button2"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮2" /><Buttonandroid:id="@+id/button3"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮3" /></LinearLayout><LinearLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:orientation="vertical"><Buttonandroid:id="@+id/button4"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮4" /><Buttonandroid:id="@+id/button5"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮5" /><Buttonandroid:id="@+id/button6"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:text="水平按钮6" /></LinearLayout>
</LinearLayout>

同样的道理,还可以将整体线性布局设置为垂直方向,然后嵌套三个线性布局(红色标记),每个布局的宽度设置为占满,高度设置为0dp、占比设置为相等,实现垂直均分;然后再每个子线性布局中放入2个按钮,设置高度占满,宽度为0dp、占比相等,实现两个按钮水平均分(绿色标记),此处给出思考图,不再给出代码。


http://www.ppmy.cn/news/1392353.html

相关文章

Redis 不再“开源”,对中国的影响及应对方案

Redis 不再“开源”&#xff0c;使用双许可证 3 月 20 号&#xff0c;Redis 的 CEO Rowan Trollope 在官网上宣布了《Redis 采用双源许可证》的消息。他表示&#xff0c;今后 Redis 的所有新版本都将使用开源代码可用的许可证&#xff0c;不再使用 BSD 协议&#xff0c;而是采用…

gofly框架api接口请求合法性验证

验证说明 api接口请求头带合法性参数&#xff0c;用来验证客户端请求是否来自自己授权的应用发起&#xff0c;这个防止api接口被第三方盗用&#xff0c;影响系统性能及数据安全。 服务端配置 配置文件在&#xff1a;resource/config.yaml&#xff0c;配置参数为app:下的apis…

SMMU介绍

1. 什么是SMMU SMMU是System Memory Management Unit的缩写&#xff0c;中文名是内存管理单元。它是一种负责处理中央处理器&#xff08;CPU&#xff09;的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换&#xff08;即虚拟内存管理&#xff09;、内存保护、…

【Vue3】走进Pinia,学习Pinia,使用Pinia

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

Matlab与高光谱遥感:环境监测的新时代

光谱和图像是人们观察世界的两种方式&#xff0c;高光谱遥感通过“图谱合一”的技术创新将两者结合起来&#xff0c;大大提高了人们对客观世界的认知能力&#xff0c;本来在宽波段遥感中不可探测的物质&#xff0c;在高光谱遥感中能被探测。以高光谱遥感为核心&#xff0c;构建…

Legacy|电脑Windows系统如何迁移到新安装的硬盘?系统迁移详细教程!

前言 前面讲了很多很多关于安装系统、重装系统的教程。但唯独没有讲到电脑换了新的硬盘之后&#xff0c;怎么把旧系统迁移到新的硬盘上。 今天小白就来跟各位小伙伴详细唠唠&#xff1a; 开始之前需要把系统迁移的条件准备好&#xff0c;意思就是在WinPE系统下&#xff0c;可…

Flutter知识点整理

JVM 1.Flutter Hot reload 实现原理 一、原理概述 Hot Reload 只能在 Debug 模式下使用&#xff0c;因为 Debug 模式下&#xff0c;Flutter 采用的是 JIT&#xff08; 动态编译&#xff09;&#xff0c;代码是运行在 Dart VM 上&#xff0c;JIT 将 Dart 编译成可以运行在 Dart…

Linux 文件系统:动静态库

目录 一、静态库 1、概念 2、为什么要打包成库 3、创建自定义静态库 4、使用Makefile创建静态库 5、使用静态库(导入系统) 6、删除静态库 7、使用静态库(不导入系统) 二、动态库 1、概念 2、生成动态库&#xff08;共享库&#xff09; 3、使用动态库的过程 4、Mak…

使用clion开发tftlcd屏,移植驱动时遇到的问题记录

问题现象 屏幕只有一半屏在刷新 问题出现的情况(在CLION开发时遇到过) 总结

基于STM32的寻迹小车设计详细论文

基于STM32的寻迹小车设计详细论文 摘要&#xff1a; 本文详细介绍了基于STM32微控制器的寻迹小车的设计过程。从硬件选型、电路设计、软件编程、系统调试到实验结果分析&#xff0c;全面阐述了寻迹小车的实现方法。该设计通过红外传感器识别黑色路径&#xff0c;实现了小车的…

web蓝桥杯2022省赛真题:冬奥大抽奖

代码及注释&#xff1a; // TODO&#xff1a;请完善此函数 function rolling() {time; // 转动次数加1let roll time % 8 0 ? 8 : time % 8 //循环取1~8roll 1 ? document.querySelector(.li8).classList.remove(active) : document.querySelector(.li${roll-1}).class…

如何使用Android平板公网访问本地Linux code-server

文章目录 1.ubuntu本地安装code-server2. 安装cpolar内网穿透3. 创建隧道映射本地端口4. 安卓平板测试访问5.固定域名公网地址6.结语 1.ubuntu本地安装code-server 准备一台虚拟机,Ubuntu或者centos都可以&#xff0c;这里以VMwhere ubuntu系统为例 下载code server服务,浏览器…

【mybatis】TypeAliasRegistry解读

引言 在现代软件开发中&#xff0c;对象关系映射&#xff08;ORM&#xff09;框架已成为连接应用程序和数据库的桥梁&#xff0c;而MyBatis以其灵活性和简洁性&#xff0c;在众多Java ORM框架中脱颖而出。它不仅提供了丰富的映射功能&#xff0c;还允许开发者以接近SQL的方式进…

Linux:权限的概念与理解

目录 1. Linux权限的概念 2. Linux权限管理 01.文件访问者的分类 02.文件类型和访问权限 03.文件权限值的表示方法 04. 文件访问权限的相关设置方法 3. 使用 sudo分配权限 4. 目录的权限 ---------- 权限 用户角色(具体的人) 文件权限属性 ---------- 1. Linux权限的…

图斑或者道路如何单独显示名称在图斑上或者道路上

0序&#xff1a; 遇到过多个测绘、工程、林业相关业务的客户&#xff0c;在加载一些图斑数据&#xff0c;线路数据时&#xff0c;希望能够单独的把图斑的名称&#xff0c;显示到图斑上&#xff0c;或者路网上面。 之前多数推荐的办法&#xff1a; 1.shp可以直接在图新地球中…

软考90-上午题-【操作系统】-死锁

一、同类资源分配不当引起死锁 系统中有m个资源&#xff0c;被n个进程共享&#xff0c;每个进程都要求k个资源。 当m < n*k时&#xff0c;即&#xff1a;资源数<进程所要求的总数时&#xff0c;可能会引起死锁。&#xff08;但是不一定&#xff01;&#xff09; 例如&…

【MySQL】基本查询(1)

【MySQL】基本查询&#xff08;1&#xff09; 目录 【MySQL】基本查询&#xff08;1&#xff09;表的增删改查Create单行数据 全列插入多行数据 指定列插入插入否则更新替换 RetrieveSELECT 列全列查询指定列查询查询字段为表达式为查询结果指定别名结果去重 WHERE 条件英语不…

第十二届蓝桥杯省赛CC++ 研究生组

十二届省赛题 第十二届蓝桥杯省赛C&C 研究生组-卡片 第十二届蓝桥杯省赛C&C 研究生组-直线 第十二届蓝桥杯省赛C&C 研究生组-货物摆放 第十二届蓝桥杯省赛C&C 研究生组-路径 第十二届蓝桥杯省赛C&C 研究生组-时间显示 第十二届蓝桥杯省赛C&C 研究生组…

OceanPen Art AI绘画系统 运营教程(二)AI视频AI创作PPT

在一个崇高的目标支持下&#xff0c;不停地工作&#xff0c;即使慢&#xff0c;也一定会获得成功。 —— 爱因斯坦 演示站点&#xff1a; ai.oceanpen.art 官方论坛&#xff1a; www.jingyuai.com 登陆后台 ppt密匙设置 导航菜单配置 Key池管理 二、前端显示 体验站点…

【数据结构与算法】(18):树形选择排序:按照锦标赛的思想进行排序

&#x1f921;博客主页&#xff1a;Code_文晓 &#x1f970;本文专栏&#xff1a;数据结构与算法 &#x1f63b;欢迎关注&#xff1a;感谢大家的点赞评论关注&#xff0c;祝您学有所成&#xff01; ✨✨&#x1f49c;&#x1f49b;想要学习更多数据结构与算法点击专栏链接查看&…