一.View视图
在Android开发中所有的UI元素都是由View和ViewGroup构建而成的。ViewGroup作为一个容器既可以装载View视图空间,同时也可装载ViewGroup。即一种布局可以嵌套另一种布局。
二.ViewGroup
RelativeLayout
RelativeLayout是Android中一种非常灵活的布局方式,它允许子视图根据彼此之间的相对位置或是相对于父容器的位置进行排列
标签格式如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"> </RelativeLayout>
其中:
- android:layout_width="match_parent" :宽度为父类的最大宽度;即手机的宽度
- android:layout_height="match_parent":长度为父类的最大长度,即手机的长度
- android:gravity="center":指定视图内容在其容器为居中对齐
LinearLayout
-
线性排列:
LinearLayout
可以按照水平(horizontal
)或垂直(vertical
)方向来排列其子视图。通过设置android:orientation
属性为horizontal
或vertical
来指定排列方向,默认是水平方向。 -
权重分配(Weight):通过使用
android:layout_weight
属性,可以为子视图分配额外的空间。这在需要按比例分配屏幕空间时非常有用。例如,在一个水平的LinearLayout
中,如果两个子视图的权重都设为 1,则它们将平分可用宽度。 -
简单易用:由于其直接和直观的布局方式,
LinearLayout
非常适合用于创建简单的界面或者作为复杂布局的一部分。它的学习曲线低,容易上手。
标签格式如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"></LinearLayout>
TableLayout
TableLayout
是 Android 中用于以表格形式排列子视图的布局管理器。它允许开发者通过行和列的形式来组织界面元素,类似于 HTML 中的表格。
-
表格结构:
TableLayout
通过TableRow
来定义表格中的行,每个TableRow
可以包含一个或多个视图作为单元格。这些视图在一行中从左到右依次排列。 -
灵活的列数:每行(
TableRow
)可以有不同的列数,不需要所有行都具有相同的列数。这意味着某些行可以比其他行更宽或者更窄,根据内容自动调整。 -
隐藏列:可以通过设置
android:collapseColumns
属性来指定哪些列应该被隐藏。这对于创建响应式设计非常有用,在不同设备上显示不同的信息量。
标签格式如下:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"android:stretchColumns="2"><!--设置从第三列开始拉伸--><TableRow> </TableRow><!--一行--> </TableLayout>
FrameLayout
FrameLayout
是 Android 中一种非常基础且灵活的布局管理器,主要用于在其内部放置一个单一视图或以堆叠的方式放置多个视图。
-
简单性:
FrameLayout
的设计初衷是显示单个视图,因此它非常简单直接。它的所有子视图默认被放置在容器的左上角(即相对于 FrameLayout 的 (0,0) 坐标位置)。 -
视图堆叠:如果
FrameLayout
包含多个子视图,这些视图会按照它们在 XML 文件中定义的顺序依次堆叠。后添加的视图位于先前添加的视图之上,形成覆盖效果。
标签格式如下:
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"></FrameLayout>
ConstraintLayout
新建的布局默认就是约束布局
ConstraintLayout
是 Android 中一种高度灵活且强大的布局管理器,旨在帮助开发者创建复杂的用户界面,同时减少布局嵌套的层级。以下是 ConstraintLayout
的一些主要特点:
-
双向依赖:每个视图可以通过定义与其它视图或父容器边缘的约束关系来确定其位置和大小。这包括水平、垂直方向上的约束。
-
多种约束类型:
-
相对位置约束:例如,一个视图可以设置为相对于另一个视图的左侧、右侧、顶部或底部。
-
基线对齐:对于文本视图,可以基于文本基线进行对齐。
-
比例尺寸:通过设置宽度或高度的比例值(如
0dp
和app:layout_constraintDimensionRatio
),可以实现自适应尺寸。
-
标签格式:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"></androidx.constraintlayout.widget.ConstraintLayout>