Android笔记07-常用布局属性

概述:关于margin啊align啊padding啊之类属性的区分。顺带复习一下五大类布局。


RelativeLayout—相对布局

这种布局就是要确定参考点,然后其他组件相对此参考点摆放

gravity属性:可以设置组件居中、靠左、靠右

ignore_gravity属性:可以设置不受某组件影响

LinearLayout—线性布局

orientation属性:设置垂直(vertical)和水平(horizontal)布局,必要

layout_weight属性:设置不同组件的分配比例(填充剩余位置)

FrameLayout—帧布局

这种布局以坐标显示,可以一帧一帧地添加覆盖元素

foreground属性:设置前景图片颜色

TableLayout—表格布局

这种布局以表格的形式,只能跨列显示,意思是每一行都得有内容,但是不一定每一列都有内容

====行,设置有几行,可以内置其他组件

collspseColumns属性:隐藏某列

stretchColumns属性:类似填充剩余位置的功能,拉伸某个格子,通常使格子变大

shrinkColumns属性:使得格子变小,以显示其他单元格

小技巧:通常会在主要内容的单元格两边添加可以拉伸的格子,以保证内容单元格永远在中间,如下图所示:

空格子

有内容的格子

空格子

这个格子可以拉伸

这里是内容

这个格子可以拉伸

GridLayout—网格布局

这个布局可以跨行跨列显示,意思是每行每列都可以缺点内容,跟TableLayout区分开来

columnCount属性:最大列

rowCount属性:最小列


以上的布局管理器,其实不能嵌套太多,因为会影响性能


经常混淆的一些属性

  1. alignParentLeft:对其父元素紧贴,而且凡是出现parent字样的都回答TRUE or FALSE
  2. layout_below:相对某一个元素(在xxx之下)
  3. layout_toLeftOf :相对某一元素(在xxx之左)
  4. layout_alignTop :本元素的上边缘和某元素的的上边缘对齐,要回答一个id
  5. layout_marginTop:与某元素上边缘的距离,要回到一个具体像素值,如30dp
  6. layout_paddingLeft:相对边缘的距离,要回答一个像素值

  1. 以上仅出现在RelativeLayout(相对布局)中,凡是有layout_xxx的都是关于相对布局的

总结

  1. margin是跟父元素有关的
  2. padding是跟边缘有关的
  3. align紧贴着的意思