View
금일 알아 볼 것
오늘은 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 |