概述

布局

  • 布局是Android应用程序的界面定义。
  • 布局中所有界面元素,都是视图(View)对象或试图组(ViewGroup)对象。(视图是数据库的一个独立对象,是一个虚拟表)
  • 一个布局首先是一个视图组对象,然后在视图组对象中添加子视图组对象或者视图对象。
    布局的定义方式
    可以通过两种方式来定义布局:XML定义和代码定义
  • XML定义:运用Android Studio可以快速设计UI布局及包含的界面元素
  • 代码定义:在Java或Kotlin代码中定义布局
  • 在每个应用程序创建时会默认包含一个主界面布局,该布局位于res/layout目录中。
  • 实际开发中每个应用程序都包含多个界面,而程序默认提供一个主界面布局无法满足需求,因此经常会在程序中添加多个布局。
    布局的分类

布局的分类有约束布局、线性布局、帧布局、表格布局、绝对布局、相对布局等
常用布局有以下几种:

  • 约束布局 : 通过相对定位排列
  • 线性布局 : 以水平或垂直方向排列
  • 帧布局 : 帧里的控件(层)叠加
  • 表格布局 :表格形式排列

线性布局

线性布局(LinearLayout)主要以水平或垂直的方式来显示界面中的控件。当控件水平排列时,显示顺序依次为从左到右,当控件垂直排列时,显示顺序依次从上到下。线性布局中,每行或每列中只允许有一个子视图或控件。
LinewrLayout的最主要的属性有:

  • android : gravity : 设置内部控件的显示位置。
  • android :orientation :设置内部控件的排列方向,常量horizontal(默认值)表示水平排列,vertical表示垂直排列。
  • android:layout_weight: 设置内部控件在LinearLayout中所占的权重。当控件使用权重属性时,布局宽度或高度属性值通常设置为0.
 <Buttonandroid:layout_width = "0dp"android:layout_height = "wrap_content"  android:layout_weight = "2"/>

约束布局

约束布局ConstraintLayout是一个ViewGroup,可以在Api9以上的Android系统使用它,它的出现主要是为了解决布局嵌套过多的问题,以灵活的方式定位和调整小部件。

  • ConstraintLayout是Google在2016年的Google I/O大会上提出的一个可以灵活控制子控件的位置和大小的新布局。
  • ConstraintLayout可以在不嵌套ViewGroup的情况下实现非常庞大、复杂的布局,实现扁平化。
  • ConstraintLayout同时具有RelativeLayout和LinearLayout的有点、特点,功能强大。
  • 使用ConstraintLayout来布局时性能比其他布局方式高。
  • ConstraintLayout无论是通过布局管理器拖拽,鼠标控制的形式实现还是使用XML代码去写,都比较方便。

帧布局

帧布局是一种特殊的布局,它以层叠的方式显示布局中的多个控件

  • 帧布局主要掌握以下以下两个属性的使用
1.android:layout_gravity
2.android:visibility
  • 默认情况下,控件位于帧布局的左上角。可通过控件的android:layout_gravity属性控制其位置。
  • android:layout_gravity属性可设置为下列值:
top//控件位于布局顶部
bottom//控件位于布局底部,单独使用时等价于"left|bottom"
left//控件位于布局左侧
right//控件位于布局右侧,单独使用时等价于"top|right"
center//控件位于布局中心
center_vertical//控件位于垂直方向上的中间位置,单独使用时等价于"left|center_vertical"
center_horizontal//控件位于水平方向上的中间位置,单独使用时等价于"top|center_horizontal"
  • gravity的中文意思时“重心”就是表示view横向和纵向停靠的位置
  • android:gravity是对控件本身来说的,是用来设置控件本身的内容应该显示在控件的什么位置,默认值是左侧,也可以用来设置布局中的控件位置
  • android:layout_gravity:是相对于包含该控件的父控件来说的,设置该控件在父控件的什么位置
  • android:visibility
View.VISIALBE//可见,显示到页面
View.INVISIABLE//不可见,但是还是占用位置
View.GONE//隐藏,不可见并且不占用位置

表格布局

表格布局(TableLayout)是以表格形式排列控件的,通过行和列将界面划分为多个单元格,每个单元格都可以添加控件

  • 表格布局需要和TableRow配合使用,每一行都有TableRow对象组成,因此TableRow的数量决定表格的行数。而表格的列数是由包含最多的TableRow决定的,例如第一个TableRow有两个控件,第二个TableRow有三个控件,则表格列数为三
    表格布局属性
布局属性 功能属性
android:strechColumns 设置该列被拉伸
android:shrinkC 设置该列被拉伸
android:collapseColumns 设置该列被隐藏

表格布局控件属性

控件属性 功能描述
android:layout_span 设置该单元格占据几列,默认为一列
android:layout_column 设置该单元显示位置

相对布局

相对布局属性集锦:
相对于兄弟元素

android:layout_below="@id/aaa":在指定View的下方
android:layout_above="@id/xxx":在指定View的上方
android:layout_toLeftOf="@id/bbb":在指定View的左边
android:layout_toRightOf="@id/cccc":在指定View的右边

相对于兄弟元素

android:layout_below="@id/aaa":在指定View的下方
android:layout_above="@id/xxx":在指定View的上方
android:layout_toLeftOf="@id/bbb":在指定View的左边
android:layout_toRightOf="@id/cccc":在指定View的右边

相对于父元素

android:layout_alignParentLeft="true":在父元素内左边
android:layout_alignParentRight="true":在父元素内右边
android:layout_alignParentTop="true":在父元素内顶部
android:layout_alignParentBottom="true":在父元素内底部 

对齐方式

android:layout_centerInParent="true":居中布局
android:layout_centerVertical="true":水平居中布局
android:layout_centerHorizontal="true":垂直居中布局
android:layout_alignTop="@id/xxx":与指定View的上边界一致
android:layout_alignBottom="@id/xxx":与指定View下边界一致
android:layout_alignLeft="@id/xxx":与指定View的左边界一致
android:layout_alignRight="@id/xxx":与指定View的右边界一致间隔
android:layout_marginBottom=""; 离某元素底边缘的距离
android:layout_marginLeft=""; 离某元素左边缘的距离
android:layout_marginRight ="";离某元素右边缘的距离
android:layout_marginTop=""; 离某元素上边缘的距离
android:layout_paddingBottom=""; 离父元素底边缘的距离
android:layout_paddingLeft=""; 离父元素左边缘的距离
android:layout_paddingRight ="";离父元素右边缘的距离
android:layout_paddingTop=""; 离父元素上边缘的距离

之后为android的简单控件https://blog.csdn.net/qq_44164791/article/details/104252517
Android的Activity(活动)https://blog.csdn.net/qq_44164791/article/details/104278506

Android的布局管理相关推荐

  1. 布局管理器android,Android课程---布局管理器之相对布局(一)

    下面示例的是在父容器里如何设置按钮的位置,难度:***,重点是找到一个主按钮,设置它的id,然后根据它来设置其他按钮在父容器的位置. 代码示例: android:layout_width=" ...

  2. Android的布局管理--表格布局

    Android的布局管理–表格布局 在校期间想过自学这个,但是最后选择了学习前端,以下知识点并不记得了 表格布局(TableLayout)是以表格形式排列控件的,通过行和列将界面划分为多个单元,每个单 ...

  3. 一步一步学android之布局管理器——LinearLayout

    线性布局是最基本的一种布局,在基本控件篇幅中用到的都是LinearLayout,线性布局有两种方式,前面也有用到,一种是垂直的(vertical),一种是水平的(horizontal).我们同样来看下 ...

  4. android 布局管理器 各种布局简介

    android中布局管理器是以ViewGroup为基类派生的.分为线性布局(LinearLayout).表格布局(TableLayout).帧布局(FrameLayout).相对布局(Relative ...

  5. 疯狂Android讲义(二)——第二部分:第1组UI组件(布局管理器)

    一.第1组UI组件:布局管理器 Android 的界面组件比较多,不利于掌握它们内在的关系.为了帮助读者更好地掌握Android界面组件的关系,本书将会把这些界面组件按照它们的关联分析,分为几组进行介 ...

  6. 音效管理android,Android之声音管理器《AudioManager》的使用以及音量控制

    以下为网上下载然后拼接-- Android声音管理AudioManager使用 手机都有声音模式,声音.静音还有震动,甚至震动加声音兼备,这些都是手机的基本功能.在Android手机中,我们同样可以通 ...

  7. [zz] Android五大布局Layout详解

    ref: http://blog.csdn.net/llping2011/article/details/9992941?utm_source=tuicool Remark  最常用的:LinearL ...

  8. android表格布局bottom,Android基础_2 Activity线性布局和表格布局

    在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是 ...

  9. UI组件几种常见的布局管理器

    目录 一.线性布局(LinearLayout) 1.android:orientation属性 2.android:layout_gravity属性 3.android:layout_weight属性 ...

最新文章

  1. 手把手教你STM8单片机标准库移植
  2. iOS 11开发教程(十七)iOS11应用视图之使用按钮接收用户输入
  3. java编程器答疑z湖南岚鸿,吐血整理
  4. 图解sqlserver 2000 还原数据库的基本操作
  5. Django - app
  6. 9.关于Unicode字符集
  7. java摘要_java 摘要
  8. matlab算出中心差分方法_方差分析、T检验、卡方分析如何区分?
  9. 案例解析|政府信息化的BI建设应用
  10. 【服务治理】服务治理漫谈
  11. 现在很火爆的外卖返利小程序源码免费分享一套源码
  12. Windows10正式版为什么没有休眠选项?
  13. 【Python】过滤表情字符
  14. DUTOJ1205(大数)
  15. Pose Estimation 入门理解
  16. python 操作word 修改页眉与页脚
  17. easyUI datagrid 控制列隐藏和显示
  18. React-Native搭建Android平台(ZUCC智能终端与移动应用开发lab1)
  19. WiFI 扫描时选择固定频率(只扫2.4G或者5G的AP)
  20. MSM实现tomcat集群的session共享

热门文章

  1. [转贴]虚拟化时记忆体管理:AMD NPT/Intel EPT简介--转自沈洁转自某港澳台同胞
  2. 外卖订单爬虫(美团,饿了么,百度外卖)
  3. CentOS7.4 删除virbr0虚拟网卡
  4. 怎么在30分钟加50个精准微信群?我是这样做的......
  5. ubuntu字体美化
  6. python 3.0以上版本print函数为什么从print 变成print()
  7. CAD软件中AL对齐图形时视图为什么会自动调整?
  8. 【MySQL】内连接,外连接,自连接(详解)
  9. echarts 漏斗图funnel
  10. 纸菠萝引发创业奇想,小伙经营三家店面,做起“插纸”生意