Android 常见布局

Android 常见布局,第1张

Android六大基本布局分别是:线性布局LinearLayout、表格布局TableLayout、相对布局RelativeLayout、层布局FrameLayout、绝对布局AbsoluteLayout、网格布局GridLayout。其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局。

在手机程序设计中,绝对布局基本上不用,用得相对较多的是线性布局和相对布局。

padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则是站在自己的带码袜角度蠢激描述问题,规定自己和其他(上下左右)的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。

显示特点:所有子控件按照横向或者竖向依次排列

left(左)、right(右)、top(上)、bottom(下)、center(中心)、

enter_vertical(竖向中心)、center_horizontal(横向中心)

left(左)、right(右)、top(上)、bottom(下)、center(中心)、

enter_vertical(竖向中心)、center_horizontal(横向中心)

子控件的用法:android:layout_weight="1" 多个控件同时使用,可以实现平分的效果

显示特点:和LinearLayout布局相似,所有子控件默认显示在RelativeLayout的左上角

layout_toRightOf 在指定控件的右边

layout_toLeftOf 在指定控件的左边

layout_above 在指定控件的上边

layout_below 在指定控件的下边子控件对齐关系

layout_alignRight 与指定控件右对齐

layout_alignLeft 与指定控件左对齐

layout_alignTop 与指定控件上对齐

layout_centerInParent 与父容器中间对齐 pairunte

layout_centerVertical 与父容器竖向中心对齐

layout_centerHorizontal 与父容器横向中心对齐

layout_alignParentLeft 与父容器左边对齐

layout_alignParentTop 与父容器上边对齐

layout_alignParentRight 与父容器右边对齐

layout_alignParentBottom 与父容器下边对齐

显示特点:所有子控件默认在GridLayout中横向依次排列,当只等每行的列数时,到达指定列数

会自动换行模岁显示。

layout_column 在网格的第几列

layout_row 在网格的第几行

layout_columnSpan 跨列

layout_rowSpan 跨行

layout_gravity 在一个网格中的重心位置

columnCount 每行列总数

显示特点:所有的子控件默认显示在FrameLayout的左上角,会重叠在一起显示。

layout_gravity(设置给子控件,调整控件在容器内的重心)

常用值:

left(左)、 right(右)、

top(上)、 bottom(下)、

center(中心)、 center_vertical(竖向中心)

center_horizontal(横向中心)

表格布局和网格布局类似,但是需要注意的是,表格布局不能跨行,只能跨列

1.RelativeLayout  相对布局

2. LinearLayout 线性布局

3. FrameLayout 帧布局

4.TableLayout 表格布局 (被GridView代替)

5.AbsoluteLayoutf 绝对布局(已经被谷歌废弃,几乎不会用到)

           相对布局RelativeLayout允许子元素指定它们相对于其父元素或兄弟元素的位置,这是实际布局中最常用的布局方式之一。

            特点:相对于其他空间的位置,和相对父元素的位置进行布局

layout_centerHorizontal(相当于父节点是水平居中)

layout_centerVertical(相当于父节点是垂直居中)

layout_centerInParent(相当于父节点在正中间)

layout_above(在XX之上)

layout_below(在XX之下)

layout_toLeft(在XX的或中穗左边)

layout_toRight(在XX的右边)

layout_alignParentTop(和父节点的顶部对齐)

layout_alignParentBottom(和父节点的衫卜底部对齐)

layout_alignParentLeft(和父节点的左边对齐)

layout_alignParentRight(和父节点的右边对齐)

layout_alignTop(和XXX顶部对齐)

layout_alignBottom(和XXX底部对齐)

layout_alignLeft (和XXX左边对齐)

layout_alignRight(和XXX右边对齐)

线性布局LinearLayout是根据指定朝向orientation水平Horizontal或者垂直Vertical方向排列的布局,其最大的特点是可以给子控件按照权重weight属性分配空间.

常见案例:计算器

3. FrameLayout 帧布局

            通俗的讲就是在屏幕上一层覆盖着一层的控件,在fragment中比较常用

<TextView

android:layout_width= "200px"

android:layout_height= "200px"

android:layout_gravity= "center"

android:background= "#00ff00"

android:gravity= "培肢center" />

Android布局控件之LinearLayout详解

LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控咐好件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。

xml属性

android:baselineAligned:是否允许用户调整它内容的基线。

android:baselineAlignedChildIndex:当一个线性布局与另一个布局是按基线对齐的一部分,它可以指定其内容的基线对齐方式。

android:gravity:指定如何在该对象中放置此对象的内容(x/y坐标值)。

android:orientation:设置它内容的对其方谈简慧向(横向/竖向)。

gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。

android:layout_gravity 和 android:gravity 的区别

从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

比如说button:android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。

可选值

这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

而且这些属性是可以多选的,用“|”分开。

默认这个的值是:Gravity.LEFT

LinearLayout还支持为其包含的widget或者是container指定填充权值。好处就是允许其包含的widget或者是container可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串widgets或者是containers挤成一堆的情况,而是允许他们放大填充空白。剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕。默认的 weight 值为0,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将Container剩余可用空间分割,分割大小具体取决于每一个widget或者是container的layout_weight及该权值在所有widgets或者是containers中的比例。例如,如果有三个文本框,其中两个指定的权值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大,按实际大小来显示。如果前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的。也就是权值越大,重要度越大。

如果LinearLayout包含子LinearLayout,子LinearLayout之间的权值越大的,重要度则越小。如果有LinearLayout A包含LinearLayout C,D,C的权值为2,D的权值为1,则屏幕的2/3空间分给权值为1的D,1/3分给权值为2的C。在LinearLayout嵌套的情况下,子LinearLayout必须要设置权值,否则默认的情含答况是未设置权值的子LinearLayout占据整个屏幕


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12351763.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存