安卓有五种布局(五种布局之间可以嵌套混合使用),本文介绍最常用的一种:线性布局(LinearLayout)。
属性 android:orientation
这个属性值有:horizontal、vertical 两种值。
属性 android:layout_width
这个属性值还可以有:match_parent、wrap_content、fill_parent,这其中:match_parent、fill_parent 是一个意思,Google 推荐不要用 fill_parent,可能是因为它觉得这个名称不是很好吧。
属性 android:padding
大多数情况下,需要一个 padding,免得靠边太近,和 CSS 一个意思,也有很多单位,推荐用 dip(device independent pixels(设备独立像素))。
属性 android:layout_weight
注意这里是 weight,别看走眼看成宽度了,这个默认是 0,但特殊布局下需要设置成 > 0 的值,> 0 表示在剩下的空间中我们几个 > 0 的控件按比例分配尺寸。
示例:我们希望实现下面这个效果:
代码:
代码太多,为了介绍方便,我们只介绍重要属性,并以缩进表示标签上下级关系。
最外层先套一个 LinearLayout,然后再在里面套两个 LinearLayout,由于里面的 LinearLayout 需要一行承载多个控件,所以其 orientation 为 horizontal。
然后每行里面再布局 TextView、EditText,由于标签文字固定,所以其 layout_width 可以设置为 wrap_content,而文本框不能这么设置,文本框必须设置成 match_parent,否则当输入文字的时候,文本框会变长,破坏布局。但是此时预览会发现后面的文本框显示不出来(因为挤到最右边的外面去了),所以我们为其加上 layout_weight="1",这样两个文本框就分配除标签以外,屏幕剩余的空间。