我正在學習一個自定義組件,並且我在view
和viewgroup
中找到了方法onMeasure()
的一些區別。例如,有人呼叫super.onMeasure
,最後有人使用setMeasuredDimension
。差異在哪裏? measureChildren()
意味着什麼?onMeasure()方法的view和viewgroup有什麼區別?
這是我第一次來這個社區,希望得到我想要的答案,謝謝。
我正在學習一個自定義組件,並且我在view
和viewgroup
中找到了方法onMeasure()
的一些區別。例如,有人呼叫super.onMeasure
,最後有人使用setMeasuredDimension
。差異在哪裏? measureChildren()
意味着什麼?onMeasure()方法的view和viewgroup有什麼區別?
這是我第一次來這個社區,希望得到我想要的答案,謝謝。
super.onMeasure()
,當你想你的自定義組件的測量留給你是從擴展超類時使用。例如,假設您正在爲多種顏色的文本構建自定義TextView。您真的不想覆蓋TextView的onMeasure()
實現,因爲您沒有處理文本的寬度和高度。因此,您可以撥打super.onMeasure()
並將測量結果保留爲TextView
。
setMeasuredDimension()
在情況下,你必須覆蓋onMeasure()
,您使用setMeasuredDimension()
告訴android的視圖渲染系統自定義視圖的最終計算寬度和高度。這將被視圖系統用於渲染視圖。
measureChildren() 它講述了這樣
ViewGroup
的兒童使用給定MeasureSpec
來衡量自己。
非常好的討論here。