android ui几种布局管理器,Android UI 组件 布局管理器

布局管理器:

派生自 ViewGroup ,

作用

使用布局管理器可以适配不同手机屏幕, 具有良好的平台无关性

常用的

布局管理器

LinearLayout 线性布局

TableLayout表格布局

FrameLayout 帧布局

RelativeLayout相对布局

AbsoluteLayout  绝对布局

GridLayout  网格布局

布局管理器

间的

继承关系

1a11f50d9ad5402524c8d9e733797eaf.png

LinearLayout线性布局

将容器内的组件一个挨一个排列起来,可横(纵),无换行 (组件宽度溢出容器时,会对组件进行裁剪)

LinearLayout常用XML属性

XML属性

说明

android:baselineAligned

设置该布局是(true)否(false)与子元素 基线对齐

android:divider

设置垂直布局时两个按钮之间的分隔条

android:gravity

设置布局内组件(子元素)的对齐方式

属性: top, bottom, left, right, center_vertical,center_horizontal,

fill_vertical, fill_horizontal,center, fill,clip_vertical, clip_horizontal;

可用 | 组合多种对齐方式 : 如 left|center_vertical 左侧垂直居中

android:

measureWithLargestChild

该属性为true的时候, 所有**带权重的子元素都会具有最大子元素的最小尺寸

android:orientation

设置布局内组件排列方式, 设置为 horizontal(水平), vertical(垂直)

LinearLayout子元素支持的常用XML属性 (LinearLayout的子元素, 即LinearLayout中的组件)

XML属性

说明

android:layout_gravity

指定该元素在LinearLayout(父容器)的对齐方式, 也就是“该组件本身的对齐方式”, 注意要与android:gravity区分

android:layout_weight

指定该元素在LinearLayout(父容器)中所占的权重,。例如都是1的情况下, 那个方向(LinearLayout的orientation方向)长度都是一样的

TableLayout表格布局

在TableLayout中,一个TableRow就是一个表格行, 同时TableRow也是容器, 每添加一个组件, 就增加了一列;

直接向TableLayout中添加组件, 就相当于直接添加了一行,TableLayout中 列宽由 该列最宽的单元格决定。

表格布局中单元格的行为方式

Shrinkable :  如果某列被设为Shrinkable, 则该列所有单元格宽度可以被收缩, 保证表格能适应父容器的宽度;

Stretchable :  如果某列被设为Stretchable, 则该列所有单元格的宽度可以被拉伸, 保证表格能完全填满表格剩余空间;

Collapsed :  如果某列被设置成Collapsed, 那么该列所有单元格会被隐藏;

TableLayout常用XML属性

XML属性

说明

android:collapsedColumns

设置需要被隐藏的列的序号,   多列序号间用逗号隔开;

android:stretchColumns

设置允许被拉伸的列的序列号, 多个序号间用逗号隔开

android:shrinkableColumns

设置允许被收缩的列的序号, 多个序号间用逗号隔开;

FrameLayout帧布局

帧布局中,每个组件占据一帧(层),这些帧会根据gravity属性执行自动对齐(把组件一个个叠加在一起)

FrameLayout 常用XML属性

XML属性

说明

android:foreground

设置该帧布局 的前景图像

android:foregroundGravity

定义绘制前景图像的 gravity属性(对齐 属性)

‍RelativeLayout相对布局‍

相对布局容器中 子组件的位置是以兄弟组件、父容器的位置作为参照来决定的

RelativeLayout的XML属性

XML属性

说明

android:gravity

设置该布局容器内各子组件的对齐方式

android:ignoreGravity

设置哪个组件不受gravity 属性影响

RelativeLayout.LayoutParams :RelativeLayout提供的内部类,用于控制 相对布局中子组件的布局分布。

RelativeLayout.LayoutParams 只能设为boolean值的XML属性

XML属性

说明

android:layout_centerHorizontal

是否水平居中于父容器中

android:layout_centerVertical

是否垂直居中于父容器中

android:layout_centerInParent

是否位于中央于父容器中

android:layout_alignParentBottom

是否底端对齐于父容器中

android:layout_alignParentTop

是否顶端对齐于父容器中

android:layout_alignParentLeft

是否左边对齐于父容器中

android:layout_alignParentRight

是否右边对齐于父容器中

RelativeLayout.LayoutParams 只能设为其他UI组件ID值的XML属性

XML属性

说明

android:layout_toLeftOf

位于所给 id 组件左侧

android:layout_toRightOf

位于所给 id 组件右侧

android:layout_above

位于所给id组件的上边

android:layout_below

位于所给id组件的下方

android:layout_alignTop

与所给id组件顶部对齐

android:layout_alignBottom

与所给id组件底部对齐

android:layout_alignLeft

与所给id组件左边对齐

android:layout_alignRight

与所给id组件右边对齐

AbsoluteLayout绝对布局

以X坐标,Y坐标来控制组件的位置,布局容器不再管理组件位置, 大小, 这些都可自定义。

AbsoluteLayoutXML属性

XML属性

说明

android:layout_x

指定组件的x坐标

android:layout_y

指定组件的y坐标

android:layout_width

是指定宽度是否充满父容器, 或者仅仅包含子元素的

android:width

指定组件的宽度

‍GridLayout网格布局

GridLayout将整个容器划分成rows * columns个网格 , 每个网格只可放置一个组件. 还可设置一个组件横跨多少列, 多少行。

GridLayout 的XML属性

XML属性

说明

android:alignmentMode

设置网格布局管理器的对齐模式

android:columnCount

设置该网格布局的列数

android:columnOrderPreserved

设置网格容器是否保留列序列号

android:rowCount

设置该网格的行数

android:rowOrderPreserved

设置该网格容器是否保留行序列号

android:useDefaultMargins

设置该布局是否使用默认的页边距

GridLayout.LayoutParams : GridLayout提供的内部类,用于控制 该网络的 行数量 和 列数量。

GridLayout.LayoutParams 的XML属性

XML属性

说明

android:layout_column

设置子组件在GridLayout的第几列

android:layout_columnSpan

设置该子组件在GridLayout中横向跨几列

android:layout_gravity

设置该组件采用何种方式占据该网格的空间

android:layout_row

设置该子组件在GridLayout的第几行

android:layout_rowSpan

设置该子组件在GridLayout中纵向跨几行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到Android开发的UI界面布局教学,有几个重要的概念和技术需要了解。下面我会介绍一些常用的布局方式和相关的教学资源。 1. 线性布局(LinearLayout):线性布局是最常用的布局方式之一,它可以使组件在水平或垂直方向上按照一定的顺序排列。你可以使用`android:orientation`属性来指定布局的方向。详细教程请参考CSDN的[Android开发之线性布局详解](https://blog.csdn.net/u013831257/article/details/52539859)。 2. 相对布局(RelativeLayout):相对布局允许你根据其他组件的位置和关系来定位组件。你可以使用各种规则(如`android:layout_alignParentTop`、`android:layout_below`等)来指定组件相对于父组件或其他组件的位置。详细教程请参考CSDN的[Android开发之相对布局详解](https://blog.csdn.net/u012702547/article/details/52461396)。 3. 约束布局(ConstraintLayout):约束布局是一种相对新的布局方式,它通过将组件之间的关系表示为约束来定位组件。这种布局方式在Android Studio中得到了很好的支持。你可以使用可视化编辑器轻松创建约束布局。详细教程请参考CSDN的[Android开发之约束布局详解](https://blog.csdn.net/u012702547/article/details/52580102)。 除了以上几种常用的布局方式,你还可以了解以下几个方面的内容来完善你的UI界面布局技能: - 使用嵌套布局:将多个布局嵌套在一起可以创建更复杂的UI界面。 - 使用自定义布局Android允许你根据自己的需求创建自定义的布局。 - 使用列表布局:列表布局(如RecyclerView)是在Android开发中非常常见的一种布局方式,它可以用来展示大量的数据。 希望以上资源对你有所帮助!如果你还有其他问题,可以继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值