首页编程absolutelayout,Android几种layout(布局)的区别

absolutelayout,Android几种layout(布局)的区别

编程之家2023-11-02113次浏览

大家好,今天给各位分享absolutelayout的一些知识,其中也会对Android几种layout(布局)的区别进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

absolutelayout,Android几种layout(布局)的区别

求助:android:layout

布局的介绍:

1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。

2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。

3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)

总之,Android中一共有六种布局。目前推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。

LinearLayout:

absolutelayout,Android几种layout(布局)的区别

(一)、概念:线性布局控制其中的控件或组件横向或纵向排列。不线性布局布局中,每一行或每一列只能放一个控件。并且线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。

线性布局的默认方向是水平方向(Horizontal)。vertical

(二)、LinearLayout的常用属性:

1.android:orientation定义布局内控件或组件的排列方式

可选项:vertical、 horizontal

2.android:layout_width定义控件的宽度

absolutelayout,Android几种layout(布局)的区别

可选项:fill_parent/ match_parent/ wrap_content/绝对数值

备注:fill_parent/ match_parent的效果完全一致,都是填充整个父控件。但是自2.2版本开始推荐使用match_parent。wrap_content指的是该控件的宽度正好包裹内容物。

3.android:layout_height定义控件的高度

可选项:fill_parent/ match_parent/ wrap_content/绝对数值

备注:fill_parent/ match_parent的效果完全一致,都是高度填充整个父控件。wrap_content指的是该控件的高度正好包裹内容物。

4.android:id设置控件的id。这样就可以在R.java中自动生成相应的值,在程序中通过findViewById就可以调用。

设置id的格式为:android:id="@+id/id的名字"

5.android:background设置控件的背景颜色或背景图片

例如:android:background="#ffffff"

android:background="@drawable/图片名称"

【备注:】

颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。

#FFFFFF代表白色

#000000黑色

#FFFFFFFF完全不透明

#00FFFFFF完全透明

#88FFFFFF半透明

6.android:layout_weight设置控件的权重。即各控件在水平或者垂直方向上平均分配。

备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

7.android:gravity该属性用来控制该View的内容物的位置。

如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。

如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。

可选项有:top、bottom、left、right、center_vertical、fill_vertical、 center、fill等等。

【备注:】本属性与android:layout_gravity不同。

8.android:layout_gravity该属性用于设置控件相对于容器的对齐方式。

可选项有:top、bottom、left、right、center_vertical、center_horizontal、fill_vertical、 center、fill等等。

这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。

【备注:】而本属性是android:layout_gravity属性,与 android:gravity属性不同。

(三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性】

1、android:orientation布局管理器内组件的排列方式

2、android:gravity设置布局管理器内组件的对齐方式

(四)、 LinearLayout子元素的特有属性:

1、android:layout_weight子元素在 LinearLayout中所占的权重

2、android:layout_gravity子元素在 LinearLayout中的对齐方式

RelativeLayout:

(一)、概念:指按着控件之间的相对位置来进行布局。

(二)、RelativeLayout特有属性:

1、android:gravity设置布局容器内子控件的对齐方式

2、android:ignoreGravity设置布局管理器内哪个控件不受gravity属性的影响

(三)、RelativeLayout子元素的特有属性:LayoutParams

A、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。

layout_toRightOf该控件在哪个控件的右侧

layout_toLeftOf该控件在哪个控件的左侧

layout_above该控件在哪个控件的上侧

layout_below该控件在哪个控件的下侧

B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。

layout_alignRight该控件与哪个控件的右对齐

layout_alignLeft该控件与哪个控件的左对齐

layout_alignTop该控件与哪个控件的顶对齐

layout_alignBottom该控件与哪个控件的底对齐

C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。

layout_alignParentRight该控件与父布局控件的右对齐吗?

layout_alignParentLeft该控件与父布局控件的左对齐吗?

layout_alignParentTop该控件与父布局控件的顶端对齐吗?

layout_alignParentBottom该控件与父布局控件的底部对齐吗?

layout_centerInParent该控件位于父布局控件的中心位置吗?

layout_centerVertical该控件位于父布局控件的垂直中心位置吗?

layout_centerHorizontal该控件位于父布局控件的水平中心位置吗?

GridLayout:网格布局

(一)、GridLayout布局属性:

1、android:alignmentMode

属性说明:设置布局的对齐模式。可以取以下值:

alignBounds--对齐子视图边界。

alignMargins--对齐子视图边距。

2、android:columnCount

属性说明:GridLayout的最大列数

3、android:rowCount

属性说明:GridLayout的最大行数

4、android:orientation

属性说明:GridLayout中子元素的布局方向。有以下取值:

horizontal--水平布局。

vertical--竖直布局。

5、android:columnOrderPreserved

属性说明:设置该网格布局是否保留列序号。默认是true。

6、android:rowOrderPreserved

属性说明:设置该网格布局是否保留行序号。默认是true。

7、android:useDefaultMargins

属性说明:设置GridLayout使用默认的边距。默认值是false。

(二)、GridLayout子元素的属性:

1、android:layout_column

属性说明:显示该控件的列。例如,android:layout_column="0",表示在第1列显示该控件;android:layout_column="1",表示在第2列显示该控件。

2、android:layout_row

属性说明:该控件所在行。例如,android:layout_row="0",表示在第1行显示该控件;android:layout_row="1",表示在第2行显示该控件。它和 android:layout_column类似。

3、android:layout_columnSpan

属性说明:列合并。即该控件所占的列数。例如,android:layout_columnSpan="2",表示该控件占2列。

4、android:layout_rowSpan

属性说明:行合并。即该控件所占的行数。例如,android:layout_rowSpan="2",表示该控件占2行。

5、android:layout_gravity

属性说明:该控件的布局方式。选项值:

top--控件置于容器顶部,不改变控件的大小。

bottom--控件置于容器底部,不改变控件的大小。

left--控件置于容器左边,不改变控件的大小。

right--控件置于容器右边,不改变控件的大小。

center_vertical--控件置于容器竖直方向中间,不改变控件的大小。

fill_vertical--如果需要,则往竖直方向延伸该控件。

center_horizontal--控件置于容器水平方向中间,不改变控件的大小。

fill_horizontal--如果需要,则往水平方向延伸该控件。

center--控件置于容器中间,不改变控件的大小。

fill--如果需要,则往水平、竖直方向延伸该控件。

clip_vertical--垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。

clip_horizontal--水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是 right的,则剪切该控件的左边。

start--控件置于容器的起始处,不改变控件的大小。

end--控件置于容器的结束处,不改变控件的大小。

Android几种layout(布局)的区别

Android几种layout(布局)的区别

1.FrameLayout:children按照从左上开始的顺序排列,主要用于tabed view或者图片切换功能;最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一子控件的上层。

2.线性布局(LinearLayout):children排列成一行多列或者一列多行的形式,应该是应用程序中最常用的布局方式,它提供了控件水平或者垂直排列的模型,同时我们可通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。

android:orientation="vertical"使linearlayout里面的东西一行一行排列。

3.相对布局(RelativeLayout):children是相互之间相关位置或者和他们的parent位置相关,参照控件可以是父控件,也可以是其他子控件,但被参照的控件必须要在参照它的控件之前定义。相对布局模型所涉及的属性设置比较多,但并不复杂。

4.TableLayout:children按照行列的排序,类似于html的table;模型以行列的形式管理子控件,每一行为一个TableRow的对象,也可为一个View的对象。TableRow可添加子控件,每添加一个子控件为一列。

5.坐标布局(AbsoluteLayout)的子控件需要指定相对于此坐标布局的横、纵坐标值,否则将会像FrameLayout那样被排在左上角。手机应用需要适用于不同的屏幕大小,而这种布局模型不能自适应屏幕尺寸大小,所以应用得相当少。

relativelayout 是什么

Android五大布局: FrameLayout(框架布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

FrameLayout

所有东西依次都放在左上角,会重叠,这个布局比较简单,也只能放一点比较简单的东西。

LinearLayout

每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal")。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

AbsoluteLayout

绝对布局用X,Y坐标来指定元素的位置,这种布局方式也比较简单,但是在屏幕旋转时,往往会出问题,而且多个元素的时候,计算比较麻烦。

RelativeLayout

相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:相对于某一个元素android:layout_below、 android:layout_toLeftOf相对于父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh

TableLayout

每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。

每一个布局都有自己适合的方式,这五个布局元素可以相互嵌套应用,做出美观的界面。

关于absolutelayout和Android几种layout(布局)的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

乐清网站建设 乐清有哪些高中黄页网站推广 黄页网络的推广网站有哪些