2012-06-04 39 views
0

在我的xml中,我指定了寬度和高度的wrap_content,但是當我重寫onMeasure函數時,傳遞給它的寬度和高度是-2147483348,奇怪的是300 > Integer.MIN_VALUE是否有這個原因?爲什麼它不是integer.MIN_VALUE或0,如果我沒有任何內容。順便說一句,這是一個自定義的觀點,我正在做,所以我必須做setMeasuredDimension我相信。onMeasure with wrap_content正在使用不是Integer.MIN_VALUE的參數

回答

2

onMeasure的參數不是可用的寬度和高度,而是可用寬度和高度的編碼以及有關如何使用這些值的標誌。你對它們進行解碼使用View.MeasureSpec類:

protected void onMeasure(int widthSpec, int heightSpec) { 
    final int widthMode = MeasureSpec.getMode(widthSpec); 
    final int widthSize = MeasureSpec.getSize(widthSpec); 
    // etc. 
} 

模式將是一個AT_MOSTEXACTLYUNSPECIFIED。請參閱文檔以瞭解您應該如何使用它。特別是,如果模式不是UNSPECIFIED,那麼當您撥打setMeasuredDimension時,您的不得爲使用大於該維度大小的值。

+0

謝謝,我應該查找文檔 – L7ColWinters

相關問題