1. 最常用的布局是LinearLayout,RelativeLayout和FrameLayout。
2. gravity属性对于LinearLayout和RelativeLayout有效,对FrameLayout无效。
3. laout_gravity属性对于FrameLayout有效,对于LinearLayout内部元素部分有效(和orientation有关,如果是 vertical,则top和bottom无效,反之,则left和right无效),对于RelativeLayout内部元素无效。
(gravity 和 layout_gravity 区别是:layout_gravity定义该view在父容器中位置,而gravity定义组件中的图片文字等在组件中的位置)
4. LinearLayout中的layout_weight属性,由于这个属性有点诡异,如果想正常的发挥作用,其 layout_width(当orientation=horizontal时)或者 layout_height(当orientation=vertical时)最好设成0dp
5. weight属性有点怪,该属性不是数值越大占的比例也就越大,而是越小比例越大。如三个Button的weight分别设为2,1,2.那么他们的长度所占比例分别为 x/2、y/1、z/2,分母设为一致即比例为 1:2:1 。
6. margin和padding的区别不大,一般情况下是可以通用的,但严格来说margin定义组件距离容器之间的空隙,如TextView和父容器,而padding定义在某个组件(如Button)内部的字体或者图像与组件边缘的空隙。
7. margin这个属性,不是上下左右都一定能生效的,一般来说,左上角的margin能生效,右下角的margin就未必了
8. LinearLayout中元素无法直接覆盖,把margin设成负值也是可以覆盖。
9. RelativeLayout和FrameLayout默认都是从左上角开始一层一层的叠上去的,如果上层不设背景或者背景透明的话,下层的东西还是可以可见并且可以点击的,即使看不见了,下层的东西也还是可以被点击到并触发其点击事件。
10. 一般距离大小的单位使用dp,字体大小使用sp,sp不但能随着屏幕尺寸大小而变化而且还能随着用户设置的不同字体调整尺寸。