예제를 통해 알아보자

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
TestComposeTheme {
SlotEx()
}
}
}
}
@Composable
fun checkboxWithSlot(
checked: Boolean,
onCheckedChange: () -> Unit,
content: @Composable RowScope.() -> Unit,
) {
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.clickable {
onCheckedChange()
}) {
Checkbox(
checked = checked,
onCheckedChange = { onCheckedChange() }
)
content()
}
}
@Composable
fun SlotEx() {
var checked1 by remember { mutableStateOf(false) }
var checked2 by remember { mutableStateOf(false) }
Column {
checkboxWithSlot(checked = checked1, onCheckedChange = { checked1 = !checked1 }
) {
Text(text = "지디")
}
checkboxWithSlot(checked = checked2, onCheckedChange = { checked2 = !checked2 }
) {
Text(text = "태양")
}
}
}
@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
TestComposeTheme {
SlotEx()
}
}