属性名称 功能描述
android:id  设置布局的标识
android:layout_width 设置布局的宽度
android:layout_height  设置布局的高度
android:background 设置布局的背景
android:layout_margin 设置当前布局与屏幕边界或与周围控件的距离
android:padding 设置当前布局与该布局中控件的距离

一、LinearLayout(线性布局)

​1、 特点:

主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能放一个控件。

​ 2、适⽤场景:

Android开发中最常见的 ⼀种布局⽅式,排列方式只有水平排列和垂直排列两种,orientation 设置为 horizontal 为水平排列, 设置为 vertical为垂直排列,默认水平排列。

​ 3、缺点:

在设计复杂页面时要嵌套过多的层级,降低页面加载速度

4、常用属性

(1)android:id

用于设置当前布局的唯一标识。在XML文件中它的属性值是通过“@+id/属性名称”定义的。为布局指定android:id 属性后,在R.java文件中,会自动生成对应的int值。在Java代码中通过为findViewById()方法传入该int值来获取该布局对象。

​ (2)orientation属性

在线性布局中,控件排列有水平和垂直两个方向,控件排列方向由android:orientation属性来控制,该属性需要加在LinearLayout标记的属性中。

​ (3)gravity属性

线性布局的控件默认是从左往右排列或从上往下排列,如果想让线性布局中的控件排列对齐右边缘或者底部,可以用gravity属性控制。

​ (4) layout_weight属性

LinearLayout中另外一个常用的属性是layout_weight,该属性需要加在LinearLayout的子控件中。其作用是分配线性布局中的剩余空间到该控件上。

(5) android:layout_width

用于设置布局的宽度,其值可以是具体的尺寸,如50dp

  • fill_parent: 表示该布局的宽度与父容器(从根元素讲是屏幕)的宽度相同。
  • match_parent:与fill_parent的作用相同,从Android 2.2开始推荐使用match_parent。
  • wrap_content:表示该布局的宽度恰好能包裹他的内容。

(6) android:layout_height

用于设置布局的高度,其值可以是具体的尺寸,如50dp

  • fill_parent: 表示该布局的宽度与父容器的高度相同。
  • match_parent:与fill_parent的作用相同,从Android 2.2开始推荐使用match_parent。
  • wrap_content:表示该布局的高度恰好能包裹他的内容。

(7) android:background

用于设置布局背景,其值可以引用图片资源,也可以是颜色资源

(8) android:layout_margin

用于设置当前布局与屏幕边界、周围布局或控件的距离。属性值为具体的尺寸,如50dp。
与之相似的还有android:layout_marginTop、android:layout_marginBottom、android:layout_marginLeft、android:layout_marginRight属性,分别用于设置当前布局与屏幕、周围布局或者控件的上下左右边界的距离。

(9) android:padding

用于设置当前布局内控件与该布局的距离,其值可以是具体的尺寸,如50dp。与之相似的还有android:paddingTop、android:paddingBottom、android:paddingLeft、android:paddingRight属性,分别用于设置当前布局中控件与该布局上下左右的距离。
需要注意的是,Android系统提供的五种常用布局必须设置android:layout_width和android:layout_height属性指定其宽高,其他的属性可以根据需求进行设置。

二、FrameLayout(框架布局/帧布局)

​ 1、特点:

最纯净的布局。在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。

​ 2、适⽤场景:

在开发中常做容器使⽤,⽤于动态添加布局对象,⽐如浏览单张图⽚这类的、实现时钟等,秒针覆盖时针和分针。

​ 3、优缺点:

优点:高效,占用内存相对来说也是较小的

​        缺点:简单

4、常用属性

​         FrameLayout布局的属性有android:foreground和android:foregroundGravity。android:foreground属性:属性值为图片资源,用于设置前景图片,意思是此图片是位于所有组件之上,不管添加顺序。

​         android:foregroundGravity属性:用于设置前景图片在布局中的位置,属性值与android:gravity一样。如果不设置此属性,则前景图片不管有多小都默认充满整个布局,如果设置了,就在相应位置以图片实际大小显示。

三、TableLayout(表格布局)

​1、 特点:

以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。当为View时,该View将独占一行。

​2、 适⽤场景:

适⽤于多⾏多列的表格形式。

​         父属性设置拉伸和隐藏列

​         子属性设置在第几列显示 和横跨几列

四、GridLayout(网格布局)

​         GridLayout布局是Android4.0以后引入的新布局,和TableLayout(表格布局)有点类似,不过它功能更多,也更灵活(TableLayout不能对行进行合并,只能对列进行合并), 可以自定义网格布局有多少行,多少列 可以直接设置组件位于某行某列 可以设置组件横跨几行或者几列。

五、RelativeLayout(相对布局)

​ 1、特点:

以某⼀个⼦元素为参照物,其余⼦元素均按照其相对位置来完成布局。

适⽤场景:其属性很好的弥补了LinearLayout的缺点,该布局是⽬前最推荐的⼀种布局⽅式

​ 2、优缺点:

例如在修改了某⼀个控件的属性时,其他依赖于该控件的其他控件可能都需要修改其属性。

六、AbsoluteLayout(绝对布局)

​ 1、特点:、

采用坐标轴的方式定位组件,左上角是(0,0)点,往右x轴递增,往下Y轴递增,组件定位属性为android:layout_x和 android:layout_y来确定坐标。

​ 2、应用场景:

准确定位空间位置

​ 3、缺点:

Android手机的屏幕尺寸、分辨率存在较大差异,使用AbsoluteLayout无法兼顾适配问题,所以该布局已经过时。

七、ConstraintLayout (约束布局-目前官方推荐的布局)

​         主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整控件,利用元素属性很方便的自适应布局,从 Android Studio 2.3 起,官方的模板默认使用 ConstraintLayout。

​         ConstraintLayout布局中的子控件需要约束关系,控件的相互依赖,这有点像相对布局 ,但是约束布局的功能更加强大,它很方便的在编辑器上进行添加删除控件,并设置属性值,简化操作。

Android 常用布局介绍相关推荐

  1. android layout布局 有哪些,Android 常用布局 介绍与使用

    读前思考 学习一门技术或者看一篇文章最好的方式就是带着问题去学习,这样才能在过程中有茅塞顿开.灯火阑珊的感觉,记忆也会更深刻. 有哪些常用的布局? 每一种布局有何特点与不同? 布局上如何优化? 1. ...

  2. Android开发:1-3、Android常用布局

    Android常用布局 常用6大布局: 常用XML布局属性: 常用6大布局: 常用XML布局属性: 1.线性布局: 1.android:orientation=" " 线性布局中的 ...

  3. Android UI -- 布局介绍(布局包括FrameLayout, LinearLayout, RelativeLayout, GridLayout)

    首先介绍常用布局类 FrameLayout 最简单的布局管理器. 这个布局管理类有几个特性: 添加组件默认在左上角的. 如果添加多个组件会叠加到一起,并且都在左上角.(可以通过一gravity属性改变 ...

  4. android使用桢布局,Android 常用布局

    Android的布局有: LinearLayout线性布局 RelativeLayout            相对布局 FrameLayout单桢布局 TableLayout表格布局 GridLay ...

  5. Android常用布局之TableLayout(表格布局)

    概述: TableLayout(即表格布局) 当TableLayout下面写控件.则控件占据一行的大小.(自适应一行,不留空白) 但是,想要多个组件占据一行,则配合TableRow实现 TableLa ...

  6. Android常用布局之AbsoluteLayout(绝对布局)

    绝对布局:需要指定子元素的 x,y 精确坐标的布局. 缺点: 绝对布局缺乏灵活性,在没有绝对定位的情况下相比其他类型的布局更难维护,不建议使用. 因为绝对布局,我们开发的应用需要在很多的机型上面进行一 ...

  7. android 常用布局组件,Android六大基本布局

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一.基本理论 Android六大基本布局分别是: 线性布局LinearLayout. 表格布局TableLayout. ...

  8. Android 常用布局单位区别(dp、sp、px、pt、in、mm)

    一.简介 Android 在 UI 布局时经常用到一些单位,对单位混用直接会影响 UI 的显示,要想正确的在布局中使用每种单位就必须先真正的熟悉它. UI 显示效果的影响因素:屏幕尺寸.屏幕密度.分辨 ...

  9. Android常用布局-线性布局和相对布局

    1. 线性布局 LinearLayout 线性布局分为水平和垂直两个方向,优点是简单可嵌套,缺点是只能在一个方向进行布局,而且嵌套过多可能存在风险. 1. 标签:<LinearLayout /& ...

  10. Android 抽象布局介绍和简单的使用

    Android 的原生的抽象布局一共有3个 include   ViewStub    merge ,每一个都很强大,让我们在实际开发中省去不少时间 < include> 标签    一个 ...

最新文章

  1. 【H.264】x264命令详解:x264 --fullhelp
  2. 昨天晚上,亲眼目睹了我一哥们的崩溃,被空降90后上司鄙视,说他这种人在公司......
  3. C 语言编程 — 编程实践
  4. B端设计指南-表格设计的常见问题
  5. 使用T-SQL找出执行时间过长的作业
  6. 插件properties_Mybatis3系列 - 4. mybatis-config的properties属性详解
  7. vector添加元素java_在Java中的Vector中间添加元素
  8. L2-027 名人堂与代金券-PAT团体程序设计天梯赛GPLT
  9. [转载] Flask+Celery+Redis简单操作
  10. Amoeba 实现Mysql的读写分离
  11. Nginx 作为静态资源服务器,配置静态资源下载
  12. 计算机网络实验(二)2交换机的基本配置与管理
  13. 台式计算机输入设备,简述常用的输入设备和输出设备有哪些 – 手机爱问
  14. python训练自己中文语料库_中文语料库构建过程详细教程
  15. 抖音小店无货源,怎么操作可以出单?资深电商人在线分享
  16. saltstack配置管理和数据系统
  17. 1020:Anniversary Cake
  18. latex 的“对号”的几种表示
  19. 打开Adobe Premiere Pro提示系统错误
  20. QTabelWidget表格的插入、删除、更新、动态滑动条以及配合QFile进行表格内容的长期存储

热门文章

  1. win7中怎么显示文件名后缀
  2. 硬盘安装Win7全攻略(图解)
  3. 微软Kinect是怎么做到的
  4. 求一元二次方程的解法c语言,有什么方法求一元二次方程求解決一元二次方程的解法要详细...
  5. 什么是商业数据分析师?
  6. AXI总线学习-------从零开始详细学-------------连载(6)读写处理架构,burst介绍,burst细节定义(burst size burst length)
  7. Bluefish 1.1.3
  8. eclipse启动报错,显示找不到指定路径的JRE
  9. Redis-Lua脚本(集成SpringBoot工程)
  10. JAVA WEB毕业设计