안드로이드/Compose
[ Compose ] - Compose Box
dongx._.2
2024. 5. 19. 00:41
1. Box
요소의 겹침을 허용하는 것이 특징
Column, Row가 LinearLayout과 비슷한 Composable이라면, Box는 FrameLayout과 비슷
setContent {
ComposeTheme {
// 모든 Composable은 Modifier를 적용할 수 있음
Box {
Text(text = "Hello")
Text(text = "12123123~~~~")
}
}
}
위와 같이 Box만 선언 했을 땐 2개의 Text가 겹치는 것을 볼 수 있음
Box(
modifier = Modifier
.background(color = Color.Green)
.fillMaxWidth()
.height(200.dp),
contentAlignment = Alignment.TopEnd
) {
Text(text = "Hello")
Text(text = "12123123~~~~")
}
Modifier를 통해 Box의 크기, 색상 등을 수정할 수 있고, contentAligment를 통해 Box 내의 요소의 위치를 지정할 수 있음
( 추가로 모든 Composable은 Modifier 사용 가능 )
만약 2개의 Text 중 하나의 Text만 옮기고 싶다면, 새로운 Box로 감싸주어야함
setContent {
ComposeTheme {
// 모든 Composable은 Modifier를 적용할 수 있음
Box(
modifier = Modifier
.background(color = Color.Green)
.fillMaxWidth()
.height(200.dp),
) {
Text(text = "Hello")
Box(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
contentAlignment = Alignment.BottomEnd
) {
Text(text = "12123123~~~~") // 이 글자만 오른쪽 아래로 옮기고 싶다면? Box로 감싸기
}
}
}
}
이렇듯 Column, Row, Box는 Compose의 기본 레이아웃에 해당하는 Composable이라고 생각할 수 있음