2014-11-05 2 views
0

사용자 지정보기 그룹을 만들고 있습니다. 코드를 실행하는 동안 사용자 정의 뷰 그룹의 onMeasure 함수를 여러 시간이라고합니다. 그리고 onMeasure가 호출되는 동안 측정 모드도 변경되었습니다. 예 : (내 이해) xml에 'match_parent'가 설정된 경우 측정 모드는 AT_MOST 오른쪽입니다. 이때 AT_MOST와 EXACT가 모두 호출되는 이유는 무엇입니까? 올바르게 이해하도록 도와주십시오.왜 onMeasure가 다른 모드로 많은 시간을 불렀습니까?

답변

0

부모에 따라 다릅니다. 일부 ViewGroup은 단 한 번의 측정 값만으로 모든 자녀를 배치하는 방법을 결정할 수 없으므로 자녀를 두 번 측정합니다.

+0

감사합니다. 그러나 측정 과정에서 측정 모드가 매번 바뀌는 이유는 무엇입니까 (onMeasure). –

+0

매번 MeasureSpec 모드가 동일해야한다는 요구 사항은 없습니다. ViewGroup은 한 번 측정하여 아이의 크기를 확인한 다음, 아이에게 줄 수있는 공간을 결정한 후에 다른 모드로 다시 측정합니다. – Karakuri

+0

"두 번 측정"에 대한 실질적인 예를 들어 줄 수 있습니까? – Jacky