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와 같은 기능 등 많은 기능들이 지원되어
화면을 편리하게 표현할 수 있도록 도움을 줍니다.
'Android' 카테고리의 다른 글
[Android] - Retrofit으로 이미지 업로드 with Kotlin (0) | 2023.02.21 |
---|---|
Composable 에서 ViewModel 공유하기 (0) | 2023.02.19 |
[Android] - Activity의 라이프 사이클 (0) | 2023.02.15 |
[Android] - Android Studio에서 SVG 파일 사용하기 (0) | 2023.02.15 |
[Android] - View와 ViewGroup란 무엇일까 (0) | 2023.02.11 |