真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

AndroidView測(cè)量流程(Measure)全面解析-創(chuàng)新互聯(lián)

前言

目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、瓜州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

上一篇文章,筆者主要講述了DecorView以及ViewRootImpl相關(guān)的作用,這里回顧一下上一章所說的內(nèi)容:DecorView是視圖的頂級(jí)View,我們添加的布局文件是它的一個(gè)子布局,而ViewRootImpl則負(fù)責(zé)渲染視圖,它調(diào)用了一個(gè)performTraveals方法使得ViewTree開始三大工作流程,然后使得View展現(xiàn)在我們面前。本篇文章主要內(nèi)容是:詳細(xì)講述View的測(cè)量(Measure)流程,主要以源碼的形式呈現(xiàn),源碼均取自Android API 21.

從ViewRootImpl#PerformTraveals說起

我們直接從這個(gè)方法說起,因?yàn)樗钦麄€(gè)工作流程的核心,我們看看它的源碼:

private void performTraversals() {
  ...

 if (!mStopped) {
  int childWidthMeasureSpec = getRootMeasureSpec(mWidth, lp.width); // 1
  int childHeightMeasureSpec = getRootMeasureSpec(mHeight, lp.height);
  performMeasure(childWidthMeasureSpec, childHeightMeasureSpec); 
  }
 }

 if (didLayout) {
  performLayout(lp, desiredWindowWidth, desiredWindowHeight);
  ...
 }


 if (!cancelDraw && !newSurface) {
  if (!skipDraw || mReportNextDraw) {
  if (mPendingTransitions != null && mPendingTransitions.size() > 0) {
   for (int i = 0; i < mPendingTransitions.size(); ++i) {
   mPendingTransitions.get(i).startChangingAnimations();
   }
   mPendingTransitions.clear();
  }

  performDraw();
  }
 } 
 ...
}


本文題目:AndroidView測(cè)量流程(Measure)全面解析-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://weahome.cn/article/csojgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部