@Composable
fun MainView(
modifier: Modifier = Modifier,
imageResourceId : Int,
) {
ConstraintLayout(modifier = modifier.fillMaxSize()) {
val (image) = createRefs()
Image(
painter = painterResource(id = imageResourceId),
contentDescription = "empty",
modifier = Modifier
.constrainAs(image) {
linkTo(
start = parent.start,
end = parent.end,
)
width = Dimension.ratio("1:2")
height = Dimension.ratio("1:0.5")
}
)
}
}
@Composable
fun SoundsList() {
val sounds = listOf(
"CAR HORN", "SIREN", "FIRE ALARM", "RINGTONE", "BARKING", "KNOCKING", "DOORBELL", "CRYING",
)
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight(),
horizontalAlignment = Alignment.CenterHorizontally
) {
Text(
text = "Sounds List",
fontSize = 24.sp,
modifier = Modifier.padding(35.dp),
style = TextStyle(
), fontWeight = FontWeight.Black
)
LazyColumn(
modifier = Modifier.height(500.dp)
) {
items(sounds) { sound ->
var selected1 by remember { mutableStateOf(false)}
Rows(name = sound, change = selected1, onCheckedChange = {
selected1 = it
})
Divider()
}
}
}
}
@Composable
private fun Rows(name:String, change:Boolean, onCheckedChange: (Boolean) -> Unit) {
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(text = name,
modifier = Modifier
.padding(15.dp)
.weight(3f),
textAlign = TextAlign.Start,
)
Switch(
checked = change,
onCheckedChange = onCheckedChange,
colors = SwitchDefaults.colors(
checkedThumbColor = Color.White,
uncheckedThumbColor = Color.White,
checkedTrackColor = Color.Green,
uncheckedTrackColor = Color.Gray
),
modifier = Modifier.weight(1f)
)
}
}
Vertically scrollable component was measured with an infinity maximum height constraints, which is disallowed.
오류 상황 : 안드로이드 스튜디오에서, List view를 만드는 과정에 Column 안에 LazyColumn을 썼을 때 infinity maximum height constraints 에러가 났다. 구글링을 해보니, 다른 구성 요소 내 중첩된 경우 1) with로 래핑해 사용한다. 2) 무한 높이 제약을 유발할 수 있는 부분 찾기 가 해결 방안인 듯 했다.
확인 사항: 래핑이 잘 안되서 높이 제한을 두는 방법을 찾다가 공식 문서에서 modifier = Modifier.height( )를 LazyColumn 안에 적어 제한하는 방법을 알게 됐고 해결했다.
'Android' 카테고리의 다른 글
[졸업작품기] Server와 Client 의 HTTP 통신 구현하기 (0) | 2023.05.10 |
---|---|
[졸업작품기] Kotlin에서 Notification 개발하기 (0) | 2023.03.25 |
[졸업작품기] Kotlin에서 실시간 위치 기반 지도 연동하기 (0) | 2023.02.27 |
Error while placing text to the leftmost and switch to the rightmost in the same row (0) | 2023.02.11 |
[졸업작품기] Figma에서 Android 프로젝트 프로토타입 구성하기 (0) | 2023.02.05 |