Xamarin Android에서는 OnMeasure
메서드가 호출 된 후에야 뷰의 너비와 높이를 얻을 수 있습니다. OnLayout
메서드는 OnMeasure
뒤에 호출됩니다. 따라서 너비와 높이를 OnLayout
방법으로 얻을 수 있습니다.
class MyRender: PageRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
{
base.OnElementChanged(e);
}
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
System.Diagnostics.Debug.Write("OnLayout start");
base.OnLayout(changed, l, t, r, b);
for (int i = 0; i < ChildCount; i++)
{
Android.Views.View view = GetChildAt(i);
int height = view.Height;
int width = view.Width;
System.Diagnostics.Debug.Write("height=" + height);
System.Diagnostics.Debug.Write("width=" + width);
}
System.Diagnostics.Debug.Write("OnLayout end");
}
}
당신은 폭과 높이를 얻기 전에 OnMeasure
가 호출되어 있는지 확인해야합니다, 또는 당신이 항상 0