![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=1739543052-bWAJDKOcJpyooe3GibMwujrrj1luRqVS-0-6d170035eda25c74a98d0dd3b0845461)
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_84_1.jpg?sign=1739543052-A0QDUXEigkT5ezPzbR7aR38xwHle8QOI-0-78baf5e1ef55f7854c5fb82942cd5b23)
在这个例子中,外层布局是 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=1739543052-EX2PuHr6DXwH1xWiwjjpFeSuKkwDPQSF-0-d547905b0a5e02324b9c63dc407e702b)
上述代码通过ohos:left_margin和ohos:top_margin为组件设置了左侧和上侧外边距,而右侧和下侧没有外边距,页面的预览效果如图2-5所示。设置了外边距的方向并没有撑满屏幕,而没有设置外边距的方向撑满了屏幕。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_85_1.jpg?sign=1739543052-AKMvUeakApgzMaIExKsqLSLCDf4qr6w3-0-6dd8b1095aebe3227dbd0292eb20e996)
图2-4 外边距
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_85_2.jpg?sign=1739543052-JChALkChpZGW6e6bohO3S9ToriChGiHD-0-f2817e4cd4f357d68f63ea8e0591dee8)
图2-5 设置左侧和上侧外边距
2.内边距
在上面的内层DependentLayout中添加第三个DependentLayout,它的颜色为深灰色,设置内层DependentLayout的内边距属性。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_85_3.jpg?sign=1739543052-UXHieGxSaW7UohNHW8dB8If5JD1xV8Bm-0-b56bb2004246d7fd383b53126cb29a84)
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_86_1.jpg?sign=1739543052-7Kwpu0n5nVVNIqU86e5gYeTffOgjpS80-0-0dec73477ab30f73194ba5550d857b3e)
当为第二层布局设置内边距后,影响的是其内部的内容,而对外部没有影响,页面的预览效果如图2-6所示。内边距指的是组件内部的内容距离组件边界的距离。这里通过ohos:padding属性直接为四个方向设置了内边距,也可以对各个方向分别设置内边距。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_86_2.jpg?sign=1739543052-EpUcZy750MyGmPOM5tEV2LJ5H41Bt0ry-0-0e9df1712073c25d1f3e8af3fe3ba1b9)
页面的预览效果如图2-7所示。通过ohos:left_padding和ohos:top_padding设置了布局的左侧和上侧内边距。剩下两个方向由于没有设置内边距,撑满了该方向上的父布局。
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_87_1.jpg?sign=1739543052-U1w0QwSj7zKdlyfUiQQ2xjNgzMfbOZgM-0-3a71ebe1a176044e246a13c259d5cda7)
图2-6 内边距
![](https://epubservercos.yuewen.com/0FFABF/23020655009774306/epubprivate/OEBPS/Images/42868_87_2.jpg?sign=1739543052-sKCFGWQym1HwWJAN9Ay17LqxMj0u0x2J-0-0cd7f5b1378b5a8f74abc916d3523449)
图2-7 设置左侧和上侧内边距