Android 中 View 的 margin 和 padding 的区别


介绍

Padding 和 margin 是用于管理在 Android 应用程序中显示的 View 的位置的两个最重要的属性。这两个属性都用于更改 View 的位置,但它们之间存在一些差异。在本文中,我们将探讨 Android 中 View 的 margin 和 padding 之间有什么区别?

什么是 Android 中的 padding?

Padding 是我们必须显示的内容与其边框之间存在的空间。Padding 用于在内容内创建额外的空间。

我们可以从任何特定的一侧为小部件添加 padding。根据需要,我们可以从左、右、上或下添加 padding。

语法

android:padding="Size in dp"

说明:以上 padding 语法用于指定 View 四周的 padding。

android:paddingStart="Size in dp"
android:paddingLeft="Size in dp"

说明:以上 padding 语法用于指定左侧的 padding。我们可以使用 paddingStart 或 paddingLeft 为 View 的左侧添加 padding。

android:paddingEnd="Size in dp"
android:paddingRight="Size in dp"

说明:以上 padding 语法用于指定右侧的 padding。我们可以使用 paddingEnd 或 paddingRight 为 View 的右侧添加 padding。

android:paddingTop="Size in dp"

说明:以上 padding 语法用于指定 View 上侧的 padding。

android:paddingBottom="Size in dp"

说明:以上 padding 语法用于指定 View 下侧的 padding。

什么是 Android 中的 margin?

Margin 是 View 与其直接兄弟或父 View 之间的距离。Margin 用于在两个不同的 View 之间创建视觉分离。

我们可以从任何特定的一侧为小部件添加 margin。根据需要,我们可以从左、右、上或下添加 margin。

语法

android:layout_margin="size in dp"

说明:以上 margin 语法用于指定 View 四周的 padding。

android:layout_marginStart="size in dp"
android:layout_marginLeft="size in dp"

说明:以上 margin 语法用于指定左侧的 margin。我们可以使用 marginStart 或 marginLeft 为 View 的左侧添加 margin。

android:marginEnd="Size in dp"
android:marginRight="Size in dp"

说明:以上 margin 语法用于指定右侧的 margin。我们可以使用 marginEnd 或 marginRight 为 View 的右侧添加 padding。

android:marginTop="Size in dp"

说明:以上 margin 语法用于指定 View 上侧的 margin。

android:marginBottom="Size in dp"

说明:以上 margin 语法用于指定 View 下侧的 margin。

Android 中 Margin 和 Padding 的区别

Margin

Padding

Margin 定义了 View 边界外的额外空间。

Padding 定义了 View 边界内的额外空间。

Margin 用于在两个 View 之间创建额外空间。

Padding 用于在 View 内容周围创建额外空间。

Margin 影响 View 边界外的布局。

Padding 影响 View 边界内的布局。

Margin 不受 View 背景颜色的影响。

Padding 受 View 背景颜色的影响。

示例

我们将创建一个简单的应用程序,在其中我们将简单地显示一个按钮,并逐一从各个方向为其添加 padding 并进行测试。

步骤 1:在 Android Studio 中创建新项目

导航到 Android Studio,如下面的屏幕所示。在下面的屏幕中,单击“新建项目”以创建新的 Android Studio 项目。

单击“新建项目”后,您将看到下面的屏幕。

在此屏幕中,我们只需选择“空活动”并单击“下一步”。单击“下一步”后,您将看到下面的屏幕。

在此屏幕中,我们只需指定项目名称。然后将自动生成包名。

注意:确保选择 Kotlin 作为语言。

指定所有详细信息后,单击“完成”以创建新的 Android Studio 项目。

创建项目后,我们将看到两个打开的文件,即 activity_main.xml 和 MainActivity.kt 文件。

步骤 2:使用 activity_main.xml

示例 1:从所有方向添加 padding

使用 activity_main.xml 文件。

语法

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   tools:context=".MainActivity">
   <!-- on below line creating a text view for displaying heading -->
   <TextView
       android:id="@+id/idTVHeading"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginTop="30dp"
       android:text="Margin VS Padding"
       android:textAlignment="center"
       android:textAllCaps="false"
       android:textColor="@color/black"
       android:textSize="20sp"
       android:textStyle="bold" />
   <!-- on below line creating a text view for displaying the margin text view -->
   <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/idTVHeading"
       android:layout_centerHorizontal="true"
       android:layout_margin="20dp"
       android:text="Margin text view"
       android:id="@+id/idTVMargin"
       android:textAlignment="center"
       android:textColor="@color/black"
       android:textSize="18sp" />
   <!-- on below line creating a text view for displaying the padding text view -->
   <TextView
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_below="@id/idTVMargin"
       android:id="@+id/idTVPadding"
       android:layout_centerHorizontal="true"
       android:padding="20dp"
       android:text="Padding text view"
       android:textAlignment="center"
       android:textColor="@color/black"
       android:textSize="18sp" />
</RelativeLayout>

说明:在上面的代码中,根元素是 Android 中的相对布局。此布局是一个 View 组,用于将所有元素彼此相对地对齐。借助 ID 或位置,我们可以相对地对齐相对布局中的所有元素。

在此相对布局内,我们创建了一个 TextView,用于显示应用程序的标题。之后,我们创建了另一个 TextView,为此 TextView 添加了 margin,之后我们创建了另一个 TextView,并从所有方向为其添加了 padding。对于这两个 TextView,我们都指定了背景颜色,然后从所有方向为每个 TextView 添加了 padding 和 margin。

输出

结论

在以上教程中,我们学习了 Android 中 margin 和 padding 之间的区别,以及如何在应用程序中使用它们来相对于应用程序中的其他 View 移动 View。

更新时间: 2023年5月9日

3K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.