第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

為什么FlowLayout的 onMeasure方法會(huì)執(zhí)行4次,onLayout方法會(huì)執(zhí)行兩次呢,

問老師一個(gè)問題,為什么FlowLayout的?onMeasure方法會(huì)執(zhí)行4次,onLayout方法會(huì)執(zhí)行兩次呢,下面是log截圖

http://img1.sycdn.imooc.com//56a598410001a08209030238.jpg

正在回答

2 回答

上面我回答的不夠詳細(xì),
這個(gè)控件中,父視圖使用unspecified dimensions來將它的每個(gè)子視圖都測(cè)量一次來算出它們到底需要多大尺寸,而這些子視圖沒被限制的尺寸的和太大或太小,所以會(huì)用精確數(shù)值再次調(diào)用measure()(也就是說,如果子視圖不滿意它們獲得的區(qū)域大小,那么父視圖將會(huì)干涉并設(shè)置第二次測(cè)量規(guī)則)。其中measure()方法會(huì)調(diào)用onMeasure()方法。
代碼中,由于把每行剩余空間重新分配,會(huì)調(diào)用了requestLayout()方法,這個(gè)方法又會(huì)導(dǎo)致measure()和onLayout()方法的再次調(diào)用。
最后你會(huì)發(fā)現(xiàn) onMeasure()方法調(diào)用了 1次*2*2=4次 ?onLayout()方法調(diào)用了 1次*2 =2次

下圖是View的生命周期.

http://img1.sycdn.imooc.com//5850b96600017b2d06920611.jpg

0 回復(fù) 有任何疑惑可以回復(fù)我~

如果父視圖的子視圖的個(gè)數(shù)為0,就會(huì)執(zhí)行一次。否則就會(huì)執(zhí)行多次。因?yàn)殚_始時(shí)父試圖中是沒有子試圖的。但是當(dāng)你從xml文件中加載子試圖或者在java代碼中添加子試圖時(shí),父試圖的狀態(tài)會(huì)發(fā)生變化,這個(gè)變化會(huì)引起onlayout甚至是onmeasure。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
打造Android中的流式布局和熱門標(biāo)簽
  • 參與學(xué)習(xí)       30473    人
  • 解答問題       60    個(gè)

酷炫的熱門標(biāo)簽到底是怎么實(shí)現(xiàn)的呢,本教程會(huì)給你答案

進(jìn)入課程

為什么FlowLayout的 onMeasure方法會(huì)執(zhí)行4次,onLayout方法會(huì)執(zhí)行兩次呢,

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)