Android那些傻傻分不清楚的属性

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原理如下图所示:

《Android那些傻傻分不清楚的属性》 边距效果图

2. gravity 和 layout_gravity
  • android:gravity:是针对控件里的元素来说的,用来控制元素在该控件里的显示位置。
  • android:layout_gravity:是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。

这两个属性可选的值有:topbottomleftrightcenter_verticalfill_verticalcenter_horizontalfill_horizontalcenterfillclip_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:设置行间距的倍数

结语

希望通过上面的介绍,可以帮助大家更清楚地了解这些属性,能够地正确灵活地使用。

    原文作者:翻译不了的声响
    原文地址: https://www.jianshu.com/p/eeaf44274e05
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞