這是一個讓我生氣的方法,遇到這個方法的時候,最開始爲了省事,就去網上搜了下
不少答案說,只有在onDraw中調用這個方法纔可以得到這個View正確的大小,之前的方法只能得到0
我想了想不對啊,onMeasure不是測量View大小的麼,它應該可以得到正確的值,用Log試了下
結果如圖:
onMeasure最後還是可以得到正確值的,因爲這個方法會被調用多次,所以在這裏調用getWidth方法不穩定
但是網上說不能,不是侮辱我的眼睛麼 !!
俗話說紙上得來終覺淺,欲知此事需躬行,以後網上只信一半。
接着說getWidth方法,API源碼:
需要注意的是,這個方法返回的是View所佔的px(虛擬像素)值
那我們該在哪裏去調用這個getWidth方法呢,答案是onSizeChanged方法,它在onMeasure確定width之後之後纔去調用
那如果我們一定要在onMeasure中獲得View 的width,可以用getMeasureWidth方法
有問題請留言。。