安卓六大布局

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.mzph.cn/news/742467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux编程4.3 网络编程-数据封装

1、数据封装 2、Internet协议(IP) IP的主要目的是为数据输入/输出网络提供基本算法,为高层协议提供无连接的传送服务。这意味着在IP将数据递交给接收站点以前不在传输站点和接收站点之间建立对话(虚拟链路)。它只是封…

【网络工程师进阶之路】BFD技术

个人名片:🪪 🐼作者简介:一名大三在校生,喜欢AI编程🎋 🐻‍❄️个人主页🥇:落798. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&a…

软考75-上午题-【面向对象技术3-设计模式】-设计模式的要素

一、题型概括 上午、下午题(试题五、试题六,二选一) 每一个设计模式都有一个对应的类图。 二、23种设计模式 创建型设计模式:5 结构型设计模式:7 行为设计模式:11 考试考1-2种。 三、设计模式的要素 3…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的行人跌倒检测系统(深度学习+UI界面+完整训练数据集)

摘要:开发行人跌倒检测系统在确保老年人安全方面扮演着至关重要的角色。本篇文章详尽地阐述了如何利用深度学习技术构建一个行人跌倒检测系统,并附上了完整的代码实现。该系统采用了先进的YOLOv8算法,并对YOLOv7、YOLOv6、YOLOv5等先前版本进…

王道OnlineJudge 14

题目 二叉树层次建树就是一层一层的建树,从左到右。随着纵向层次的深入,结点的数量变化规律为:1→2→4→8→16→32。 先画图,然后看图可闭眼写代码 右边为辅助队列,有多少个二叉树结点,就有多少个辅助队…

【JavaScript】数据类型转换 ① ( 隐式转换 和 显式转换 | 常用的 数据类型转换 | 转为 字符串类型 方法 )

文章目录 一、 JavaScript 数据类型转换1、数据类型转换2、隐式转换 和 显式转换3、常用的 数据类型转换4、转为 字符串类型 方法 一、 JavaScript 数据类型转换 1、数据类型转换 在 网页端 使用 HTML 表单 和 浏览器输入框 prompt 函数 , 接收的数据 是 字符串类型 变量 , 该…

爆肝整理万能sass框架:react18+webpack5+typescript+ant Design,框架在手,交付无忧!!!

来活了,要求一周时间内快速给xxx业务开发一个sass系统平台,要求有角色权限控制,推荐模块,各种业务内容模块,莫慌,直接上代码!!!!! 1.系统框架配置…

带你摸透C语言相关内存函数

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

Windows10/11配置WSL(Ubuntu)环境

文章目录 WSL介绍WSL部署扩展:辅助工具Windosw Terminal安装下载 WSL介绍 传统方式获取Linux操作系统,是安装完整的虚拟机及镜像环境,例如虚拟机VMware 而使用WSL,可以以非常轻量化的方式,得到Linux系统环境 它无需单独虚拟一套硬…

校园兼职无忧网-创业计划书(附下载)

校园兼职无忧网是一个致力于为在校大学生提供兼职工作机会的平台,旨在搭建一个便捷、高效、安全的信息对接服务。该平台通过整合校内外各类兼职资源,包括但不限于家教、促销、实习等岗位,帮助学生找到适合自己的兼职工作,同时为用…

PostGIS 中的 K-Means 聚类操作及应用

K-Means算法: K-means 是数据科学和商业的基本算法。让我们深入了解一下。 1. K-means是一种流行的用于聚类的无监督机器学习算法。它是用于客户细分、库存分类、市场细分甚至异常检测的核心算法。 2. 无监督:K-means 是一种无监督算法,用于…

leetcode刷题(javaScript)——分治思想(二分查找、快速排序)相关场景题总结

分治思想是一种将问题分解成更小的子问题,然后解决子问题并将结果合并的算法设计策略。二分查找、快速排序和折半查找都属于分治思想的经典算法。在leetcode里,分治思想一般结合其他场景出现,构成复合型题目。但是在看题时一定要了解能否用分…

C语言分析基础排序算法——计数排序

目录 计数排序 计数排序基本思路 计数排序改进思路 计数排序 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用。具体思路为: 统计相同元素出现次数根据统计的结果将序列回收到原来的序列中 计数排序基本思路 基本思路分析: //以…

安卓项目:app注册/登录界面设计

目录 第一步:设计视图xml 第二步:编写登录和注册逻辑代码 运行效果展示: 总结: 提前展示项目结构: 第一步:设计视图xml 在layout目录下面创建activity_login.xml和activity_main.xml文件 activity_lo…

19.创建帖子

文章目录 一、建立路由二、开发CreatePostHandler三、编写logic四、编写dao层五、编译测试运行 一、建立路由 这里要稍微注意的是:需要登录后才可以发表帖子,所以需要用到我们之前写的鉴权中间件。中间件对用户携带的token解析成功后,便会将…

String、StringBuilder、StringBuffer 有什么区别?

1、典型回答 String、StringBuilder 和 StringBuffer 都是 Java 语言中,用于操作字符串的类,但它们在性能、可变性和线程安全性方面有一些区别 1、String:不可变字符串类,也就是说一旦创建,它的值就不可变。每次对 S…

Spring boot 集成netty实现websocket通信

一、netty介绍 Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和U…

数码管的动态显示(二)

1.原理 这个十六进制是右边的dp为高位。 数码管的动态显示,在第一个计数周期显示个位,在第二个周期显示十位,在第三个周期显示百位由于人眼的视觉和数码管的特性,感觉就是显示了234,每个数码管的显示需要从输入的数据里…

Flutter第四弹:Flutter图形渲染性能

目标: 1)Flutter图形渲染性能能够媲美原生? 2)Flutter性能优于React Native? 一、Flutter图形渲染原理 1.1 Flutter图形渲染原理 Flutter直接调用Skia。 Flutter不使用WebView,也不使用操作系统的原生控件,而是…

labview中6种机械动作的区别

1.单击时转换:单击时转换,需要手动转换或者赋值回复原来状态; 2.释放时转换:释放时时转换,需要手动转换或者赋值回复原来状态; 3.单击时转换保持到鼠标释放:触发两次,自动恢复原来状…