Android的layout分析

本文解析了Android中的六种基本布局:framelayout、linearlayout、tablelayout等,并通过比喻帮助理解match_parent和wrap_content属性的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android有六种layout, framelayout,linearlayout, tablelayout, relativelayout等等 (http://developer.android.com/resources/tutorials/views/index.html)

1. 对于各个layout的一些属性,一直有些困惑。比如match_parent的parent是指什么; 顾名思义,它指明要填满父控件,看上去很简单。但在实际应用中你会发现,会有很多复杂的情况出现。举个例子,当一个linearlayout的两部分都是match_parent,那么这两个部分最终各占多少呢?当加上了layout_weight后呢?

没有深入研究过layout的实现代码。经过一段时间的观察,个人感觉可以把match_parent和wrap_content分别看成外扩和内拉弹簧。
拿match_parent来说,这种弹簧会让整个框在可能的情况下尽量向外fill剩余空间(当然它会和其它东西发生阻力,最终达到平衡);而wrap_content则相反,它会尽力地内缩,紧紧包裹住框内的东西。

2. layout可以看成外框(透明的),而textview之类的是框内的具体实物

3. 严格来讲,layout种类是无数的,比如StatusBarview就是对framelayout的扩展。layout本身是viewgroup,它框住众多的views.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值