Android开发中,华丽的界面是由多个控件组合而成,而每个控件又有许多的属性,其中的一些属性在使用中很容易混淆,下面我们就来一起对比着看一看。
正文
1. margin 和 padding
-
padding(内边距)
指控件内容与控件边界的距离。
android:padding:设置本元素内容离本元素四边缘相同的距离
android:paddingStart:本元素内容离本元素开始位置的距离
android:paddingEnd:本元素内容离本元素结束位置的距离
android:paddingLeft:本元素内容离本元素左边缘的距离
android:paddingRight:本元素内容离本元素右边缘的距离
android:paddingTop:本元素内容离本元素上边缘的距离
android:paddingBottom: 本元素内容离本元素下边缘的距离 -
margin:(外边距)
指控件与控件间的距离
android:layout_margin:设置离某元素四边缘相同的距离
android:layout_marginStart:离某元素开始位置的距离
android:layout_marginEnd:离某元素结束位置的距离
android:layout_marginLeft:离某元素左边缘的距离
android:layout_marginRight:离某元素右边缘的距离
android:layout_marginTop:离某元素上边缘的距离
android:layout_marginBottom:离某元素底边缘的距离
margin一般用来描述控件间位置关系,而padding一般描述控件内容和控件的位置关系。margin 和 padding原理如下图所示:
![](https://img.haomeiwen.com/i4625401/50f622ecfa59997b.png)
2. gravity 和 layout_gravity
- android:gravity:是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。
- android:layout_gravity:是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。
这两个属性可选的值有:top
、bottom
、left
、right
、center_vertical
、fill_vertical
、center_horizontal
、fill_horizontal
、center
、fill
、clip_vertical
一个属性可以包含多个值,需用“ | ”分开。例如:
android:gravity="right|bottom"
android:layout_gravity="bottom|center_horizontal"
属性值 | 描述 |
---|---|
top | 将对象放在其容器的顶部,不改变其大小。 |
bottom | 将对象放在其容器的底部,不改变其大小。 |
left | 将对象放在其容器的左侧,不改变其大小。 |
right | 将对象放在其容器的右侧,不改变其大小。 |
center | 将对象横纵居中,不改变其大小。 |
center_horizontal | 将对象横向居中,不改变其大小。水平对齐方式:水平方向上居中对齐。 |
center_vertical | 将对象纵向居中,不改变其大小。垂直对齐方式:垂直方向上居中对齐。 |
fill | 必要的时候增加对象的横纵向大小,以完全充满其容器。 |
fill_vertical | 必要的时候增加对象的纵向大小,以完全充满其容器。垂直方向填充。 |
fill_horizontal | 必要的时候增加对象的横向大小,以完全充满其容器。水平方向填充。 |
clip_vertical | 附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容。剪切基于其纵向对齐设置:顶部对齐时剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部。垂直方向裁剪。 |
clip_horizontal | 附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容。剪切基于其横向对齐设置:左侧对齐时剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧。水平方向裁剪。 |
3. alignStart、toStartOf 和 alignParentStart
- android:layout_alignStart:本元素与某元素开始位置对齐
- android:layout_toStartOf:在某元素的开始位置
- android:layout_alignParentStart:本元素与父控件的开始位置对齐
4. alignEnd、toEndOf 和 alignParentEnd
- android:layout_alignEnd:本元素与某元素结束位置对齐
- android:layout_toEndOf:在某元素的结束位置
- android:layout_alignParentEnd:本元素与父控件的结束位置对齐
5. above、alignTop 和 alignParentTop
- android:layout_above:在某元素的上方
- android:layout_alignTop:本元素的上边缘和某元素的的上边缘对齐
- android:layout_alignParentTop:贴紧父元素的上边缘
6. below、alignBottom 和 alignParentBottom
- android:layout_below:在某元素的下方
- android:layout_alignBottom:本元素的下边缘和某元素的的下边缘对齐
- android:layout_alignParentBottom:贴紧父元素的下边缘
7. toLeftOf、alignLeft 和 alignParentLeft
- android:layout_toLeftOf:在某元素的左边
- android:layout_alignLeft:本元素的左边缘和某元素的的左边缘对齐
- android:layout_alignParentLeft:贴紧父元素的左边缘
8. toRightOf、alignRight 和 alignParentRight
- android:layout_toRightOf:在某元素的右边
- android:layout_alignRight:本元素的右边缘和某元素的的右边缘对齐
- android:layout_alignParentRight:贴紧父元素的右边缘
9. centerHrizontal、centerVertical 和 centerInparent
- android:layout_centerHrizontal:若为“true”,该控件将被至于水平方向的中央
- android:layout_centerVertical:若为“true”,该控件将被至于垂直方向的中央
- android:layout_centerInparent:若为“true”,该控件将被至于父控件水平方向和垂直方向的中央
10. maxEms 和 maxLength
- android:maxEms :设置TextView的宽度为N个字符的宽度
- android:maxLength:限制显示的文本长度,超出部分不显示
11. lines、maxLines 和 minLines
- android:lines:设置文本的行数,设置两行就显示两行,即使第二行没有数据。
- android:maxLines:设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示
- android:minLines:设置文本的最小行数,与lines类似
12. lineSpacingExtra 和 lineSpacingMultiplier
- android:lineSpacingExtra: 设置行间距
- android:lineSpacingMultiplier:设置行间距的倍数
结语
希望通过上面的介绍,可以帮助大家更清楚地了解这些属性,能够地正确灵活地使用。
网友评论