一**、padding内补丁、margin外补丁的区别,以及与内容**
 ①padding意味着该属性所在的主控件中内部布局(子控件)的边距
 ②margin意味着该属性所在的主控件里外部布局(父控件)的边距
 设置padding的好处:
 如果imageview对应的图片比较小,点击不容易点中,通过增加padding可以增大点触敏感度

=======================================================================

二、线性布局(LinearLayout)

1、LinearLayout是一个view组(view group),其包含的所有子view都以一个方向排列,垂直或是水平方向
 2、在LinearLayout使用gravity属性是操控它内部的控件的位置,而TextView使用gravity属性是操控控件中文字的位置,而不能控件本身在布局中的位置改变。
 注意:
 ①LinearLayout中所有的子view依次排列,所以垂直列表的每一行只有一个子view,而不管行有多宽。水平列表只有一个行高(行高由最高子view的高度+padding(填充)来决定)。LinearLayout关注子view之间的margins(边缘)和每个子view的gravity(对齐方式,右、中间或是左对齐)。②LinearLayout也支持用android:layout_weight属性为单个子view指定权重(weight)。这个属性为一个view指定一个非常重要的值,此值指定了该view需要占用屏幕上多大的空间。一个更大的权重值运行子view扩展到填充满其父view的剩余空间。子view能够指定权重值,然后view组中的剩余空间会按照声明的权重所占的比例来分配。默认的权重是0。=======================================================================


三、android:gravity和android:layout_gravity的区别

1、 区别:
 ①android:gravity:控件内部的元素(对内有效)
 ② android:layout_gravity:控件所在父元素的位置(对外生效)
 2、特殊情况:
 ①父元素的android:orientation=“vertical”,layout_gravity 水平设置的相关属性有效
 ②父元素的android:orientation=“horizontal”,layout_gravity 垂直设置的相关属性有效

==================================================================
四、线性布局(LinearLayout )

【 Layout_weight属性的作用】
 1、首先声明只有在Linearlayout中,layout_weight属性才有效。
 2、 它是用来指定(剩余空闲空间)的分割比例,而非按比例分配整个空间。
 3、 另外android:layout_weight会引起争议,是因为在设置该属性的同时,
 设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。
 4、 如果想用layout_weight平均分配空间,正确方式是将layout_width(或layout_height)设置为0dp,
 再通过layout_weight按比例分配空间
 注:关键点在于搞清楚什么是剩余空闲空间

========================================================================
五、帧布局(FrameLayout)

【就好象一张张卡片堆叠上去,后面会盖出前面的】
 注:帧布局有点类似于awt的CardLayout都是把组件一个一个叠加到一起,
 但CardLayout能将下面的组件移上来,但FrameLayout没有提供此功能

=======================================================================
六、相对布局:RelativeLayout

(相对布局窗口内子组件的位置总是相对兄弟组件、父容器来决定的)
 <1>注意:①注意XML中组件的顺序,不然会报错
 ②android新版本中组件的定义顺序没有关系
 <2>RelativeLayout支持的二个xml属性:
 ①android:gravity :设置该布局容器内各子组件的对齐方式
 ②android:ignoreGravity:设置哪个组件不受gravity属性的影响
 <3>控制子组件布局的内部类RalativeLayout.LayoutParams
 ①boolean (相对父元素【alignParent…】)
 ②id型( 相对于指定元素(根据ID指定))
 a.@+id和@id的区别
 b.@+id/x1(添加新ID)
 c. @id/x1(引用此ID)
 ③靠拢动作(layout_toRightOf【向左靠拢】 layout_toLeftOf【向右靠拢】)

========================================================================

七、网格布局:GridLayout

①常用属性:
 <1> GridLayout布局相关属性:rowCount(行)columnCount(列)
 <2>GridLayout中子控件相关属性:
 a.layout_gravity=“fill_horizontal”(水平填充)
 b.layout_gravity=“fill_vertical”(垂直填充)
 c.layout_rowSpan=“n” (占据n行)
 d.layout_columnSpan=“n” (占据n列)
 ②Space标签的作用:挡住控件,让其不超出网格的范围