布局简介
学习Android中不同布局的重要性,并掌握其使用方法。
简介
在 Android 中,布局用于定义屏幕的显示方式。布局可以通过组合 View 和 ViewGroup 来构建。
一个 View(如 Button 或 EditText)是用户可以直接交互的元素。而 ViewGroup 则是一个不可见的容器,用于定义 View 元素以及其他 ViewGroup 容器的排列方式,从而决定屏幕的展示效果。Android 框架允许我们以 XML 文件 的形式声明 UI 元素,或在运行时动态创建它们。从性能角度来看,两种方式效率相当,但通常推荐使用 XML 方式,因为它能将界面代码与控制逻辑分离。
如何定义布局
布局以 XML 文件的形式进行定义。为了让框架识别并将其渲染为 View,我们需要将这些文件保存在项目中的 res/layout 目录下。以下是一个示例布局,展示了一个包含图片和下方文字的简单屏幕。我们将此布局保存为 example_layout.xml。
1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:orientation="vertical"> 7 8 <androidx.appcompat.widget.AppCompatImageView 9 android:src="@mipmap/ic_launcher" 10 android:layout_width="wrap_content" 11 android:layout_height="wrap_content"/> 12 13 <androidx.appcompat.widget.AppCompatTextView 14 android:id="@+id/tv_counter" 15 android:layout_width="match_parent" 16 android:layout_height="wrap_content" 17 tools:text="I am a dummy text"/> 18 19</LinearLayout>
布局文件应以
.xml为扩展名。
如何使用布局
一旦我们在对应的 XML 文件中定义了布局,就需要将该布局的引用传递给适当的方法,以便获取由该布局渲染出的 View 对象。渲染 View 同时也意味着需要管理其生命周期。生命周期可以理解为当前 UI 显示状态的体现。Activity 和 Fragment 是最常见且最具备独立管理生命周期能力的组件,它们能够负责渲染 View。
为了简化开发,这些生命周期感知组件通常提供预定义的回调方法,可用于定义当前屏幕的行为。现在我们知道可以使用 Activity 或 Fragment 将 View 渲染到屏幕上,接下来就可以加载上一节中定义的布局,并在 Activity 中为用户呈现相应的界面。
1override fun onCreate(savedInstanceState: Bundle?) { 2 super.onCreate(savedInstanceState) 3 setContentView(R.layout.example_layout) 4}
- 布局文件的名称必须与保存该文件的文件名一致。
- 必须在
Fragment或Activity的合适生命周期方法中加载布局。
Android 布局的属性
属性用于定义布局中元素的外观。我们可以使用属性来设置单个 View 的样式、位置以及与其他元素的对齐关系。以下是一些最常见的属性:
-
android:id:与View关联的唯一标识符,用于在布局树中唯一标识该视图。 -
android:layout_width:定义View的宽度。其值可以是wrap_content、match_parent,或以密度无关像素(dp)表示的具体数值。 -
android:layout_height:定义View的高度。与layout_width类似,其值也可以是wrap_content、match_parent,或具体的密度无关像素值。 -
android:layout_margin:定义View周围所需的外边距空间。 -
android:padding:定义View内部的内边距空间。
除了上述属性外,还有许多其他属性可用于构建用户界面,我们将在本课程中逐步学习。
Android 中的布局类型
Android 框架提供了多种布局类型,帮助我们根据设计需求实现用户界面。以下是最常用的几种布局:
-
LinearLayout:按垂直或水平方向依次排列子元素,具体方向由orientation属性决定。 -
RelativeLayout:当需要根据其他元素或父容器的位置来定位元素时使用。 -
FrameLayout:通常用于仅显示一个View,多个子视图可重叠显示。 -
ListView:用于展示列表形式的数据项。 -
WebView:用于在应用中嵌入并显示网页内容。
总结
本节课简要介绍了 Android 中最常用的几种布局。框架还提供了其他多种布局,可根据所需界面效果灵活选用。此外,我们还可以通过继承基础类来自定义 View 和 ViewGroup 容器。