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")
    }
)