🤖 Compose

[Compose] scaffold

콩드로이드 2025. 1. 6. 16:46

scaffold

- slot api의 확장 

- paramater로 여러 슬롯을 제공하여 다양한 UI(ex : topBar, bottomBar, floatingActionButton, drawerContent, content)을 쉽게 정의하고 구성 가능 

- 기본틀로 사용하면 체계적으로 개발하기 좋다 

 

- Scaffold는 기본적으로 content 슬롯에 패딩을 적용해야하고 아니면 아래와 같은 에러가 뜬다 

Content padding parameter it is not used More

 

 

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ScaffoldTest() {
    var checked by remember { mutableStateOf(false) }

    Scaffold(
        topBar = {
            TopAppBar(
                navigationIcon =  {
                    IconButton(onClick = { }) {
                        Image(imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null)
                    }
                },
                title = { Text("Scaffold TopBar") }
            )
        }
    ) { paddingValues ->
        Surface(modifier = Modifier.padding(paddingValues)) {
            CheckBoxText(checked, onCheckedChanged = {
                checked = !checked
            }) {
                Text("check box")
            }
        }
    }

}
@Composable
fun CheckBoxText(checked: Boolean,
                 onCheckedChanged: () -> Unit,
                 content: @Composable RowScope.() -> Unit) {
    Row(verticalAlignment = Alignment.CenterVertically,
        modifier = Modifier.clickable {
            onCheckedChanged()
        }) {
        Checkbox(checked = checked,
            onCheckedChange = {
                onCheckedChanged()
            })
        content()
    }
}

 

 

'🤖 Compose' 카테고리의 다른 글

[Compose] ConstraintLayout, ConstraintSet  (0) 2025.01.07
[Compose] Recomposition  (0) 2025.01.06
[Compose] Slot API  (0) 2025.01.06
[Compose] Component 알아보기 - TopAppBar  (0) 2025.01.04
[Compose] Component 알아보기 - TextField  (0) 2025.01.04