https://developer.android.com/jetpack/compose/mental-model?hl=ko
Compose 이해 | Jetpack Compose | Android Developers
Compose 이해 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Jetpack Compose는 Android를 위한 현대적인 선언형 UI 도구 키트입니다. Compose는 프런트엔드 뷰를 명령
developer.android.com
이름 목록 받아서 각 사용자에 대한 인사말 생성
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
StudyComposeEventTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
// 리스트
val list: List<String> = listOf("엉덩이", "궁뎅이", "뿡")
Greeting(list)
}
}
}
}
}
fun Greeting(names: List<String>, modifier: Modifier = Modifier) {
Column() {
for (name in names) {
Text("Hello $name")
}
}
}
반복문
: name in names
:: names만큼 반복
재구성
ClickCounter (버튼 클릭 카운트)
var clicks = remember {
mutableStateOf(0)
}
ClickCounter(clicks.value, onClick = {clicks.value++})
remember : State값이 바뀌면 재구성이 일어나는데, 이전 State를 기억해야하는 경우 값 저장
MutableState : 읽기와 쓰기를 관찰
-> mutableStateOf() 안에 들어가는 변수는 디폴드 값
-> .value는 그 변수의 값
-> onClick이 될 때마다 State가 바뀌어 재구성이 일어남
@Composable
fun ClickCounter(clicks: Int, onClick: () -> Unit) {
Button(onClick = onClick) {
Text("I've been clicked $clicks times")
}
}
SharedPrefsToggle (체크 박스)
var text = remember {
mutableStateOf("unchecked")
}
var isValue = remember {
mutableStateOf(false)
}
SharedPrefsToggle(text.value, isValue.value,
onValueChanged = {
if (!isValue.value) {
text.value = "checked"
} else {
text.value = "unchecked"
}
isValue.value = !isValue.value
})
@Composable
fun SharedPrefsToggle(
text: String,
value: Boolean,
onValueChanged: (Boolean) -> Unit
) {
Row() {
Text(text)
Checkbox(checked = value, onCheckedChange = onValueChanged)
}
}
'앱 개발(android)' 카테고리의 다른 글
[Jetpack Compose | Kotlin] Retrofit2 (0) | 2023.08.23 |
---|---|
[Jetpack Compose | Kotlin] 계산기 만들기 (1) | 2023.08.18 |
[Jetpack Compose | Kotlin] 기초 정리 (0) | 2023.07.06 |
[Android | JAVA ] 카메라 비활성화 (0) | 2023.07.06 |
[ Android | JAVA ] 디바이스 관리자 권한 (0) | 2023.07.05 |