Constraint Layout

 

뷰와 뷰에 대한 제약조건을 통해 위치를 고정시킴과 동시에 연결합니다.
항상 기준(위치)이 정해져있음으로 수정이 용이합니다.
Chain을 이용하여 위젯 사이사이에 간격을 넓히거나, 채움이 가능합니다.
Layout 내부에서 하나 이상에 제약조건이 없다면 컴파일 오류가 발생하여 오류 수정이 용이합니다.

 

Layout을 선택하는 기준은 화면을 구성할 때 가장 적합한 Layout을 사용 해야하기 때문에
어느 Layout이라도 알아야 된다고 생각합니다. (각자 장점과 단점이 존재하기 때문에)
계산기 앱은 TableLayout, 주문 앱은 TabLayout 등

다양한 Layout이 있지만 ConstraintLayout으로 대체 되는 이유는
타겟에 위치와 크기를 자유롭고 계층을 생성하지 않아도 복잡한 뷰를 만들 수 있기 때문입니다.

 

 

 

Constraint Layout Guideline

컨스트레인트 레이아웃에 화면에 여백을 두워 여러번 padding, margin을 최소화 할 수 있습니다.

 

android:layout_marginHorizontal
android:layout_marginVertical
이 존재하는데 왜 굳이 사용하살법?

dp, in, mm, pt, px, sp등 단위를 지정해야 하기 때문에
→ 앱은 테블릿과 다양한 기종으로 화면이 제각각 다르기 때문에 
Guideline의 layout_constraintGuide_percent 을 사용하는 것이 용이함

 

//orientation을 통해 가로와 세로를 정한 후 
// Guide_percent로 0.00 ~ 1.00까지 위치를 정함

//왼쪽
<androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideLine_Start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.05" />

//오른쪽
    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideLine_End"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.95" />
        
//상단
    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideLine_Top"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.05" />

 

 

Constraint Layout Guideline을 적용한 모습

 

복사했습니다!