Skip to content

적응형 레이아웃

모든 유형의 기기에서 일관된 사용자 경험을 제공하려면 앱의 UI를 다양한 디스플레이 크기, 방향 및 입력 모드에 맞게 조정하세요.

적응형 레이아웃 설계하기

적응형 레이아웃을 설계할 때 다음 주요 가이드라인을 따르세요:

  • 정규 레이아웃 패턴(예: 목록-상세, 피드, 지원 창)을 선호하세요.
  • 패딩, 타이포그래피 및 기타 디자인 요소에 공유 스타일을 재사용하여 일관성을 유지하세요. 플랫폼별 가이드라인을 따르면서 기기 전반에 걸쳐 탐색 패턴을 일관성 있게 유지하세요.
  • 유연성과 모듈성을 위해 복잡한 레이아웃을 재사용 가능한 컴포저블로 분할하세요.
  • 화면 밀도와 방향에 맞춰 조정하세요.

창 크기 클래스 사용하기

창 크기 클래스는 미리 정의된 임계값(중단점이라고도 함)으로, 다양한 화면 크기를 분류하여 적응형 레이아웃을 설계, 개발 및 테스트하는 데 도움을 줍니다.

창 크기 클래스는 앱에 사용 가능한 디스플레이 영역을 너비와 높이 모두에 대해 컴팩트, 미디엄, 확장이라는 세 가지 범주로 분류합니다. 레이아웃을 변경할 때는 모든 창 크기, 특히 다양한 중단점 임계값에서 레이아웃 동작을 테스트하세요.

WindowSizeClass 클래스를 사용하려면 모듈의 build.gradle.kts 파일에 있는 공통 소스 세트에 material3.adaptive 종속성을 추가하세요.

kotlin
commonMain.dependencies {
    implementation("org.jetbrains.compose.material3.adaptive:adaptive:1.2.0-alpha05")
}

WindowSizeClass API를 사용하면 사용 가능한 디스플레이 공간에 따라 앱의 레이아웃을 변경할 수 있습니다. 예를 들어, 창 높이에 따라 상단 앱 바의 가시성을 관리할 수 있습니다.

kotlin
@Composable
fun MyApp(
    windowSizeClass: WindowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
) {
    // Determines whether the top app bar should be displayed
    val showTopAppBar = windowSizeClass.isHeightAtLeastBreakpoint(WindowSizeClass.HEIGHT_DP_MEDIUM_LOWER_BOUND)

    // Uses bar visibility to define UI 
    MyScreen(
        showTopAppBar = showTopAppBar,
        /* ... */
    )
}

다음 단계

Jetpack Compose 문서에서 적응형 레이아웃에 대해 자세히 알아보세요.