安卓六大布局

LinearLayout(线性布局)

1.简介
  • 线性布局在开发中使用最多,具有垂直方向与水平方向的布局方式。
  • LinearLayout 默认是垂直排列的,但是可以通过设置 android:orientation 属性来改变为水平排列。
2.常用属性
  • orientation:控制布局方向。

    vertical:垂直方向布局。

    horizontal 水平方向布局。

  • gravity:控制组件所包含的子元素的对其方式。

    center:子容器相对于父容器所在的位置为正中心。

    cente_verticalr: 子容器相对于父容器所在的位置为垂直方向的正中心。

    center_horizontal:子容器相对于父容器所在的位置为水平方向的正中心。

    top/bottom/left/right:子容器相对于父容器所在的位置为上/下(默认)/左/右。

  • layout_gravity:控制该组件在父容器里的对齐方式。

    left:子视图相对于其容器左侧对齐。

    right:子视图相对于其容器右侧对齐。

    top:子视图相对于其容器顶部对齐。

    bottom:子视图相对于其容器底部对齐。

    center_horizontal:子视图在其容器的水平方向上居中对齐。

    center_vertical:子视图在其容器的垂直方向上居中对齐。

    center:子视图在其容器的水平和垂直方向上都居中对齐,等价于同时设置

    center_horizontal和center_vertical。

  • layout_width、layout_heigth:布局宽度、高度。

    布局的宽度通常不直接写数字的。

    用wrap_content(组件实际大小)fill_parent或者match_parent填满父容器。

  • background:为组件设置背景。

    background=“#xxxx” :指定线性布局的背景颜色

    background=“@color/colorPrimary” :指定自设置的颜色。

  • layout_weight:权重,用来分配当前控件在剩余空间的大小。

    一般要把分配该权重方向的长度设置为零。

    比如在水平方向分配权重,就把width设置为零。

RelativeLayout(相对布局)

1.简介
  • 允许开发者通过指定控件相对于其他控件或容器边缘的位置来布局界面。
  • 这种布局方式相对于LinearLayou来说更加灵活,因为它不限制控件必须放置在垂直或水平方向上。
  • 例如,你可以指定一个按钮位于另一个按钮的下方、右侧或者某个控件的中心位置。
2.常用属性
  • ayout_width/layout_height

    • 宽度:wrap_content(默认),match_parent,具体像素值(如 100dp)。
    • 高度:wrap_content(默认),match_parent,具体像素值(如 100dp)。
  • 根据父容器定位

左对齐:layout alignParentLeft
右对齐:layout_alignParentRight
顶部对齐:layout_alignParentTop
底部对齐:layout_alignParentBottom
水平居中:android:layout centerHorizontal
垂直居中:android:layout centerVertical
中间位置:android:layout centerInParent

  • 根据兄弟组件定位

  • 参考组件的左边:layout_toLeftOf
    一参考组件的右边:layout_toRightOf
    参考组件的上方:layout above
    参考组件的下方:layout below
    对齐参考组件的上边界:layout alignTop
    对齐参考组件的下边界:layout alignBottom
    一对齐参考组件的左边界:layout_alignLeft
    对齐参考组件的右边界:layout_alignRight

  • margin:偏移量(外边距)

    设置组件与父容器的边距,又叫偏移
    设置组件上下左右的偏移量:layout margin
    设置组件离左边的偏移量:layout marginLeft
    设置组件离右边的偏移量:layout_marginRight
    设置组件离上面的偏移量:layout_marginTop
    设置组件离下面的偏移量:layout marginBottom

  • padding:填充(内边距)

    设置组件内部元素间的边距(比如Textview里的字体位置)
    往内部元素的上下左右填充一定边距:android:padding
    往内部元素的左边填充一定边距:paddingLeft
    往内部元素的右边填充一定边距:paddingRight
    往内部元素的上方填充一定边距:paddingTop
    往内部元素的下方填充一定边距:paddingBottom

TableLayout(表格布局)

1.简介
  • 用于创建表格布局的类。
  • 允许你以表格的形式安排其子视图,类似于 HTML 中的 元素。
  • 直接往TableLayout中添加组件,这个组件占满一行。
  • .如果想要一行上有多个组件,就要添加一个TableRow的容器。
2.常用属性
  • stretchColumns

    • 作用:指定哪列应该被拉伸以填充额外的空间。
    • 属性值:可以指定一个或多个列的索引,用逗号分隔。例如,“0,2” 表示第 0 列和第 2 列会被拉伸。
  • shrinkColumns

    • 作用:指定哪列应该收缩以适应空间。
    • 属性值:与 stretchColumns 类似,指定一个或多个列的索引。
  • collapseColumns

    • 作用:指定在视图不够宽时哪些列应该被折叠,即不显示。
    • 属性值:同上,指定列的索引。
  • layout_column

    • 作用:指定子视图应该放置在哪一列。
    • 属性值:列的索引,从 0 开始计数。
  • layout_row

    • 作用:指定子视图应该放置在哪一行。
    • 属性值:行的索引,从 0 开始计数。
  • layout_rowSpan

    • 作用:指定子视图应该跨越多少行。
    • 属性值:数值,表示子视图应该跨越的行数。
  • layout_margin/layout_padding

    • 作用:指定子视图周围的外边距/内边距。
    • 属性值:可以是像素值,如 “10dp”,也可以是百分比,如 “10%”。

FrameLayout(帧布局)

1.简介
  • 属于线性布局的一种,它将所有的子视图按照它们添加的顺序依次垂直或水平排列。
  • 与 LinearLayout 不同的是,FrameLayout 中的子视图只能有一个可见的,其余的将被隐藏。
  • 常用于创建动画效果,也可以用来覆盖在其他布局之上显示重要内容。
2.常用属性
  • foreground:设置改帧布局容器的前景图像。
  • foregroundGravity:设置前景图像显示的位置。

GridLayout(网格布局)

1.简介
  • 用于创建网格布局的布局管理器,在 Android 开发中属于相对布局(RelativeLayout)的一部分。
  • 允许将子视图组织成网格状排列,每个子视图占据网格的一个或多个单元格。
2.常用属性
  • 设置排列对其

    排列方式——orientation:vertical(竖直,默认)或者horizontal(水平)

    对齐方式——layout gravity:center,left,right,bottom

  • 设置几行几列

    设置行数——rowCount=“4”:设置网格布局有4行

    设置列数——columnCount=“4”:设置网格布局有4列

  • 设置组件所在的行列

    第几行——layout_row ="1” :设置组件位于第二行

    第几列——layout_column =“2”:设置该组件位于第三列

  • 设置组件横跨几行几列

    横跨几行——layout_rowSpan =“2”:纵向横跨2行

    横跨几列——layout_columnSpan ="3”:横向横跨2列

AbsoluteLayout(绝对布局)

1.简介
  • 允许开发者精确地控制视图的位置和大小,通过设置它们的绝对坐标来确定它们在屏幕上的位置。
  • 这种布局方式不依赖于屏幕上的其他元素,使得视图可以放置在任何地方。
  • 实际应用中,这种布局用的比较少,因为Android终端一般机型比较多,各自的屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。
2.常用属性
  • layout_x 和 layout_y:设置视图在容器中的 x 坐标和 y 坐标。
  • layout_width 和 layout_height:设置视图的宽度和高度。可以是具体的像素值,也可以是百分比值(如 wrap_content、match_parent)。
  • layout_gravity:设置视图在容器中的对齐方式,类似于 RelativeLayout 中的。
  • layout_margin:设置视图边缘与容器边缘之间的空白距离。
  • layout_alignParentLeft、layout_alignParentTop、layout_alignParentRight 和 layout_alignParentBottom:设置视图是否与其父布局的相应边缘对齐。
  • layout_below、layout_above、layout_toLeftOf、layout_toRightOf、layout_alignLeft、layout_alignTop、layout_alignRight 和 layout_alignBottom:通过这些属性,可以设置视图与屏幕上其他视图的对齐方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/456277.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows系统下载安装Emby结合内网穿透实现公网访问本地影音网站

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…

3.2 RK3399项目开发实录-初次使用的环境搭建(物联技术666)

通过百度网盘分享的文件:嵌入式物联网单片… 链接:https://pan.baidu.com/s/1Zi9hj41p_dSskPOhIUnu9Q?pwd8qo1 提取码:8qo1 复制这段内容打开「百度网盘APP 即可获取」 1. 用户和密码 1.1. Ubuntu Desktop 系统 Ubuntu Desktop 系统开机启动后,自动登录…

权限管理和操作指令

文章目录 前言一、文件的权限分类二、操作时无相应权限解决办法1.使用sudo指令2.修改文档权限 总结 前言 💦 Linux操作系统中,主要都是对文件进行操作,完成读写或者执行功能。Ubuntu 下我们会常跟用户权限打交道,权限就是用户对于…

python操作dataframe--打乱df的顺序

在Python中,可以使用Pandas库来操作DataFrame。要打乱DataFrame的顺序,可以使用sample方法来实现。以下是一个示例代码: import pandas as pd# 创建一个示例DataFrame data {A: [1, 2, 3, 4, 5],B: [10, 20, 30, 40, 50]} df pd.DataFrame…

为什么ERP与MES集成那么难搞?怎么有效解决这一难题

在现代企业信息化进程中,ERP(企业资源规划)和MES(制造执行系统)作为企业管理的核心信息系统,它们之间的深度集成是提升生产效率、实现精益管理和智能决策的关键环节。然而,ERP与MES集成并非易事…

【Python】成功解决NameError: name ‘sns‘ is not defined

【Python】成功解决NameError: name ‘sns’ is not defined 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您…

1个二维码能包含多个视频吗?制作视频二维码的方法

二维码在生活中现在随处可见,除了用于支付之外,展示内容也可以通过二维码来展现,比如常见的视频、图片、文件、音频等内容都可以通过二维码来展现。那么当我们需要将多个视频存入一个二维码中展示时,该如何利用二维码生成器的工具…

开发知识点-python-Tornado框架

介绍 Tornado是一个基于Python语言的高性能Web框架和异步网络库,它专注于提供快速、可扩展和易于使用的网络服务。由于其出色的性能和灵活的设计,Tornado被广泛用于构建高性能的Web应用程序、实时Web服务、长连接的实时通信以及网络爬虫等领域。 Torna…

jmeter接口自动化测试通过csv文件读取用例并执行测试

最近在公司测试中经常使用jmeter这个工具进行接口自动化,简单记录下~ 一、在csv文件中编写好用例 首先在csv文件首行填写相关参数(可根据具体情况而定)并编写测试用例。脚本可通过优先级参数控制执行哪些接口,通过端口参数同时执…

leetcode110.平衡二叉树

之前没有通过的样例 return语句只写了一个 return abs(l-r)<1缺少了 isBalanced(root->left)&&isBalanced(root->right);补上就好了 class Solution { public:bool isBalanced(TreeNode* root) {if(!root){return true;}int lgetHeight(root->left);i…

第三百九十一回

文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择多个图片和视频文件"相关的内容&#xff0c;本章回中将介绍如何通过相机获取视频文件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. …

很多人不懂这个伦敦金短线操作的心法

很多投资者进入伦敦金市场&#xff0c;是看中了它很适合短线操作的这个特点。确实&#xff0c;伦敦金不光可以实现双向T0的交易&#xff0c;而且还有24小时交易和保证金交易的特点&#xff0c;这些特点令伦敦金成为一个十分适合短线交易的品种。但是投资者如何在伦敦金短线交易…

提高转换效率的利器NCP13992ACDR2G 高性能电流模式LLC谐振变换器控制芯片

NCP13992ACDR2G产品概述&#xff1a; NCP13992ACDR2G是一款用于半桥谐振变换器的高性能电流模式控制器。该控制器实现了600 V栅极驱动器&#xff0c;简化了布局并减少了外部组件数量。内置的Brown−Out输入功能简化了控制器在所有应用程序中的实现。在需要PFC前级的应用中&…

RUST 每日一省:rust logo收集

rust的logo集合&#xff0c;看看有没有你喜欢的&#xff0c;挑一个吧&#xff1b; GitHub - XuHugo/rust-logo: Collection of logo images for all rust languages 下边只是挑选了几个&#xff0c;更多的还是看github吧。

mysql 主从延迟分析

一、如何分析主从延迟 分析主从延迟一般会采集以下三类信息。 从库服务器的负载情况 为什么要首先查看服务器的负载情况呢&#xff1f;因为软件层面的所有操作都需要系统资源来支撑。 常见的系统资源有四类&#xff1a;CPU、内存、IO、网络。对于主从延迟&#xff0c;一般会…

【LeetCode热题100】206. 反转链表(链表)

一.题目要求 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 二.题目难度 简单 三.输入样例 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2…

TS使用el-tree拖拽结构+点击写法

1.结构分两块 <template><div style"height:96%;width:100%;max-width:1920px;max-height:1080px;background-color:white;padding:20px;display: flex;flex-direction:row; "><!-- 左侧树 --><div style"height:100%;width:32%;"&g…

【刷题节】美团2024年春招第一场笔试【技术】

1.小美的平衡矩阵 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int[][] nums new int[n][n], sum new int[n][n];char[] chars;for (int i 0; i < n; i) {…

使用Python对文本文件进行分词、词频统计和可视化

目录 一、引言 二、文本分词 三、词频统计 四、可视化 五、案例与总结 六、注意事项与扩展 七、总结与展望 一、引言 在大数据时代&#xff0c;文本处理是信息提取和数据分析的重要一环。分词、词频统计和可视化是文本处理中的基础任务&#xff0c;它们能够帮助…

生产线平衡改善的四大方法及vioovi ECRS工时分析软件的应用

生产线平衡是制造业生产过程中的关键环节&#xff0c;它直接影响到生产效率、成本及产品质量。在追求精益生产的今天&#xff0c;改善生产线平衡成为众多企业的重要目标。生产线平衡改善的四大方法包括&#xff1a;保证各工序之间的先后顺序、组合的工序时间不能大于节拍、各工…
最新文章