安卓前端知识整合
常见的界面布局
通用属性
android:id 布局的标识
android:layout_width 布局的宽度
android:layout_height 布局的长度
android:background 布局的背景
android:layout_margin 设置当前布局与屏幕边界或与周围控件的距离
android:padding 设置当前布局与该布局中控件的距离
RelativeLayout
相对布局,是通过相对定位的方式指定子控件位置,即以它控件或父容器为参照物,摆放控件位置
相对布局-控件位置属性
控件属性 | 功能描述 |
---|---|
android:layout_centerInParent | 设置当前控件位于父布局的中央位置 |
android:layout_centerVertical | 设置当前控件位于父布局的垂直居中位置 |
android:layout_centerHorizontal | 设置当前控件位于父控件的水平居中位置 |
android:layout_above | 设置当前控件位于某控件上方 |
android:layout_below | 设置当前控件位于某控件下方 |
android:layout_toLeftOf | 设置当前控件位于某控件左侧 |
android:layout_toRightOf | 设置当前控件位于某控件右侧 |
android:layout_alignParentTop | 设置当前控件是否与父控件顶端对齐 |
android:layout_alignParentLeft | 设置当前控件是否与父控件左对齐 |
android:layout_alignParentRight | 设置当前控件是否与父控件右对齐 |
android:layout_alignParentBottom | 设置当前控件是否与父控件底端对齐 |
android:layout_alignTop | 设置当前控件的上边界与某控件的上边界对齐 |
android:layout_alignBottom | 设置当前控件的下边界与某控件的下边界对齐 |
android:layout_alignLeft | 设置当前控件的左边界与某控件的左边界对齐 |
android:layout_alignRight | 设置当前控件的右边界与某控件的右边界对齐 |
LinearLayout
线性布局,主要以水平或垂直的方式来显示界面中的控件。当控件水平排列时,显示顺序以此为从左往右;当控件垂直排列时,显示顺序为从上到下。
**注意事项:**线性布局中的android:layout_width属性值不可设置为wrap_content。因为线性布局的优先级比button搞,如果设置为wrap_content,则button控件的android:layout_weight属性会失效。
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
/>
android:layout_weight:设置权重,当一行中有多个button在一行中占的比例。
ScrollView
滚动布局:LinearLayout能够纵向排列,但是当设置的控件超出手机大小的范围,控件会被隐藏。为了解决这个问题,引入ScrollView布局。ScrollView的特点是:当控件内容超出手机范围时,能自动生成滚动条。
- 垂直滚动:ScrollView
- 水平滚动:HorizontalScrollView
举例:
<ScrollView>
···
</ScrollView>
<HorizontalScrollView>
···
</HorizontalScrollView>
TableLayout表格布局
行列式布局:不需要明确声明含多少行、列,而是通过添加TableRow布局来控制表格的行数,通过在TableRow布局中添加控件来控制表格的列数。
<TableLayout xmls:android="...">
<TableRoe>
UI控件
</TableRoe>
</TableLayout>
TableLayout表格布局属性
布局属性 | 功能描述 |
---|---|
android:stretchColumns | 设置该列被拉伸 |
android:shrinkColunms | 设置该列被收缩 |
android:collapseColumns | 设置该列被隐藏 |
TableLayout表格布局控件属性
控件属性 | 功能描述 |
---|---|
android:layout_column | 设置该单元显示位置 |
android:layout_span | 设置该单元占据几行,默认为1行 |
FrameLayout布局
帧布局:用于在屏幕上创建一块空白区域,添加到该区域中的每个子空间占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。
**注意:**所有控件都默认显示在屏幕左上角
GridLayout
建一块空白区域,添加到该区域中的每个子空间占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。
**注意:**所有控件都默认显示在屏幕左上角
GridLayout
网格布局管理器