线性布局和相对布局的实现原理

Android 中常用的布局有:LinearLayout,RelativeLayout,Fragment,其中 LinearLayou t和 RelativeLayout 的最为常用。在面试中,关于布局优化方面 LinearLayout 和 RelativeLayout 的实现原理已经成为必问问题,那么 LinearLayout 的线性布局特性,和 RelativeLayout 的灵活特性是如何实现的呢?

目前几乎在网络分享的所有的相关文章都只是贴出关键代码,简述大概流程,被问到细节,我们还是不知所措。本篇 Chat 将十分详尽,不漏掉一句的代码的分析两者的 onMeasure 和 onLayout过程,通过学习我们将弄懂以下知识点:

  1. LinearLayout 的 Weight 是如何实现的?
  2. LinearLayout 的 Weight 对于测量过程增加了哪些实现成本?
  3. LinearLayout 的 Weight真的会导致需要测量两次吗?
  4. RelativeLayout 的 Measure 过程为什么会有两次?
  5. RelativeLayout 的 Padding 和 Margin 对于居中属性为什么没有影响?
  6. RelativeLayout 在版本4.2和4.4做了哪些调整和适配?

本篇 Chat 适合已经有一定的 Android 开发经验,能够熟练使用 LinearLayout 和 RelativeLayout 的朋友。

了解了 LinearLayout 和 RelativeLayout 实现原理,在今后的使用中我们会避免出现兼容问题,有助于分析在不同情况下使用哪种布局更为合理,在面试中遇到相关问题也会得心应手。

相信阅读完本 Chat,一定会让你对于 LinearLayout 和 RelativeLayout 的了解有新的收获。

阅读全文: http://gitbook.cn/gitchat/activity/5b61827d6f3a9a10b5b02525

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值