Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

운기의 블로그

안드로이드 - #1 ConstraintLayout 본문

안드로이드

안드로이드 - #1 ConstraintLayout

운띠야 2022. 3. 26. 23:14

그 동안 UI를 그릴 때 ConstraintLayout을 이용해서 구현했다.

하지만 보다 정확한 개념을 가지고 사용하기 위해 포스팅으로 남겨두려고한다. 

( 컴포즈도 공불해야하는데 ㅠㅠ.... 추후에 공부하고 남겨보도록 하겠습니다.)

 


1. ConstraintLayout 이란?

특정 제약 사항을 통해 레이아웃을 구성하는 단어로 생각하면 되는 구글 가이드에서는 어떻게 설명하고 있는지 한번 보도록하자. 

 

https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout

 

 

ConstraintLayout  |  Android Developers

 

developer.android.com

 

구글 문서에 보면 ConstraintLayout은 아래와 같이 설명하고 있다.

A ConstraintLayout is a ViewGroup which allows you to position and size widgets in a flexible way.

 

해석해보면

보다 다양한 방법으로 버튼, 이미지, 텍스트뷰, ... 등등 과 같은 위젯의 위치와 크기를 조절할 수 있는 뷰그룹

이라고 소개 하고 있다. 

 

그리고 여기서 하나 알아야할 점은

위젯의 위치와 크기를 조절한다고하는데 이때 필요한것이 제약 사항들이다.

그럼 제약사항들에 대해서 알아보자.

 


2. 제약사항 종류

 위에서 본 안드로이드 문서에서 제약 사항은 9개의 종류로 되어있고, 천천히 하나씩 알아보도록 하자.

 

1) Relative Positioning 

상대적 위치 

 

안드로이드 텍스트뷰를 그렸을 때 모습이다.

하나의 위젯에는 수평 축 left,start, right,end / 수직 축 top,bottom 으로 나눠진다.

 

나눠진 축을 기준으로 두개의 위젯의 위치를 정해줄 수 있다. 

B 위젯의 위치는 A의 끝에 배치하고 싶을때

B의 시작점 축을 기준으로 A의 끝에 제약사항을 걸어주면 된다. 

 

상대적 위치를 정해주는 법은 

  • layout_constraintLeft_toLeftOf
  • layout_constraintLeft_toRightOf
  • layout_constraintRight_toLeftOf
  • layout_constraintRight_toRightOf
  • layout_constraintTop_toTopOf
  • layout_constraintTop_toBottomOf
  • layout_constraintBottom_toTopOf
  • layout_constraintBottom_toBottomOf
  • layout_constraintBaseline_toBaselineOf
  • layout_constraintStart_toEndOf
  • layout_constraintStart_toStartOf
  • layout_constraintEnd_toStartOf
  • layout_constraintEnd_toEndOf

사용법은 

<Button android:id="@+id/buttonB" ...
                 app:layout_constraintLeft_toLeftOf="parent" />

app:layout_constraint ~~ 속성에

부모 뷰에 걸어줄때는 parent, 다른 위젯에 걸어줄때는 해당 위젯의 id 값을 넣어주면된다.