Android の View の getMeasuredHeight() プロパティと getHeight() プロパティの違い、および getMeasuredWidth() プロパティと getWidth() プロパティの違い

通常、getMeasuredHeight()とgetHeight()、またはgetMeasuredWidth()とgetWidth()を使用して取得される値は同じです。

  1. getMeasuredHeight() と getMeasuredWidth() で取得される値は、カスタム コントロールが onMeasure(int widthMeasureSpec, int heightMeasureSpec) メソッドをオーバーライドするときに setMeasuredDimension(int MeasurementWidth, int MeasurementHeight) を呼び出して設定された値です。ここではメソッドは呼び出されず、super.onMeasure(widthMeasureSpec, widthMeasureSpec) を直接呼び出します。getMeasuredHeight() と getMeasuredWidth() を使用して取得する値は両方とも 0 です。
  2. getHeight() と getWidth() によって取得される値は、onLayout() メソッドを呼び出すときに渡される 4 つのパラメーターです。

要約する

①getMeasuredWidthメソッドで取得した値はsetMeasuredDimensionメソッドで設定した値であり、その値はmeasureメソッド実行後に決定されます。

②getWidthメソッドは、layoutメソッドで渡される4つのパラメータのうちmRight-mLeftを取得し、その値はlayoutメソッド実行後に決定されます。

③ 通常、onLayout メソッド内では getMeasuredWidth メソッドを使用し、onLayout メソッド以外では getWidth メソッドを使用します。

 

実際のテストケースについては、https: //blog.csdn.net/dmk877/article/details/49734869を参照してください。



 

 

おすすめ

転載: blog.csdn.net/zhao8856234/article/details/109100562