仓廪实则知礼节,衣食足则知荣辱。这篇文章主要讲述Android学习笔记六:六大布局相关的知识,希望能为你提供帮助。
六大界面布局方式包括:
线性布局(LinearLayout)、帧布局(FrameLayout)、表格布局(TableLayout)、相对布局(RelativeLayout)、绝对布局(AbsoluteLayout)和网格布局(GridLayout)
。
1. LinearLayout线性布局LinearLayout容器中的组件一个挨一个排列,通过控制android:orientation属性,可控制各组件是横向排列还是纵向排列。
LinearLayout的常用XML属性及相关方法
XML属性 | 相关方法 | 说明 |
---|---|---|
android:gravity | setGravity(int) | 设置布局管理器内组件的对齐方式 |
android:orientation | setOrientation(int) | 设置布局管理器内组件的排列方式,可以设置为horizontal、vertical两个值之一 |
LinearLayout子元素支持的常用XML属性及方法
【Android学习笔记六(六大布局)】
XML属性 | 说明 |
---|---|
android:layout_gravity | 指定该子元素在LinearLayout中的对齐方式 |
android:layout_weight | 指定子元素在LinearLayout中所占的权重 |
2. TableLayout表格布局TableLayout继承自Linearout,本质上仍然是线性布局管理器。表格布局采用行、列的形式来管理UI组件,并不需要明确地声明包含多少行、多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。
每向TableLayout中添加一个TableRow就代表一行;
每向TableRow中添加一个一个子组件就表示一列,可以通过android:layout_span="n"设置子组件占据n列;
如果直接向TableLayout添加组件,那么该组件将直接占用一行;
3. FrameLayout帧布局FrameLayout直接继承自ViewGroup组件。帧布局为每个加入其中的组件创建一个空白的区域(称为一帧),每个子组件占据一帧,这些帧会根据gravity属性执行自动对齐。
如果在同一个地方定义了多个控件,则后面的控件覆盖前面的空间。
4. RelativeLayout相对布局 RelativeLayout.LayoutParams里只能设为boolean的XML属性
XML属性 | 说明 |
---|---|
android:layout_centerHorizontal | 设置该子组件是否位于布局容器的水平居中 |
android:layout_centerVertical | |
android:layout_centerParent | |
android:layout_alignParentBottom | |
android:layout_alignParentLeft | |
android:layout_alignParentRight | |
android:layout_alignParentTop |
XML属性 | 说明 |
---|---|
android:layout_toRightOf | 控制该子组件位于给出ID组件的右侧 |
android:layout_toLeftOf | |
android:layout_above | |
android:layout_below | |
android:layout_alignTop | |
android:layout_alignBottom | |
android:layout_alignRight | |
android:layout_alignLeft |
GridLayout提供了setRowCount(int)和setColumnCount(int)方法来控制该网格的行和列的数量。
GridLayout常用的XML属性和方法说明
XML属性 | 相关方法 | 说明 |
---|---|---|
android:alignmentMode | setAlignmentMode(int) | 设置该布局管理器采用的对齐模式 |
android:columnCount | setColumnCount(int) | 设置该网格的列数量 |
android:columnOrderPreserved | setColumnOrderPreserved(boolean) | 设置该网格容器是否保留序列号 |
android:roeCount | setRowCount(int) | 设置该网格的行数量 |
android:rowOrderPreserved | setRowOrderPreserved(boolean) | 设置该网格容器是否保留行序号 |
android:useDefaultMargins | setUseDefaultMargins(boolean) | 设置该布局管理器是否使用默认的页边距 |
XML属性 | 说明 |
---|---|
android:layout_column | 设置该组件在GridLayout的第几列 |
android:layout_columnSpan | 设置该子组件在GridLayout横向上跨几列 |
android:layout_gravity | 设置该子组件采用何种方式占据该网格的空间 |
android:layout_row | 设置该子组件在GridLayout的第几行 |
android:layout_rowSpan | 设置该子组件在GridLayout纵向上跨几行 |
- layour_x;
- layout_y;
推荐阅读
- appium===报错Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without
- 教育视频直播APP开发软件
- C# 读写App.config配置文件的方法
- Android启动过程
- Android中实现延时执行操作的几种方法
- Java transient关键字
- Java Scanner类
- Java Writer类
- Java StringWriter类