[Android] Constraint Layout

강승구·2022년 5월 12일

기존에서 많이 사용하는 RelativeLayout과 LinearLayout을 사용해서 뷰를 구성하면 뷰를 중첩해서 구성하는 경우가 많았는데 이러한 중첩 구조는 성능을 좋지 않게 만들고 유지보수할 때에도 어려움이 많았다.

Constraint Layout은 복잡한 레이아웃을 단순한 계층 구조를 이용하여 표현할 수 있는 ViewGroup으로 레이아웃에 배치되는 뷰들에 여러 제약(Constraint)을 적용하여 각 뷰의 위치와 크기를 결정하여 성능면에서 효율적이다.

또한 View 간의 제약 조건을 통해 View의 depth를 줄일 수 있기 때문에 코드의 가독성도 증가하게 된다.

여기서 말하는 제약(Constraint)이란 각 요소들의 최종 위치와 크기를 결정하게 될 조건을 말한다.
예를 들어 특정 뷰 왼쪽 사이드를 지정된 뷰의 오른쪽 사이드에 맞추거나, 뷰의 왼쪽,오른쪽 사이드를 각각 부모 레이아웃의 왼쪽, 오른쪽 사이드에 맞추는 것 등을 말하며, 이러한 각각의 제약은 Constraint Layout이 가지는 하나의 레이아웃 속성으로 매핑된다.

View들과 관계를 정의해서 레이아웃을 구성한다는 점이 Relative Layout과 비슷하지만, 보다 유연하고 다양한 기능을 제공한다.

Constraint Layout의 속성

app:layout_constraintTop_toTopOf="@id/view"	<!-- view의 상단과 현재 view의 상단을 맞춤 -->
app:layout_constraintBottom_toBottomOf="@id/view"	<!-- view의 하단과 현재 view의 하단을 맞춤 -->
app:layout_constraintLeft_toLeftOf="@id/view"	<!-- view의 왼쪽과 현재 view의 왼쪽을 맞춤 -->
app:layout_constraintStart_toStartOf="@id/view"	<!-- view의 시작과 현재 view의 시작을 맞춤 -->
app:layout_constraintRight_toRightOf="@id/view" <!-- view의 오른쪽과 현재 view의 오른쪽을 맞춤 -->
app:layout_constraintEnd_toEndOf="@id/view"	<!-- view의 끝과 현재 view의 끝을 맞춤 -->
app:layout_constraintLeft_toRightOf="@id/view"	<!-- view의 오른쪽과 현재 view의 왼쪽을 맞춤 -->
app:layout_constraintStart_toEndOf="@id/view"	<!-- view의 끝과 현재 view의 시작점을 맞춤 -->
app:layout_constraintRight_toLeftOf="@id/view" <!-- view의 왼쪽과 현재 view의 왼쪽을 맞춤 -->
app:layout_constraintEnd_toStartOf="@id/view"	<!-- view의 시작과 현재 view의 끝을 맞춤 -->

app:layout_constraintBaseLine_toBaseLineOf="@id/view"	<!-- view의 기본라인과 현재 view의 기본라인을 맞춤 -->
app:layout_constraintBaseLine_toTopOf="@id/view"	<!-- view의 상단과 현재 view의 기본라인을 맞춤 -->
app:layout_constraintBaseLine_toBottomOf="@id/view"	<!-- view의 하단과 현재 view의 기본라인을 맞춤 -->
profile
강승구

0개의 댓글