반응형
Box, Row, Column, LazyColumn, LazyRow 기본 컨테이너에서 정렬 방법
1. Box
- 자식 요소를 원하는 위치에 배치할 수 있는 컨테이너
정렬 방법
- contentAlignment → 전체 자식 정렬
- Modifier.align() → 각 자식 개별 정렬
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center // 모든 자식 요소 기본 정렬
) {
Text(
text = "이 텍스트는 오른쪽 상단!",
modifier = Modifier.align(Alignment.TopEnd) // 개별 정렬
)
}
contentAlignment = Alignment.Center → 모든 자식 요소를 중앙에 배치
Modifier.align(Alignment.TopEnd) → 이 요소만 오른쪽 상단에 배치
2. Row
- 자식 요소들을 가로로 나열하는 컨테이너
정렬 방법
- verticalAlignment → 세로 정렬 (Row 내부)
- horizontalArrangement → 가로 간격 조정
Row(
modifier = Modifier.fillMaxWidth(),
verticalAlignment = Alignment.CenterVertically, // 세로 중앙 정렬
horizontalArrangement = Arrangement.SpaceBetween // 가로 양 끝 정렬
) {
Text("왼쪽")
Text("오른쪽")
}
verticalAlignment = Alignment.CenterVertically → 텍스트가 세로 중앙 정렬됨
Arrangement.SpaceBetween → 양쪽 끝에 요소 배치
3. Column
- 자식 요소들을 세로로 배치하는 컨테이너
정렬 방법
- horizontalAlignment → 가로 정렬 (Column 내부)
- verticalArrangement → 세로 간격 조정
Column(
modifier = Modifier.fillMaxHeight(),
horizontalAlignment = Alignment.CenterHorizontally, // 가로 중앙 정렬
verticalArrangement = Arrangement.SpaceEvenly // 세로 간격 균등 배치
) {
Text("위쪽 요소")
Text("아래쪽 요소")
}
horizontalAlignment = Alignment.CenterHorizontally → 모든 자식이 가로 중앙 정렬됨
Arrangement.SpaceEvenly → 요소 간 간격이 균등해짐
4. LazyColumn & LazyRow
- 스크롤 가능한 리스트를 만들 때 사용
정렬 방법
- horizontalAlignment → 가로 정렬 (LazyColumn에서만 사용 가능)
- verticalAlignment → 세로 정렬 (LazyRow에서만 사용 가능)
- contentPadding → 리스트 전체의 패딩 설정
LazyColumn(
modifier = Modifier.fillMaxHeight(),
horizontalAlignment = Alignment.CenterHorizontally, // 가로 정렬
contentPadding = PaddingValues(16.dp) // 리스트의 전체 패딩 설정
) {
items(10) { index ->
Text("아이템 $index")
}
}
horizontalAlignment = Alignment.CenterHorizontally → 모든 아이템을 가로 중앙 정렬
contentPadding = PaddingValues(16.dp) → 리스트의 패딩 추가
5. Modifier를 활용한 정렬 설정
Box(
modifier = Modifier.fillMaxSize()
) {
Text(
text = "가운데 정렬된 텍스트",
modifier = Modifier.align(Alignment.Center) // 부모 기준 중앙 배치
)
}
반응형
'코틀린 & 컴포즈 & Java > 컴포즈 Compose' 카테고리의 다른 글
[Compose] LiveData vs StateFlow: Compose에서 어떤 것을 사용할까? (0) | 2025.02.06 |
---|---|
[Compose] Compose에서 key의 역할과 사용법 (0) | 2025.02.06 |
[Compose] Paging3 클린 아키텍처 적용하다 의문점 (0) | 2025.02.06 |
[Compose] TextField의 여백 문제와 해결 방법 (0) | 2025.02.06 |
[Compose] Compose에서 =와 by의 차이 (kotilin 동일) (0) | 2025.02.05 |