添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在 Android 中,所有的 UI 元素都是通过 View 和 ViewGroup 构建的,两者之间也可以相互嵌套。这里直接引用 Android.view.View 类全貌【思维导图】 里面的视图类 View 及子类的继承关系图:
视图类View及子类的继承关系图

从上图中可以看出所有的布局控件都直接/间接继承了 ViewGroup,所以它们都支持 ViewGroup 的属性:

android:id android:layout_width android:layout_height android:background android:layout_margin 布局外边距 android:padding 布局内边距 android:minWidth 布局最小宽度 android:minHeight 布局最小高度

RelativeLayout(相对布局)

相对布局可以设置某一个视图相对于其他视图的位置,即是以其他控件或父容器为参照物设置位置的。常用属性:

类型属性描述 相对父级android:layout_centerInParent相对父级水平垂直居中 android:layout_centerVertical相对父级垂直居中 android:layout_centerHorizontal相对父级水平居中 android:layout_centeralignParentTop相对父级顶部对齐 android:layout_centeralignParentRight父级水右对齐 android:layout_centeralignParentBottom父级水底部对齐 android:layout_centeralignParentLeft父级水左对齐 相对兄弟android:layout_above在某个控件上方 android:layout_below在某个控件下方 android:layout_toLeftOf在某个控件左侧 android:layout_toRightOf在某个控件右侧 android:layout_alginTop与某个控件顶部对齐 android:layout_alginBottom与某个控件底部对齐 android:layout_alginLeft与某个控件左侧对齐 android:layout_alginRight与某个控件右侧对齐

LinearLayout(线性布局)

线性布局是最常用的布局方式,可分为水平线性布局和垂直线性布局。常用属性:

android:orientation 布局排列方式 android:gravity 相对父级对齐方式 android:layout_gravity 相对父级对齐方式 android:layout_weight 权重,等比划分区域 android:divider android:showDividers 分割线所在位置 none、beginning、end、middle android:dividerPadding 分割线的 padding

RelativeLayout(网格布局)

网格布局是 Android4.0 新增的布局,它实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发。 网格布局用一组无限细的直线将绘图区域分成行、列和单元,并指定控件的显示区域和控件在该区域的显示方式。常用属性:

android:columnCount android:rowCount android:layout_column android:layout_row android:layout_columnSpan android:layout_rowSpan android:dividerPadding 分割线的 padding

TableLayout(表格布局)

表格布局将子元素的位置分配到行或列中,与网格布局不同的是,它不需要明确多少行、多少列。一个 TableLayout 由许多 TableRow 组成,每个 TableRow 都会定义一个 Row。常用属性:

android:stretchColumns 该列被拉伸 android:shrinkColumns 该列被收缩 android:collapseColumns 该列被隐藏 android:layout_column 单元格显示位置 android:layout_span 单元格行数,默认 1 行

FrameLayout(帧布局)

帧布局用于在屏幕上创建一块空白区域,添加到该区域中的每个子控件占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。因此也可以将 FrameLayout 称为堆栈布局,或框架布局。常用属性:

android:foreground 帧容器的前景布局,前景图像永远处于帧布局最上面,不会被覆盖 android:foregroundGravity 前景图像显示位置

RelativeLayout(约束布局)

约束布局是 Android Studio2.2 新添加的布局。 它适合使用可视化的方式编写界面布局,优点是减少嵌套,优化布局,可以直接拖拽的方式布局;缺点也显而易见,修改的时候容易错乱,代码可读性变差。不推荐使用,这里不过多描述。

参考文章:

Android.view.View 类全貌【思维导图】

[越努力,越幸运!]