本文为个人读书笔记,大部分为书中内容摘要。仅供记录和分享学习中遇到的需要留意的问题,如有相关版权问题请及时通知作者。
LinearLayout线性布局
将组建水平或垂直排列,每一行或每一列只能放一个组件,不会换行
可以用XML布局文件定义,也可用Java代码创建。
<LinearLayout xmlns:android="http://schema.android.ccom/apk/res/android"
属性列表>
</LinearLayout>
常用属性:
线性布局管理器支持的属性:
android:orientation 设置组件排列方式,horizontal或vertical,默认vertical
android:gravity 设置组件对齐方式,top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、center、fill、clip_vertical、clip_horizontal。可以同时指定,“|”分隔
android.view.View和android.view.ViewGroup支持的属性:(适用于其他布局管理器)
android:layout_width 设置组件基本宽度,fill_parent、match_parent、wrap_content
android:layout_height 设置组件基本高度,fill_parent、match_parent、wrap_content
android:id 为当前组件设置一个ID属性,在Java代码中可以应用该属性单独引用这个组件。在Java代码中可以通过findViewByID()方法获取
android:background 设置背景图片或颜色、使用Drawable设置图片背景
还可以使用android.view.View类支持的其他属性
AbsoluteLayout绝对布局--不推荐
需要制定子空间的xy精确坐标,可在XML定义或Java代码中new。
FrameLayout框架布局/帧布局
每加入一个组件,都将创建一个新的空白区域(一帧),这些帧根据gravity属性执行自动对齐。默认情况下框架布局从屏幕左上角(0,0)坐标点开始布局,多个组件层叠排序,后面的组件覆盖前面的组件。
可以在XML文件定义,Java文件中new。
FrameLayout支持的常用XML属性
XML属性 | 描述 |
android:foreground | 设置该框架布局容器的前景图像 |
android:foregroundGravity | 定义绘制前景图像的gravity属性 |
RelativeLayout相对布局
按照组件之间的相对位置进行布局。
可在XML文件中定义或Java文件new
RelativeLayout支持的常用XML属性
XML属性 | 描述 |
android:gravity | 设置布局管理器中各子组件的对齐方式 |
android:ignoreGravity | 设置哪个组件不受gravity属性的影响 |
RelativeLayout提供了一个内部类RelativeLayout.LayoutParams
RelativeLayout.LayoutParams支持的常用XML属性
XML属性 | 描述 |
android:layout_above
android:layout_below
android:layout_toLeftOf
android:layout_toRightOf
| 属性值为其他UI组件的id属性,指定该组件位于哪个组件的上方、下方、左侧、右侧 |
android:layout_alignBottom
android:layout_alignLeft
android:layout_alignRight
android:layout_alignTop
| 属性值为其他UI组件的id属性,指定该组件与哪个组件的下边界、左边界、右边界、上边界对齐 |
android:layout_alignParentBottom
android:layout_alignParentLeft
android:layout_alignParentRight
android:layout_alignParentTop
| 属性值为boolean值,指定该组件是否与布局管理器底端、左端、右端、顶端对齐 |
android:layout_centerHorizontal
android:layout_centerVertical
android:layout_centerInParent
| 属性为boolean值,指定该组件是否位于布局管理器的水平中央、垂直中央、中央位置 |
TableLayout表格布局
以行、列的形式管理UI组件,可以添加多个<TableRow>标记,每个占一行。<TableRow>同样是容器,所以该标记中还可以添加组件,每添加一个组件表格增加一列。列可以被隐藏,伸展,强制伸缩。
可在XML文件中定义或Java代码创建
TableLayout继承了LinearLayout,支持LinearLayout所支持的全部XML属性
TableLayout支持的XML属性
XML属性 | 描述 |
android:collapseColumns | 设置需要被隐藏列的列序号,从0开始,逗号分隔 |
android:shrinkColumns | 设置允许被收缩列的列序号,从0开始,逗号分隔 |
android:stretchColumns | 设置允许被拉伸列的列序号,从0开始,逗号分隔 |