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

作者/分享人:珠穆朗玛
向 Ta 提问
1年前端,5年安卓。项目经历涉及:二次元,音视频,社交等。 目前主攻移动开发,主要使用Java、Kotlin、Flutter。 更多精彩技术分享,欢迎关注博客:https://blog.csdn.net/u011315960

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 的了解有新的收获。

已有66人预订
预订达标
文章出炉
     
18.08.07
18.08.22
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张珠穆朗玛的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
你可能还喜欢
高并发、低 RT 的风控系统架构及技术架构的实现
火币集团研发中心
高效构建 Docker 镜像的最佳实践
张晋涛
全栈开发入门实战:后台管理系统
鲁鹏
程序员副业赚钱的 8 种模式
安晓辉
每一个开发人员都应该懂的 UML 规范
码匠笔记
Python 协程模块 asyncio 使用指南
陈祥安
“花式吊打”系列之逻辑回归讲透透
天马行空
批量任务处理神器:Spring Batch
天涯阁主
多线程基本概念简述及常用操作 JVM 源码透析
哈比
Java 实现一个远程控制客户端思路附源码
愚凡
手把手封装 Java 分布式锁
香烟
设计模式架构解析
疯狂的架构
理理 Java 开发中常见的设计模式
woodwang
深度学习卷积神经网络架构设计核心技术
言有三
带你全面了解高级 Java 面试中需要掌握的 JVM 知识点
当年明月
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
添加小助手微信×