레이아웃에 배치되는 뷰들에 여러 제약을 적용하여 각 뷰의 위치와 크기를 결정하는 레이아웃
RelativeLayout의 상대적 위치 관계에 따른 배치 + LinearLayout의 가중치가 가진 장점 + chain 사용을 다른 레이아웃 없이 요소들을 그룹화
ConstraintLayout는 성능향상을 얻을 수 있다. (수평적인 구조로 인해)
ConstraintLayout은 레이아웃에 배치되는 뷰들에 여러 제약을 적용하여 각 뷰의 위치와 크기를 결정한다.
레이아웃 내의 자식 뷰 위젯들이 서로 간의 상대적 위치 관계에 따라 최종적으로 표시될 영역을 결정하도록 만드는 레이아웃
LinearLayout, RelativeLayout, ConstraintLayout의 효율을 비교한 포스팅이 있어서 가져왔다.
이 글에서는 ConstraintLayout을 LinearLayout, RelativeLayout 대비해서 설명하고 있다.
해당 글에선 onMeasure() 호출 개수를 가지고서 레이아웃 성능 비교를 하고 있다.
이렇게 3가지의 비교만 보더라도 ConstraintLayout의 호출횟수가 적은 것을 볼수 있다.
onMeasure() 메서드는 뷰의 크기를 구하는 역할을 하게 되는데 이 과정을
LinearLayout은 10번
RelativeLayout은 14번
ConstraintLayout은 8번을 수행한다.
특히, RelativeLayout의 경우, 특정 뷰를 기준으로 상대적인 위치를 나타내기에 특정 뷰 위치를 구하는 것을 반복하게 된다.
relative layout에서 4 depth이상 들어가야하는 것도 ConstraintLayout에선 1 depth로 가능!!!