Material 3 인셋 사용

사용 편의를 위해 대부분의 내장 Material 3 컴포저블(androidx.compose.material3)은 Material 사양에 따라 앱에 컴포저블이 배치되는 방식에 따라 인셋을 직접 처리합니다.

인셋 처리 컴포저블

다음은 인셋을 자동으로 처리하는 Material 구성요소 목록입니다.

앱 바

콘텐츠 컨테이너

Scaffold

기본적으로 Scaffold는 사용자가 사용하고 소비할 수 있도록 인셋을 매개변수 paddingValues로 제공합니다. Scaffold는 콘텐츠에 인셋을 적용하지 않습니다. 이 책임은 개발자에게 있습니다. 예를 들어 Scaffold 내부의 LazyColumn로 이러한 인셋을 사용하려면 다음을 실행합니다.

Scaffold { innerPadding ->
    // innerPadding contains inset information for you to use and apply
    LazyColumn(
        // consume insets as scaffold doesn't do it by default
        modifier = Modifier.consumeWindowInsets(innerPadding),
        contentPadding = innerPadding
    ) {
        // ..
    }
}

다음 동영상은 Scaffold 내의 LazyColumn를 보여주며, 여기에는 전면 유리 디스플레이가 사용 중지된 상태와 사용 설정된 상태가 나와 있습니다.

기본 인셋 재정의

컴포저블에 전달된 windowInsets 매개변수를 변경하여 컴포저블의 동작을 구성할 수 있습니다. 이 매개변수는 대신 적용할 다른 유형의 창 인셋이거나 빈 인스턴스(WindowInsets(0, 0, 0, 0))를 전달하여 사용 중지할 수 있습니다.

예를 들어 LargeTopAppBar에서 인셋 처리를 사용 중지하려면 windowInsets 매개변수를 빈 인스턴스로 설정합니다.

LargeTopAppBar(
    windowInsets = WindowInsets(0, 0, 0, 0),
    title = {
        Text("Hi")
    }
)