2012-11-30 40 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

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

相关问题