2026年10月31日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
91830
Lv3畅意三江水等级图标
勋章
帖子
33
回复
455
积分
8,382
注册
2012-01-16
[安卓交流]

xml方面知 识,安卓改软必需了解的内容

[复制链接]
查看 986 回复 0
楼主 发表于 | 查看全部
14 人收藏

Layout对于迅速的搭建界面和提高界

面在不同分辨率的屏幕上的适应性具

有很大的作用。这里简要介绍

Android的Layout和研究一下它的实

现。 Android有Layout:

FrameLayout,LinearLayout,

TableLayout,

RelativeLayout,AbsoluteLayout。 放

入Layout中进行排布的View的XML属

性:

1.几种Layout中Item所共有的XML属

性:

(1)layout_width

(2)layout_height

(3)layout_marginLeft

(4)layout_marginTop

(5)layout_marginRight

(6)layout_marginBottom

(7)layout_gravity FrameLayout是最简

单的Layout,就只具有这些属性。

LinearLayout还会有:

(8)layout_weight TableLayout的行

TableRow是一个横向的

(horizontal)的LinearLayout。

RelativeLayout有16个align相关的XML

属性:

(9)layout_above

(10)layout_alignBaseline

(11)layout_alignBottom

(12)layout_alignLeft

(13)layout_alignPar

(14)layout_toRightOf (

1)和(2)用来确定放入Layout中的View

的宽度和高度:它们的可能取值为fill_

parent,wrap_content或者固定的像

素值。

(3)(4)(5)(6)是放入Layout中的View期

望它能够和Layout的边界或者其他

View之间能够相距一段距离。

(7)用来确定View在Layout中的停靠位

置。

(8)用于在LinearLayout中把所有子

View排布之后的剩余空间按照它们的

layout_weight分配给各个拥有这个属

性的View。

(9)到(24)用来确定RelativeLayout中的

View相对于Layout或者Layout中的其

他View的位置。

根据Android的文档,Android会对

Layou和View嵌套组成的这棵树进行2

次遍历,一次是measure调用,用来

确定Layout或者View的大小;一次是

layout调用,用来确定Layout或者

view的位置。当然后来我自己的山寨

实现把这2次调用合并到了一起。那就

是Layout在排布之前都对自己进行

measure一次,然后对View递归调用

Layout方法。这样子的大小肯定是确

定了的。然后用确定了的大小来使用

gravity或者align属性来定位,使用

margin来调整位置。

登录回复

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块