安卓的几种布局介绍

简介: 安卓开发工作有相当一部分时间在画布局,而布局构建的好坏也影响到用户的体验和程序功能的健全,而我们最常见的有几种布局: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 <!--父控件的中央-->

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

相关文章
|
5月前
|
XML Android开发 数据安全/隐私保护
10. 【Android教程】网格布局 GridLayout
10. 【Android教程】网格布局 GridLayout
306 1
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
3月前
|
移动开发 监控 前端开发
构建高效Android应用:从优化布局到提升性能
【7月更文挑战第60天】在移动开发领域,一个流畅且响应迅速的应用程序是用户留存的关键。针对Android平台,开发者面临的挑战包括多样化的设备兼容性和性能优化。本文将深入探讨如何通过改进布局设计、内存管理和多线程处理来构建高效的Android应用。我们将剖析布局优化的细节,并讨论最新的Android性能提升策略,以帮助开发者创建更快速、更流畅的用户体验。
67 10
|
5月前
|
Android开发
08. 【Android教程】相对布局 RelativeLayout
08. 【Android教程】相对布局 RelativeLayout
80 0
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
113 0
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
58 1
|
4月前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
130 15
|
3月前
|
XML 数据可视化 API
Android经典实战之约束布局ConstraintLayout的实用技巧和经验
ConstraintLayout是Android中一款强大的布局管理器,它通过视图间的约束轻松创建复杂灵活的界面。相较于传统布局,它提供更高灵活性与性能。基本用法涉及XML定义约束,如视图与父布局对齐。此外,它支持百分比尺寸、偏移量控制等高级功能,并配有ConstraintSet和编辑器辅助设计。合理运用可显著提高布局效率及性能。
239 0
|
3月前
|
Android开发
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
60 0
|
4月前
|
XML Android开发 数据安全/隐私保护
使用RelativeLayout布局Android界面
使用RelativeLayout布局Android界面
下一篇
无影云桌面