View

Constraintlayout Chain

제롱구리 2024. 3. 21. 10:07
728x90

금일 알아 볼 것

오늘은 Constraintlayout의 chain 부분을 다루어 볼려고 한다.
기본적으로 Constrainlayout의 상대적인 배치에 대해서는 다른 블로그에 많이 있으니깐 다루지 않겠다.

자 오늘도 드가즈아아아~~


Chain 이 뭔데?

Constrainlayout의 연결 방식에 대해서는 누구나 기본적으로 알고 있을 것이다. 이 부분 중 Chain이라는 말도 들어본적 있을 것이다.
Chain은 사용 가능한 공간 내 뷰들간의 분활되는 방식을 제어는 제약조건을 말한다.

쉽게 말하자면 2개의 View 사이에 서로의 제약조건을 걸어 서로 연결되면 Chain이 생기게 된다.
이해를 돕기위한 이미지는 아래에 있다.


위 사진 처럼 1과 2이 사이에는 체인이 생성된 것이다.(위는 신경쓰지 말것 위치를 정하기위해 생긴 제약입니당^^;)


ChainStyle

자 오늘 글을 포스트한 진짜 이유이다.
Chain에는 chainStyle이라는 옵셥을 걸수가 있는데 해당 스타일 값에 따라서 Chain이 걸린 View들의 배치가 변경된다.

// Horizontal 기준
app:layout_constraintHorizontal_chainStyle="spread
app:layout_constraintHorizontal_chainStyle="spread_inside
app:layout_constraintHorizontal_chainStyle="packed"

// Verticall 기준
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintVertical_chainStyle="spread"
app:layout_constraintVertical_chainStyle="spread_inside"

자 위에서 처럼 xml 파일에서 3가지씩 총 6가지의 Chain style을 정할 수 있다.
각각의 style일 무엇을 의미하는지 알아보겠당

  • CHAIN_SPREAD: 뷰들을 골고루 펼쳐 여백을 같게 한다.(기본값)
  • CHAIN_SPREAD_INSIDE: CHAIN_SPREAD와 비슷하지만 가장 외곽에 있는 뷰들은 부모 뷰와 여백이 없는 상태로 골고루 펼쳐집니다.
  • CHAIN_PACKED: 뷰들이 똘똘 뭉치게 되고 부모뷰로부터의 여백을 같게 합니다. 여백을 조정하고 싶다면 bias조정을 통해 한쪽으로 치우치게 만들 수 있습니다.


Bias

bias는 (constraint 영역 크기 - 뷰 크기)를 분배하는 비율을 말한다. 이게 무슨 말이냐면 Chain으로 연결된 뷰들의 위치를 비율로 나타내어 어디다가 나타낼지 정하는 것이다. Linearlayout의 weight와 비슷하다

app:layout_constraintHorizontal_bias="0~1의 값"
app:layout_constraintVertical_bias="0~1의 값"

그래서 view들의 기준위치를 변경할 수 있으며, 기본값은 0.5로 세팅되어 있다.
0.5보다 작은면 왼쪽(위쪽)으로 분배되는 비율이 작아져 뷰가 왼쪽(위쪽)으로 이동하고,
0.5보다 크면 오른쪽(아래쪽)으로 분해되는 비율이 작아져 뷰가 오른쪽(아래쪽)으로 이동한다.





자 오늘도 간단히 좋은 지식을 알아보았다. Chain은 알고 있었지만 style이 있는지는 몰랐다.
그래도 이번에 하나 더 배워 간다.

'TIL > 스터디' 카테고리의 다른 글

SavedStateHandle  (0) 2024.03.25
Jetpack Navigation (safe args)  (0) 2024.03.22
ViewBinding(실제 에러 사례)  (0) 2024.03.20
안드로이드 단일 아키텍처  (0) 2024.03.19
ViewBinding  (0) 2024.03.18
Share Link
reply
«   2024/11   »
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