安卓的几种布局介绍

简介: 安卓开发工作有相当一部分时间在画布局,而布局构建的好坏也影响到用户的体验和程序功能的健全,而我们最常见的有几种布局:LinearLayout(线性布局)、TableLayout(表格布局)、RelativeLayout(相对布局)、FrameLayout(帧布局)、AbsoluteLayout(绝对布局)、GridLayout(网格布局)、ConstraintLayout(约束布局)。

七大基本布局的继承关系

网络异常,图片无法展示
|

Android布局的XML关系图

网络异常,图片无法展示
|

而工作上常用的是其中的LinearLayout(线性布局)、RelativeLayout(相对布局)、FrameLayout(层布局)以及ConstraintLayout(约束布局)。

这几个当中ConstraintLayout(约束布局)我们可以理解为增强版/升级版的相对布局(RelativeLayout)。Android Studio 从版本2.3开始创建xml默认的根布局就是约束布局,那么既然已经有相对布局了,为什么还要用约束布局呢?最核心就是:让布局扁平化,减少布局嵌套的层次,提高渲染效率,提升应用性能。可是在具体应用中我们还是少不了LinearLayout(线性布局)、RelativeLayout(相对布局)的一些嵌套使用,在不要求高宽比和一些特殊显示的情况下我都很容易就选择使用了传统的布局构建。所以我们介绍一下LinearLayout(线性布局)、RelativeLayout(相对布局)的一些属性:

LinearLayout(线性布局)

 “android:orientation” 控制方向

属性值: 垂直 (vertical) 和水平(horizontal) ,默认水平方向。

“android:gravity:” 内部控件对齐方式

常用属性值: center、center_vertical、center_horizontal、top、bottom、left、right等。

注: android:gravity 在布局组件 RelativeLayout、TableLayout 中也有使用,其中,在 FrameLayout、AbsoluteLayout 则没有这个属性。

center: 居中显示

注: 这里并不是表示显示在 LinearLayout 的中心,当 LinearLayout 线性方向为垂直方向时,center 表示水平居中,但是并不能垂直居中,此时等同于 center_horizontal 的作用;同样当线性方向为水平方向时,center 表示垂直居中,等同于 center_vertical。top、bottom、left、right 顾名思义为内部控件居顶、低、左、右布局。这里要与 android:layout_gravity 区分开,layout_gravity 是用来设置自身相对于父元素的布局。

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

注: 使用权重一般要把分配该权重方向的长度设置为零,比如在水平方向分配权重,就把 width 设置为零。

RelativeLayout(相对布局)

可以替换一些嵌套视图,当我们用 LinearLayout 来实现一个简单的布局但又使用了过多的嵌套时,我们常常就会使用RelativeLayout重新布局。(过多嵌套会导致性能变差) 1、相对于父控件,例如:android:layout_alignParentTop=“true”

android:layout_alignParentTop <!--控件的顶部与父控件的顶部对齐-->
android:layout_alignParentBottom<!--  控件的底部与父控件的底部对齐-->
android:layout_alignParentLeft  <!--控件的左部与父控件的左部对齐-->
android:layout_alignParentRight <!--控件的右部与父控件的右部对齐-->

2、相对给定Id控件:

android:layout_above      <!--控件的底部置于给定ID的控件之上-->
android:layout_below          <!--控件的底部置于给定ID的控件之下-->
android:layout_toLeftOf   <!-- 控件的右边缘与给定ID的控件左边缘对齐-->
android:layout_toRightOf        <!--控件的左边缘与给定ID的控件右边缘对齐-->
android:layout_alignBaseline    <!--控件的baseline与给定ID的baseline对齐-->
android:layout_alignTop         <!--控件的顶部边缘与给定ID的顶部边缘对齐-->
android:layout_alignBottom      <!--控件的底部边缘与给定ID的底部边缘对齐-->
android:layout_alignLeft        <!--控件的左边缘与给定ID的左边缘对齐-->
android:layout_alignRight       <!--控件的右边缘与给定ID的右边缘对齐-->

3、居中:

android:layout_centerHorizontal <!--水平居中-->
android:layout_centerVertical <!--垂直居中-->
android:layout_centerInParent <!--父控件的中央-->

每天记录一些基础知识,这样就不会忘却它们,否则有些时候经常不知道该去使用哪个属性去控制,另外就是需要多加练习,用的多自然就熟练,后续还会增加其他布局的相关知识点与理解。

相关文章
|
8月前
|
XML 前端开发 Android开发
Android XML 布局基础(四)内外边距(margin、padding)
Android XML 布局基础(四)内外边距(margin、padding)
168 0
|
8月前
|
编解码 Android开发
Android 常用布局单位区别(dp、sp、px、pt、in、mm)
Android 常用布局单位区别(dp、sp、px、pt、in、mm)
297 0
|
4月前
|
Android开发
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )
121 0
|
4月前
|
Android开发 容器
Android开发,学习LinearLayout布局
Android开发,学习LinearLayout布局
38 0
|
4月前
|
XML Java Android开发
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
36 0
|
4月前
|
XML Java Android开发
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
58 0
|
4月前
|
Android开发 容器
Android开发第二次课 布局方式
Android开发第二次课 布局方式
23 0
|
6月前
|
XML 前端开发 Android开发
android 前端常用布局文件升级总结(一)
android 前端常用布局文件升级总结(一)
|
8月前
|
Android开发
Android 使用DataBinding时 将布局页面转换为数据绑定布局(Convert to data binding layout) 不出现提示解决办法
Android 使用DataBinding时 将布局页面转换为数据绑定布局(Convert to data binding layout) 不出现提示解决办法
90 0
|
8月前
|
Android开发
Android 实现布局的缩小和再放大动画(使用scale动画效果进行实现)
Android 实现布局的缩小和再放大动画(使用scale动画效果进行实现)
577 0