2012-11-30 6 views
10

私は公式の文書ページandroid google official docに行きましたが、彼らは深刻な誤植をしたようです:私たちは方法の第3引数についての情報はありません。だから私は誰かがすでにこの3番目のint引数を定義する方法を知っているかどうか疑問に思います。View.resolveSizeAndState()の3番目の引数の有用性は何ですか?

+0

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はViewsの測定状態のバイナリマスクとして使用されます。どのようにそれを使用したいと思うかもわかりません;) – Simon

+0

OK、私は仕事へのリンクを得ることができません。ページに移動し、resolveSizeAndStateを見つけてそこからリンクをたどります。 – Simon

+0

@サイモンありがとう。さて、私はそれが必要なので、Googleはその使用を推奨しています:このページでhttp://developer.android.com/training/custom-views/custom-drawing.html#layoutevent – loloof64

答えて

15

childMeasuredStateは、View.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を渡すことができます。子状態は現在、Viewが望んでいたよりも小さいサイズで測定されたかどうかを知るためにのみ使用されます。この情報は、必要に応じてダイアログのサイズを変更するために使用されます。あなたの特別な場合、あなたはそれについて心配するべきではありません。

+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では、1つのケースでは0、別のケースでは1を使用しています。とても混乱するような。 –

+0

私も混乱しています。私はそれが何のために –

関連する問題