2012-11-30 65 views
10

我去了官方文檔頁面android google official doc,但他們似乎犯了一個嚴重的錯字:我們沒有關於該方法的第三個參數的信息。所以我只是想知道是否有人已經知道如何定義這個第三個int參數。View.resolveSizeAndState()的第三個參數的用途是什麼?

+0

我grepped Android源http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/android/view/View.java#View。 resolveSizeAndState%28int%2Cint%2Cint%29正如您所見,childMeasuredState被用作視圖度量狀態的二進制掩碼。不能完全弄清楚你可能會如何使用,雖然;) – Simon

+0

好吧,我無法讓鏈接工作。只要進入頁面,找到resolveSizeAndState,並按照從那裏的鏈接。 – Simon

+0

@Simon謝謝。那麼,因爲我需要它,因爲谷歌推薦它的使用:在這個頁面上http://developer.android.com/training/custom-views/custom-drawing.html#layoutevent – loloof64

回答

15

childMeasuredStateView.getMeasuredState()返回的值。佈局將使用View.combineMeasuredStates()來聚合其子女測量的狀態。這裏是一個例子:

int childState = 0; 

for (int i = 0; i < count; i++) { 
    final View child = getChildAt(i); 
    if (child.getVisibility() != GONE) { 
     measureTheChild(child); 
     childState = combineMeasuredStates(childState, child.getMeasuredState()); 
    } 
} 

在大多數情況下,你可以簡單地傳遞0。孩子狀態目前僅用於判斷視圖是否以比想要的尺寸更小的尺寸進行測量。如果需要,此信息又用於調整對話框的大小。在你的具體情況下,你不應該擔心它。

+5

儘管這是一個古老而正確的答案,Google的官方文檔仍然缺少該字段的描述,這裏的示例在這裏http://developer.android.com/reference/android/view/View.html#resolveSizeAndState(int,int,int) http://developer.android.com/training/custom-views/custom-drawing.html在一個情況下使用0,在另一個情況下使用1,沒有任何解釋。很混亂。 –

+0

我也很困惑。我不知道它的用途 –

相關問題