XML은 뷰에서 자동으로 업데이트를 처리해준다. 하지만 Compose는 XML과 다르게 명시적으로 알려주어야한다.
아래 코드로 예로 보자.
@Composable
private fun HelloContent() {
Column(modifier = Modifier.padding(16.dp)) {
Text(
text = "Hello!",
modifier = Modifier.padding(bottom = 8.dp),
style = MaterialTheme.typography.bodyMedium
)
OutlinedTextField(
value = "",
onValueChange = { },
label = { Text("Name") }
)
}
}
XML로 만들었다면 텍스트를 입력하면 UI가 변하지만 Compose에서는 변화가 없다.
이는 Compose에서 컴포지션(빌드한 UI) 및 리컴포지션(데이터 변경 시 컴포지션을 업데이트를 위해 다시 실행)가 작동하는 방식 때문이다.
컴포저블 상태
compose에서 remember API를 사용하면 메모리에 객체를 저장할 수 있다.
remember를 사용해서 객체를 저장한 컴포저블을 stateful 이라고 하며, stateless는 컴포저블이 상태를 가지지 않는 것을 말한다.
참조
상태 및 Jetpack Compose | Android Developers
'안드로이드 > Compose' 카테고리의 다른 글
Compose imageView Url로 load해주는 라이브러리 (0) | 2021.12.07 |
---|