安卓六大布局

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.hqwc.cn/news/536373.html

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

相关文章

imagemagick深度系统(deepin)安装

背景: 为了试用MoneyPrinter,需要配置imagemagick软件。但是没有适配深度系统的软件包。需要自己编译后安装。 安装: 下载源码 解压(tar xvfz ImageMagick.tar.gz)后进入目录(cd ImageMagick-7.1.1),使用…

基于Java+SpringBoot+vue+element实现前后端分离玩具商城系统

基于JavaSpringBootvueelement实现前后端分离玩具商城系统 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文…

HTML万字学习总结

html文本标签特殊符号图片音频与视频超链接表单列表表格语义标签(布局) html文本标签 标签简介根目录规定文档相关的配置信息&#xff08;元数据元素表示文档的内容表示那些不能由其它 HTML 元相关元素&#xff08;(<base>、<link>, <script>、<style>…

学习 考证 帆软 FCP-FineBI V6.0 考试经验

学习背景&#xff1a; 自2024年1月起&#xff0c;大部分时间就在家里度过了&#xff0c;想着还是需要充实一下自己&#xff0c;我是一个充满热情的个体。由于之前公司也和帆软结缘&#xff0c;无论是 Fine-Report 和 Fine-BI 都有接触3年之久&#xff0c;但是主要做为管理者并…

C语言学习基础版(二)

目录 十、结构体和共用体 1、struct结构体的定义和使用 2、结构体数组的使用 3、结构体指针及具体操作 4、union共用体的定义和使用 5、typedef用法 六、enum枚举类型 练习一&#xff1a;星期判断机 练习二&#xff1a;自定义函数之字符串拷贝 练习三&#xff1a;结构…

Diffusion 公式和代码解读

1、训练过程 下面就是代码实现过程 2、训练过程的损失函数。也就是上面的公式。 二、采样过程&#xff0c;生成过程&#xff1a;

HarmonyOS NEXT应用开发之深色跑马灯案例

介绍 本示例介绍了文本宽度过宽时&#xff0c;如何实现文本首尾相接循环滚动并显示在可视区&#xff0c;以及每循环滚动一次之后会停滞一段时间后再滚动。 效果图预览 使用说明&#xff1a; 1.进入页面&#xff0c;检票口文本处&#xff0c;实现文本首尾相接循环滚动&#x…

Orange3数据预处理(离散化组件)

离散化&#xff1a;将数值属性转换为分类属性。 输出 数据&#xff1a;具有离散化值的数据集 设置离散化的默认方法。 选择变量以为每个变量设置特定的离散化方法。将鼠标悬停在变量上显示区间。 离散化方法Keep numeric(保持数值)&#xff1a;保持变量不变。Remove (移除)&a…

Java特性之设计模式【组合模式】

一、组合模式 概述 组合模式&#xff08;Composite Pattern&#xff09;&#xff0c;又叫部分整体模式&#xff0c;是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次。这种类型的设计模式属于结构型模式&#x…

【研发日记】,Matlab/Simulink开箱报告(十)——Requirements Toolbox

前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;五&#xff09;——S-Fuction模块(C MEX S-Function)》 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;六&#xff09;——S-Fuction模块&#xff08;TLC&#xff09;》 见《开…

java(框架) springboot-1 基础使用+mybaits使用

学习视频&#xff1a;b站黑马java教程 tomcat spring-boot工程内嵌了tomcat服务器 所有请求经过DispatcherServlet(实现servlet接口的类)(核心控制器/前端控制器)处理&#xff0c;再通过DispatcherServlet转发给各个controller。 最后通过DispatcherServlet给浏览器响应数据…

《详解:鸿蒙NEXT开发核心技术》

我们现在都知道鸿蒙作为一个国产的全栈自研系统&#xff0c;经过国家主推后。已经引起人们很大的关注&#xff0c;其中作为开发者来说&#xff1b;许多一线大厂已经与其华为鸿蒙展开原生应用的合作了&#xff0c;目前了解到已经有200家。而之后出现了很多的高薪鸿蒙开发岗位&am…