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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

forceLayout(),requestLayout()和invalidate()的用法

forceLayout(),requestLayout()和invalidate()的用法

郎朗坤 2019-11-04 15:48:43
我有點困惑的角色forceLayout(),requestLayout()以及invalidate()該方法的View類。什么時候可以叫他們?
查看完整描述

3 回答

?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗 獲得超2個贊

為了更好地理解Fran?oisBOURLIEUX和Dalvik提供的答案,我建議您看一下Arpit Mathur的這張令人敬畏的視圖生命周期圖:

http://img1.sycdn.imooc.com//5dbfd7f60001fceb06001060.jpg

查看完整回答
反對 回復(fù) 2019-11-04
?
動漫人物

TA貢獻(xiàn)1815條經(jīng)驗 獲得超10個贊

invalidate()

invalidate()當(dāng)您要計劃重繪視圖時,調(diào)用完成。這將導(dǎo)致onDraw最終(很快,但不是立即)被調(diào)用。自定義視圖何時調(diào)用的一個示例是文本或背景顏色屬性已更改。


視圖將被重繪,但是大小不會改變。


requestLayout()

如果關(guān)于視圖的某些更改會影響大小,則應(yīng)致電requestLayout()。這將觸發(fā)onMeasure并onLayout不僅是這個觀點,但一路上揚(yáng)父視圖的線。


不能保證調(diào)用requestLayout()會導(dǎo)致onDraw(與接受的答案中的圖相反),因此通常將其與結(jié)合使用invalidate()。


invalidate();

requestLayout();

例如,自定義標(biāo)簽的text屬性發(fā)生更改時。標(biāo)簽會改變尺寸,因此需要重新測量和重新繪制。


forceLayout()

當(dāng)requestLayout()在父視圖組上調(diào)用時,不需要重新測量并重傳其子視圖。但是,如果在重新測量和重排中應(yīng)包括一個孩子,則可以呼叫forceLayout()該孩子。forceLayout()僅在子代requestLayout()與其直接父代一起出現(xiàn)時才對子代起作用。forceLayout()本身調(diào)用不會起作用,因為它不會觸發(fā)requestLayout()視圖樹。


閱讀此問答以獲取有關(guān)的詳細(xì)說明forceLayout()。


查看完整回答
反對 回復(fù) 2019-11-04
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗 獲得超9個贊

正如您在代碼中所forceLayout()看到的那樣,它僅將視圖標(biāo)記為“需要重新布局”,但是它既沒有計劃也沒有觸發(fā)該重新布局。重新布局將不會發(fā)生,直到將來某個時候由于其他原因布置視圖的父級。


使用forceLayout()和時,還有一個更大的問題requestLayout():


假設(shè)您已經(jīng)調(diào)用forceLayout()了一個視圖?,F(xiàn)在,當(dāng)調(diào)用requestLayout()該視圖的后代時,Android將遞歸調(diào)用requestLayout()該后代的祖先。問題是它將在您調(diào)用的視圖處停止遞歸forceLayout()。因此,該requestLayout()調(diào)用將永遠(yuǎn)不會到達(dá)視圖根,因此也不會調(diào)度布局遍歷。視圖層次結(jié)構(gòu)的整個子樹都在等待布局,并且調(diào)用requestLayout()該子樹的任何視圖都不會導(dǎo)致布局。僅requestLayout()在該子樹之外調(diào)用任何視圖都會破壞該咒語。


我會考慮的實現(xiàn)forceLayout()(以及它如何requestLayout()受到破壞,因此您永遠(yuǎn)不要在代碼中使用該函數(shù)。


查看完整回答
反對 回復(fù) 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 1495 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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