운기의 블로그
안드로이드 - #1 ConstraintLayout 본문
그 동안 UI를 그릴 때 ConstraintLayout을 이용해서 구현했다.
하지만 보다 정확한 개념을 가지고 사용하기 위해 포스팅으로 남겨두려고한다.
( 컴포즈도 공불해야하는데 ㅠㅠ.... 추후에 공부하고 남겨보도록 하겠습니다.)
1. ConstraintLayout 이란?
특정 제약 사항을 통해 레이아웃을 구성하는 단어로 생각하면 되는 구글 가이드에서는 어떻게 설명하고 있는지 한번 보도록하자.
https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout
구글 문서에 보면 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 값을 넣어주면된다.
'안드로이드' 카테고리의 다른 글
안드로이드 - #3 ConstraintLayout (0) | 2022.03.29 |
---|---|
안드로이드 - #2 ConstraintLayout (0) | 2022.03.28 |
안드로이드 12 - android:exported = "true" (0) | 2022.03.20 |
Singleton pattern 에 대해서 (0) | 2021.04.04 |
ViewPager2 터치이벤트 분리하기 ( 터치 / 스와이프 ) / 뷰페이저2 클릭시 툴바 사라지게 하기 (0) | 2021.01.31 |