iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 11
1
Software Development

Kotlin 2018連續開發30天系列 第 11

Kotlin 2018連續開發30天 day 10 深入剖析view的工作流程

  • 分享至 

  • twitterImage
  •  


所有的控制元件都是繼承於view

view的系統架構
ViewRoot ->WindowManager 執行用戶事件
->DecorView 展現特定圖像
View的程序入口
performTraversals() -> performMeasure()(測量流程)->performaLayout()(執行佈局流程)->performDraw()(執行繪製流程)

Activity佈局中 DecorView就是頂層view 核心是FrameLayout, FrameLayout包含兩個部分

  1. titlebar 標題 也就是導航欄ActionBar
  2. content 內容 存放於android.R.id.content 通過setContentView() 將android.R.id.Content設置為具體佈局

View的具體尺寸儲存在MeasureSpec中 即onMeasure()

測量模式

  1. UNSPECIFIED:不做任何限制
  2. EXACTLY:精確尺寸,match_parent和具體數值
  3. AR_MOST:不能超過所允許的最大尺寸,wrap_content

view的測量尺寸除了根據MeasureSpec的屬性值 還要根據父佈局的MeasureSpec屬性值與自身佈局的參數決定 若是特殊的DecorView則屬於系統內根視圖 不會有父視圖 則由系統的窗口尺寸與自身佈局決定


上一篇
Kotlin 2018連續開發30天 day 9 android 指紋辨識系統撰寫
下一篇
Kotlin 2018連續開發30天 第三方網路連線庫-volley
系列文
Kotlin 2018連續開發30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言