Constraint layout 정리

constraintlayout

안드로이드 스튜디오를 처음 열어서 xml 파일을 만지려고 하면 가장 최상위 단에 위치한

<androidx.constraintlayout.widget.ConstraintLayout />

태그를 쉽게 볼 수 있다.

17년도에 개발을 할 때는 이런 레이아웃 없이

<LinearLayout />

을 사용 했었다.

LinearLayout 은 방향(orientation)을 지정해주면 알아서
내부 컴포넌트가 지정한 방향으로 쌓이게 되는 방식

즉, 특정한 설정 없이도 레이아웃을 사용하는데 제한사항이 없었다는것.

하지만 어떤 특정한 시점부터 기본적으로 constraint layout이 기본값으로 설정되었는데,

계속 linear layout 으로 바꿔가면서 개발하기도 좀 그렇고,

안드로이드에서 권장하는 방식일 것이라는 생각이 들어 공부해서 사용하게 되었다.

특성

  1. constraint layout에 들어가는 view는 가로와 세로에 대한 기준점을 지정해 주어야 한다.

    • app:layout_constraintStart_toStartOf="parent" // 가로 
       app:layout_constraintTop_toTopOf="parent"  // 세로
      
    • 위의 제약 조건은 contraint layout 내에 들어간 text view에 대한 기준점을 정의한 것이다.
      start 기준점(가로) == parent
      top 기준점(세로) == parent

      즉 , 가로 세로 모두 parent, 자신의 부모 view의 start와 top에 맞춰서 자신을 배치하는 것이다.
      (0, 0) 에 배치되게 된다.

  2. 예시

위 그림엔 C의 세로 기준점이 없기 때문에 C가 위로 가서 붙어버리게 된다.
그래서 아래 그림처럼 C의 기준점을 A로 설정해주어야 한다.

기준/정렬

constraint layout 내의 객체들은 특정 객체나 상위 객체를 기준으로 정렬이나 위치가 가능함.

  • 상위 요소
  • 가로/세로 constraint
  • 타 요소
  • 타 요소의 텍스트 기준 선
  • 특정 안내선으로 제한
  • 특정 경계선으로 제한

마무리

위와 같은 내용으로 constraint layout 을 정리해보았다.
linear layout 과 relative layout 을 적절히 조합한 방식이라고 생각이 들며,
익숙해지면 꽤 다양한 방식으로 적용이 가능할 것이라고 생각한다.

좋은 웹페이지 즐겨찾기