LinearLayout:
android:orientation 用来决定是垂直布局(vertical)还是水平布局(horizontal)
fill_parent即填满其父元素,当其为顶层元素时才会填满屏幕
wrap_content 类似于自动设置宽带(或高度),但是当即便填满整个父元素都不够的时候,则只能显示那么多,可以利用ScrollView解决
android:layout_weight 视图的权重值,默认为0。如果三个view横列,前两个view的wieght是1,第三个是默认值0。可见第三个view的权weight最低,那么第三个view就只会占用自己内容所需的宽度,剩下的宽度会被前两个view平分。
android:gravity与android:layout_gravity区别
android:gravity表示其子组件在其的位置
android:layout_gravity表示自身在其父组件中的位置
一个通俗的例子,前者用来表示你房子里各个家具(组件)的位置;而后者是表示你房子在镇上的位置。
AbsoluteLayout:
需要指定具体的位置坐标,实际中很少使用
RelativeLayout:
推荐阅读
较灵活,但是要注意防止冲突
一些RelativeLayout用到的一些重要的属性:
第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物
第二类:属性值必须为id的引用名“@id/id-name”android:layout_below 在某元素的下方android:layout_above 在某元素的的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
第三类:属性值为具体的像素值,如30dip(关于dip解释见这里),40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距离
TableLayout:
一个TableLayout由许多TableRow组成,而每个TableRow只会定义一个Row。TableLayout不会显示每个Row、Column或Cell的边框线。每个Row有0或多个Cell,每个Cell有一个View对象。
单元格可为空,但是不能跨列。
collapseColumns – 设置隐藏哪些列,列ID从0开始,多个列的话用”,”分隔
stretchColumns – 设置自动伸展哪些列,列ID从0开始,多个列的话用”,”分隔(即尽量把指定的列填充空白部分)
shrinkColumns -设置自动收缩哪些列,列ID从0开始,多个列的话用”,”分隔(当控件没有布满时,不会收缩)
可以用”*”来表示所有列,同一列可以同时设置为shrinkable和stretchable。
参考
FrameLayout
类似于PS中的图层,相互叠加
这些层的顺序是:最新声明的放到最前面。
最后,强烈推荐,对于UI设计可以使用工具DroidDraw,详情点击这里