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

作者/分享人:珠穆朗玛
向 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 的了解有新的收获。

已有60人预订
预订达标
文章出炉
     
18.08.07
18.08.22
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张珠穆朗玛的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
你可能还喜欢
110 道 Python 面试笔试题超强汇总
嘉美伯爵
Redis 实战场景详解
驰骋
轻松搞定机器学习中的概率统计知识
Evan
架构师成长之路之服务治理漫谈
飞狐
打造高效「Mac 工具栈」,提高工作效率
易水寒
操作系统基础: C 语言实现用户态线程(实战)
Allen()
手把手教你做人脸搜索系统
天马行空
Java 与底层操作系统的交互细节
小强
架构师成长之路之限流
飞狐
架构师成长之路之服务发现与注册
飞狐
Java 进阶之路:异常处理的内在原理及优雅的处理方式
应书澜
人工智能物联网极简入门
Peter Liu
百无一用是管理:从技术到管理的 3 个典型困惑释疑
Paullin
如何使用谷歌云搭建你的高性能免费服务器
罗忠浩
Java 电商秒杀高并发实战一
air
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!