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。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP