53

私は電話をかけようとView.getMeasuredHeightView.getHeightますonGlobalLayout。どちらも同じ結果になります。

私は、どのような状況下でそれらの値が異なるのだろうかと思っていました. これを示す例はありますか?

グーグルで検索してみました。最初の結果は、この質問には関係ないようです: Android: カスタム ビューの高さと幅を取得する方法は?

4

1 に答える 1

81

ビューを使用すると、その子要素に特定のサイズ制限が課されます。これらの制限により、子要素が必要な量のスペースを占有できない場合があります。

View クラスのドキュメントでは、これらのプロパティについて次のように説明しています。

ビューのサイズは、幅と高さで表されます。ビューには、実際には 2 組の幅と高さの値があります。

最初のペアは、測定された幅と測定された高さとして知られています。これらの寸法は、ビューがその親内で必要とする大きさを定義します (詳細については、レイアウトを参照してください)。測定された寸法は、getMeasuredWidth() および getMeasuredHeight() を呼び出すことによって取得できます。

2 番目のペアは、単に幅と高さ、または描画幅と描画高さとして知られています。これらの寸法は、描画時およびレイアウト後の画面上のビューの実際のサイズを定義します。これらの値は、測定された幅と高さとは異なる場合がありますが、必ずしもそうである必要はありません。幅と高さは、getWidth() と getHeight() を呼び出すことで取得できます。

参照: http://developer.android.com/guide/topics/ui/how-android-draws.html

于 2013-10-22T17:18:37.983 に答える