![Hello HarmonyOS!:鸿蒙应用开发从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/437/43738437/b_43738437.jpg)
2.1.4 边距
在进行组件开发时,边距是最常见的属性之一。边距分为padding内边距和 margin 外边距,每种边距又有上、下、左、右四个方向。我们可以分别设置四个方向的内、外边距,也可以通过padding或margin一起设定。为了介绍边距的概念,这里使用DependentLayout来进行演示,DependentLayout是一种布局,我们会在2.2.2节中介绍。下面来看具体的例子。
1.外边距
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_83_2.jpg?sign=1739111094-WuuDuK2R6HarG7pRTFsXfnkQbktk5lge-0-1fca7b3ce939c5d1f89caa45d9ee8981)
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_84_1.jpg?sign=1739111094-YdKwKICmgB8yHH2QmOSXBT9WbWKuRSRo-0-1f7d8e0f2289acf4a0db605e951ce738)
在这个例子中,外层布局是 DependentLayout,在内层也放置了一个DependentLayout,内层 DependentLayout 是浅灰色的,通过 ohos:margin 属性设置了外边距为50vp。页面的预览效果如图2-4所示,上、下、左、右的白色区域边距均为50vp。
虽然设置的内层 DependentLayout 的宽度和高度都为 match_parent,也就是宽度和高度都与其父布局一致。但是由于有外边距存在,并没有撑满整个屏幕,剩余的白色区域属于外层DependentLayout。
还可以分别对各个方向设置外边距,代码如下。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_84_2.jpg?sign=1739111094-zlNt6DtgDeDQrBtvNGwkmYsdaUM8WmPx-0-11c9b0c70d752f45a512bd6b748e8995)
上述代码通过ohos:left_margin和ohos:top_margin为组件设置了左侧和上侧外边距,而右侧和下侧没有外边距,页面的预览效果如图2-5所示。设置了外边距的方向并没有撑满屏幕,而没有设置外边距的方向撑满了屏幕。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_85_1.jpg?sign=1739111094-qkOo8gMv4EGzGYFQ6LbxHs06cIIQ37ay-0-52822f0ed6302c59ed5877db54582e73)
图2-4 外边距
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_85_2.jpg?sign=1739111094-KWiBNgnGdAch0dUKvGHliTs8vhlyJYr7-0-ce9e9e8fed792619d58fca8689e32e47)
图2-5 设置左侧和上侧外边距
2.内边距
在上面的内层DependentLayout中添加第三个DependentLayout,它的颜色为深灰色,设置内层DependentLayout的内边距属性。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_85_3.jpg?sign=1739111094-ziofRvQFRW1j9IHo7WKhn9z9LSGXrb0H-0-e55dab7a193c461e400bc695d49580d9)
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_86_1.jpg?sign=1739111094-WkWuoJsOIgIVKyVGvcdNyJmqpuQ6hzWx-0-214b5242b30ebd40786fdd956ec72495)
当为第二层布局设置内边距后,影响的是其内部的内容,而对外部没有影响,页面的预览效果如图2-6所示。内边距指的是组件内部的内容距离组件边界的距离。这里通过ohos:padding属性直接为四个方向设置了内边距,也可以对各个方向分别设置内边距。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_86_2.jpg?sign=1739111094-diwdld83x4E2r2xs3t415TsUr8rIIfQX-0-5a2679d9c3955d0b663ca553b206fe9b)
页面的预览效果如图2-7所示。通过ohos:left_padding和ohos:top_padding设置了布局的左侧和上侧内边距。剩下两个方向由于没有设置内边距,撑满了该方向上的父布局。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_87_1.jpg?sign=1739111094-w886JoD6J2cEzRLSH1AxrYRwWrQYPh3G-0-4814d9b9f18b13fdf757ac387e0377ea)
图2-6 内边距
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_87_2.jpg?sign=1739111094-gL5EQu6UC7b7pFo249OixKlQMfui5kyp-0-f2152d6a05c2d27141b4af662a835d17)
图2-7 设置左侧和上侧内边距