[컴][안드로이드] onMeasure() 는 언제 호출되는가?

onMeasure() 가 호출되는 때, 호출되는 순간, 불려지는 순간
onMeasure()는 언제 호출되는가?

 

onMeasure() 가 호출되는 순간

  • 윈도우가 laid out 되는 처음순간
  • layout 이 변경될 때마다

 

구글 그룹에서 android framwork team 의 engineer 가 한 답변 내용이다.

onMeasure() is not related to the Activity life cycle.
It is called whenever the layout changes (requestLayout() called)
or the first time a window is laid out.

onMeasure() 에서 view 의 크기를 결정한다고 보면 될 듯 하다. 이것이 필요한 이유는 density-independent pixel units (dp), wrap_content, or fill_parent, 같은 relative value 가 사용되기 때문인 듯 하다.[ref. 1]

layout 이 바뀔 때 마다, 그 layout 에 맞는 height, width 를 결정하고, 그 height, width 를 가지고 onLayout() 의 parameter 로 현재 view 가 처리되는 범위를 넘겨준다.

 

See Also

http://cranix.net/365

에 있는 소스코드에서 onMeasure() 부분을 보면, 이해하기 좀 더 쉬울 듯 하다.

 

References

  1. layout-params, Android API documents

댓글 없음:

댓글 쓰기