Android 中常用的布局有:LinearLayout,RelativeLayout,Fragment,其中 LinearLayou t和 RelativeLayout 的最为常用。在面试中,关于布局优化方面 LinearLayout 和 RelativeLayout 的实现原理已经成为必问问题,那么 LinearLayout 的线性布局特性,和 RelativeLayout 的灵活特性是如何实现的呢?
目前几乎在网络分享的所有的相关文章都只是贴出关键代码,简述大概流程,被问到细节,我们还是不知所措。本篇 Chat 将十分详尽,不漏掉一句的代码的分析两者的 onMeasure 和 onLayout过程,通过学习我们将弄懂以下知识点:
- LinearLayout 的 Weight 是如何实现的?
- LinearLayout 的 Weight 对于测量过程增加了哪些实现成本?
- LinearLayout 的 Weight真的会导致需要测量两次吗?
- RelativeLayout 的 Measure 过程为什么会有两次?
- RelativeLayout 的 Padding 和 Margin 对于居中属性为什么没有影响?
- RelativeLayout 在版本4.2和4.4做了哪些调整和适配?
本篇 Chat 适合已经有一定的 Android 开发经验,能够熟练使用 LinearLayout 和 RelativeLayout 的朋友。
了解了 LinearLayout 和 RelativeLayout 实现原理,在今后的使用中我们会避免出现兼容问题,有助于分析在不同情况下使用哪种布局更为合理,在面试中遇到相关问题也会得心应手。
相信阅读完本 Chat,一定会让你对于 LinearLayout 和 RelativeLayout 的了解有新的收获。
阅读全文: http://gitbook.cn/gitchat/activity/5b61827d6f3a9a10b5b02525
您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。