단일 컴포즈 함수에서 여러번 사용해야되는, 컴포즈 람다
가 있다고 가정해본다.
람다 콜백을 사용할때마다, 새 인스턴스를 생상하여 state 를 사용한다.
LetterBox
...
var isRow { mutableStateOf(true) }
Column(
horizontalAlignment = Alignment.CenterHorizontally
) {
Button(onClick = { isRow = !isRow }) {
Text(text = "Switch")
}
if (isRow) {
//버튼을 클릭할때마다 LetterBox가 재구성된다.
Row(
Modifier.weight(1f),
verticalAlignment = Alignment.CenterVertically
) {
//버튼을 클릭할때마다 LetterBox가 재구성됨
LetterBox(letter = 'A')
LetterBox(letter = 'B')
}
} else {
Column(
Modifier.weight(1f),
verticalArrangement = Arrangement.Center
) {
//버튼을 클릭할때마다 LetterBox가 재구성됨
LetterBox(letter = 'A')
LetterBox(letter = 'B')
}
}
}
...
버튼을 클릭할때마다 A 와 B가 재구성된다.