安卓第4次课:layout布局

、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标签的作用:挡住控件,让其不超出网格的范围

猜你喜欢

转载自blog.csdn.net/weixin_43163062/article/details/82596832