본문 바로가기
Android

[Android] - ConstraintLayout 장점

by 서퍼리노 2023. 2. 17.
728x90

ConstraintLayout을 사용한다면 LinearLayout이나, RelativeLayout을 사용할 때보다
복잡한 레이아웃 구조를 편리하게 사용할 수 있습니다.

 

ConstraintLayout은 android.view.ViewGroup에 속한 레이아웃이며
위젯의 위치(position)와 크기(size)를 지정할 수 있게 해 줍니다.

ConstraintLayout을 사용하면 제약조건에 따라 뷰를 배치할 수 있습니다.

그렇다면 제약조건은 무엇일까요? 

 

제약 조건

ConstraintLayout에서는 하나 이상의 수평 구속조건과 수적 구족조건을 추가하여 

각 요소를 배치합니다. 제약 조건은 다른 요소, 상위 레이아웃, 보이지 않는 가이드라인 등이 있습니다.

하나 이상의 제약 조건을 배치하여 뷰의 위치와 사이즈 등도 정해줄 수 있습니다.

 

만약 제약 조건을 주지 않은 경우에는 

왼쪽 위 모서리에 뷰가 그려집니다.

 

 

제약 조건 추가해 보기

 

제약 조건은 원형 제약 조건 핸들을 드래그하여 다른 컴포넌트의 가장자리나

레이아웃의 가장자리 등 원하는 곳과 제약조건을 연결해 주면 

구속 조건을 추가할 수 있습니다.

 

위처럼 각 요소들에게 조건들을 주어 화면을 구성할 수 있기 때문에

기존의 LinearLayout이나 RelativeLayout에서는 여러 구조를 겹겹이 쌓아서 만들어야 했지만,

ConstraintLayout에서는 여러 번의 구조를 가지지 않더라도 편리하게 배치할 수 있습니다.

 

화면을 배치하는 것과 관련된 자세한 내용은 다른 글에 정리하겠습니다.

 

ConstraintLayout의 장점은

성능개선에 도움을 줄 수 있습니다.

XML의 View는 트리 구조로 구성이 되어 있기 때문에 복잡한 레이아웃을 구성하기 위해 

많은 양의 ViewGroup을 사용하면 깊이가 깊어질수록 성능 상에 좋지 않은 영향을 미칠 수 있습니다.

 

편리합니다.

사실 이게 무슨 말인가 싶겠지만,

ConstraintLayout을 사용하였을 때 가장 큰 장점입니다.

코드가 겹겹이 쌓여가며 성능 상에 문제도 생길 수 있지만,

실제로 사용하면서 느끼는 장점들은

 

코드의 깊이가 얕아지며

가독성에도 도움을 주고,

 

뷰의 계층간단히 할 수 있어

해당 레이아웃을 리팩터링 할 때에도 무척 편리합니다.

LinearLayout이나 RelativeLayout을 이용할 때에는 3개, 4개... 등 여러 겹을 이용하여 

화면을 배치했지만 ConstraintLayout에서는 1개의 깊이로도 표현이 가능합니다.

 

 

그리고 굉장히 많은 기능들을 지원합니다.

Google에서는 기존의 Layout들을 deprecated 하고 있지만, 

ConstraintLayout에는 굉장히 많은 기능들이 지원됩니다.

 

Chain, Guidelin, barrier, group 등 또한 새로 나온 Flow와 같은 기능 등 많은 기능들이 지원되어

화면을 편리하게 표현할 수 있도록 도움을 줍니다.

 

728x90