Skip to content

自适应布局

为了在所有类型的设备上提供一致的用户体验,请将您的应用 UI 调整为不同的显示尺寸、方向和输入模式。

设计自适应布局

设计自适应布局时请遵循以下关键准则:

  • 优先使用 规范布局 模式,例如 list-detail、feed 和 supporting pane。
  • 通过重用内边距、排版和其他设计元素的共享样式来保持一致性。在遵循平台特有的准则的同时,保持跨设备导航模式的一致性。
  • 将复杂的布局分解为可重用的 composable,以实现灵活性和模块化。
  • 调整屏幕密度和方向。

使用窗口尺寸类别

窗口尺寸类别是预定义的阈值,也称为断点,它们将不同的屏幕尺寸分类,以帮助您设计、开发和测试自适应布局。

窗口尺寸类别将应用可用的显示区域分为宽度和高度各三个类别:compact、medium 和 expanded。当您进行布局更改时,请测试所有窗口尺寸的布局行为,尤其是在不同的断点阈值处。

要使用 WindowSizeClass 类别,请将 material3.adaptive 依赖项添加到模块的 build.gradle.kts 文件中的公共源代码集:

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 文档 中了解有关自适应布局的更多信息。