Compose Material 3

運用新一代的 Material Design 3 元件建構 Jetpack Compose UI。Material 3 具有新的主題設定和元件,另外還提供了動態色彩等 Material You 個人化功能,與全新的 Android 12 視覺風格及系統 UI 相互呼應。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 2 月 21 日 1.2.0 - - 1.3.0-alpha01

結構

Compose 是由 androidx 中的 7 個 Maven 群組 ID 所組成。每個群組都包含一個指定功能子集,且各有一組專屬的版本資訊。

下表提供各群組的說明和每組版本資訊的連結。

群組說明
compose.animation在 Jetpack Compose 應用程式中建構動畫,提供豐富的使用者體驗。
compose.compiler透過 Kotlin 編譯器外掛程式轉換 @Composable 函式,並啟用最佳化功能。
compose.foundation透過現成的構成元素編寫 Jetpack Compose 應用程式,然後進一步擴充基礎,建構出自己的設計系統元件。
compose.material運用現成的 Material Design 元件建構 Jetpack Compose UI。這是更高層級的 Compose 進入點,用意是確保提供的元件與 www.material.io 上所述元件相符。
compose.material3運用新一代的 Material Design 3 元件建構 Jetpack Compose UI。Material 3 提供新的主題設定和元件,以及動態色彩等 Material You 個人化功能,可呼應全新的 Android 12 視覺風格和系統 UI。
compose.runtimeCompose 程式設計模型和狀態管理的基本構成元素,以及 Compose Compiler 外掛程式指定的核心執行階段。
compose.ui與裝置互動所需的 Compose UI 基礎元件,包括版面配置、繪圖及輸入。

宣告依附元件

如要新增 Compose 的依附元件,必須將 Google Maven 存放區新增至您的專案。詳情請參閱「Google 的 Maven 存放區」一節。

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

dependencies {
    implementation "androidx.compose.material3:material3:1.2.0"
    implementation "androidx.compose.material3:material3-window-size-class:1.2.0"
    implementation "androidx.compose.material3:material3-adaptive:1.0.0-alpha06"
    implementation "androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha04"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material3:material3:1.2.0")
    implementation("androidx.compose.material3:material3-window-size-class:1.2.0")
    implementation("androidx.compose.material3:material3-adaptive:1.0.0-alpha06")
    implementation("androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha04")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

Compose Material3 Adaptive Navigation Suite 1.0 版

1.0.0-alpha03 版本

2024 年 2 月 7 日

發布 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha03androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha03androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha03查看 1.0.0-alpha03 版的修訂項

API 變更

  • 將套件名稱從導覽套件更新為 Navigationsuite (I7eff7)
  • 在 API 中公開 MutableInteractionSource 的 Material3 元件已更新,現在會顯示預設為空值的可為空值 MutableInteractionSource。這裡沒有語意變更:傳遞空值表示您不想提升 MutableInteractionSource,且會視需要在元件內建立。變更為空值可讓部分元件永遠不會分配 MutableInteractionSource,也可讓其他元件只在需要時延遲建立執行個體,進而提高這些元件的效能。如果您不是使用傳遞至這些元件的 MutableInteractionSource,建議改為傳遞空值。此外,建議您在元件中做出類似的變更。(I41abbb/298048146)

1.0.0-alpha02 版

2023 年 12 月 13 日

發布 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha02androidx.compose.material3:material3-adaptive-navigation-suite-android:1.0.0-alpha02androidx.compose.material3:material3-adaptive-navigation-suite-desktop:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

新功能

修正錯誤

  • 修正當根層級具有 modifier.fillMaxSize 時,導覽元件填滿整個螢幕畫面的問題。(c9cf250b/312664933)

1.0.0-alpha01 版

2023 年 11 月 15 日

發布 androidx.compose.material3:material3-adaptive-navigation-suite:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

新功能

Compose Material3 Adaptive 1.0 版

1.0.0-alpha06 版

2024 年 2 月 7 日

發布 androidx.compose.material3:material3-adaptive:1.0.0-alpha06androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha061.0.0-alpha06 版包含此連結所列的修訂項目。

新功能

  • ThreePaneScaffoldNavigator 返回導覽新增其他行為選項。(I858aa)。
  • 在導覽記錄中新增選用目的地內容。(Ibd7e6)。

1.0.0-alpha05 版

2024 年 1 月 24 日

發布 androidx.compose.material3:material3-adaptive:1.0.0-alpha05androidx.compose.material3:material3-adaptive-android:1.0.0-alpha05androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha05查看 1.0.0-alpha05 版的修訂項

新功能

  • 支援在 Scaffold 導覽和值計算中偵測記錄 (I71d46)

1.0.0-alpha04 版

2024 年 1 月 10 日

發布 androidx.compose.material3:material3-adaptive:1.0.0-alpha04androidx.compose.material3:material3-adaptive-android:1.0.0-alpha04androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha041.0.0-alpha04 版包含以下修訂項目。

新功能

  • 在窗格 Scaffold 中新增邊緣對邊緣支援 (I1b462)

API 變更

  • 將 Posture 中的轉軸邊界屬性移至轉軸資訊清單 (I24f90)

修正錯誤

  • 修正 AnimatedPane 未重組的問題 (c3f573d)

1.0.0-alpha03 版本

2023 年 12 月 13 日

發布 androidx.compose.material3:material3-adaptive:1.0.0-alpha03androidx.compose.material3:material3-adaptive-android:1.0.0-alpha03androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha03查看 1.0.0-alpha03 版的修訂項

API 變更

  • 將 Scaffold 角色變更為 ThreePaneScaffoldRole 的別名。(I65bd1)。
  • 為 Scaffold 角色建立基礎類別 (I4784d)
  • AnimatedPane 的內容中移除不必要的參數 (Ibc73b)
  • 重新命名 collectWindowSizeAsState,並改為傳回原始值 (I480f4)

1.0.0-alpha02 版

2023 年 11 月 29 日

發布 androidx.compose.material3:material3-adaptive:1.0.0-alpha02androidx.compose.material3:material3-adaptive-android:1.0.0-alpha02androidx.compose.material3:material3-adaptive-desktop:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

API 變更

  • 從自動調整式 Scaffold API 分割導覽 API。(Ic4045)。
  • 移除 GutterSize 類別。(I785b3)。

修正錯誤

  • 修正未使用 AnimatedPane 時不會切換窗格的問題 (d88f181)

1.0.0-alpha01 版

2023 年 11 月 15 日

發布 androidx.compose.material3:material3-adaptive:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

新功能

Material3 自動調整條件 API:

Material3 自動調整窗格 Scaffold 指令 API:

Material3 自動調整窗格 Scaffold API:

Compose Material3 1.3 版本

1.3.0-alpha01 版

2024 年 2 月 21 日

發布 androidx.compose.material3:material3-*:1.3.0-alpha011.3.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 更新 Compose M3 ModalBottomSheet,以支援 U+ 上的預測返回功能 (Iccf32b/281967264b/304850357)
  • 更新 Compose M3 SearchBar,以支援 U+ 上的預測返回功能 (I657f8)
  • 更新滑桿,加入間隔和停止指標來改善無障礙功能。(I3058e)。
  • 更新 ProgressIndicator,透過新增間隔和停止指標來改善無障礙功能。(I21451)。
  • 為內容豐富的工具提示新增預設插入點,全新的豐富 tooltip API 現在允許在指定錨點 LayoutCoordinates 中繪製自訂插入點。(Ifd42c)。

行為變更

  • Material Design 元件已遷移至新的漣漪 API,且不再查詢 RippleTheme

API 變更

  • 有趣的《drawStopIndicator》現已公開發布。(I3f59f)。
  • DatePickerformatWithSkeleton 函式標示為內部函式 (Ic65dc)
  • DropdownMenu 現在支援自訂顏色、形狀、高度和框線。(I8e981b/289554448b/301887035b/283654243)
  • 在 API 中公開 MutableInteractionSource 的 Material3 元件已更新,現在會顯示預設為 null 的可為空值 MutableInteractionSource這裡沒有語意變更:傳遞空值表示您不想提升 MutableInteractionSource,且會視需要在元件內建立。變更為空值可讓部分元件永遠不會分配 MutableInteractionSource,也可讓其他元件只在需要時延遲建立執行個體,進而提高這些元件的效能。如果您不是使用傳遞至這些元件的 MutableInteractionSource,建議改為傳遞空值。此外,建議您在元件中做出類似的變更。(I41abbb/298048146)
  • 新增 RippleConfigurationLocalRippleConfiguration,以允許每個元件 / 子樹狀結構使用固定值自訂分享關係圖。舉例來說,您可以變更無法控制的元件顏色,或停用元件的漣漪效果。在大部分情況下,應使用預設值:這些 API 可做為自訂個別元件 / 有限子樹狀結構的替代方法。如要進行更廣泛的變更和自訂設計系統,請改用 createRippleModifierNode 自行建構漣漪效果。(I7b5d6b/298048146)
  • 在 Material3 中新增 Ripple API,取代已淘汰的 rememberRipple。此外,還要新增臨時 CompositionLocal (LocalUseFallbackRippleImplementation),還原 material3 元件,以便使用已淘汰的 rememberRipple / RippleTheme API。這項變更將在下一個穩定版本中移除,只是只是暫時的遷移輔助程式,僅適用於您要提供自訂 RippleTheme 的情況。(I34cbcb/298048146)

修正錯誤

  • 已移除 ModalBottomSheet 中的子組合以改善效能。修正 ModalBottomSheet 搭配 LookaheadScope 時,在特定情況下可能會停止運作的問題。(I2a198)。
  • 已移除 BottomSheetScaffold 中的子組合以改善效能。修正了 BottomSheetScaffold 搭配 LookaheadScope 在特定情況下會停止運作的問題。(Ie6401)。
  • 徽章對齊方式已調整,讓徽章的對齊方式依右上角更接近錨定內容中心的位置。(I18a28)。
  • 修正 DateRangePicker 的一個 11y 問題,其中顯示「年份-年份」文字標題可由螢幕閱讀器、切換控制功能和 Voice Access 使用者採取行動。(I2ac55)。
  • 修正 mediumTopAppBarColors 參數順序錯誤。(Ibe64a)。

1.2 版本

1.2.0 版

2024 年 2 月 7 日

發布 androidx.compose.material3:material3-*:1.2.01.2.0 版包含此連結所列的修訂項目。

已知問題

  • 為提升效能,我們在 PrimaryTabRow 中導入 View-Compose 互通性轉譯錯誤。解決方法是搭配使用 TabRowTabRowDefaults.PrimaryIndicator

自 1.1.0 版以來的重要變更

全新 Material Design 3 元件

改善現有的 Material Design 3 元件。

將實驗性 API 升級為穩定版!

提升效能

1.2.0-rc01 版

2024 年 1 月 24 日

發布 androidx.compose.material3:material3-*:1.2.0-rc01查看 1.2.0-rc01 版的修訂項目

修正錯誤

  • 修正 mediumTopAppBarColors 參數順序錯誤。(Ibe64a)。
  • 修正在 1.2.0-beta02 中導入的 CardDefaults.cardColors 錯誤,該錯誤不會根據 containerColor 參數值更新 contentColor。(Iee041b/319671246)
  • 修正了 disabledContentColor 中在 1.2.0-beta02 中導入的錯誤,並新增小型最佳化項目。(I6dda1b/318428829)

1.2.0-beta02 版

2024 年 1 月 10 日

發布 androidx.compose.material3:material3-*:1.2.0-beta021.2.0-beta02 版包含此連結所列的修訂項目。

已知錯誤

  • 根據預設,IconButtonColors 中的錯誤會將 disabledContentColor 指派給 Alpha 版 (0.38f),而非 LocalContentColor,而非使用者指定的 contentColor。解決方法是明確設定 disabledContentColor。我們將在下一個版本中修正這個問題。

API 變更

  • 新增為純 Tooltip API 啟用工具提示插入點的功能。(Ibf767)。
  • SwipeToDismissStaterememberSwipeToDismissSwipeToDismissValue 全部已重新命名為 _SwipeToDismissBox_。(I68d6d)。

修正錯誤

  • 已修正 ListItem 結束邊框間距值,以符合規格。(Ibd68bb/305342674)
  • 描繪資訊卡的外框顏色現已正確對應到 OutlineVariant。(I75480b/310979715)
  • 動態色彩現在會從系統定義的顏色角色中擷取。這樣可以改善可存取內容的對比度,並且更接近 Material 規格的動態色彩。(I1de96)
  • 修正了在 Android T/13 以上版本中出現 android:enableOnBackInvokedCallback="true" 時發生的 ModalBottomSheet 返回處理問題。(I728dcb/306196110)

1.2.0-beta01 版

2023 年 12 月 13 日

發布 androidx.compose.material3:material3-*:1.2.0-beta01查看 1.2.0-beta01 版的修訂項目

API 變更

  • TabIndicatorScope 標示為實驗性質。(I45c88)。
  • 移除工具提示的已淘汰實驗性 API。(I438cb)。
  • 變更新的 TabRow 超載,而不使用子組合。這樣就會以不同的方式,使用所提供的自訂修飾符建構 TabRow 指標。(Ife741)。
  • 淘汰 DismissDirectionDismissValue API。這些項目已合併至 SwipeToDismissValue,其值代表 SwipeToDismissBox 的位置和方向。DismissState.progress 現已標示為 FloatRange,介於 0.01.0 之間。我們移除了 DismissState 個淘汰的省電模式和建構函式。SwipeToDismiss 元件、狀態和預設物件已標示為實驗性質。(Ib54f2)。

修正錯誤

  • PullToRefresh 的預設指標現在是開放式箭頭,而非實心三角形。(I67be3)。

1.2.0-alpha12 版本

2023 年 11 月 29 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha121.2.0-alpha12 版本包含以下修訂項目。

API 變更

  • RangeSlider 現在會採用 Kotlin 範圍 (例如0f..1f) 取代自訂的 FloatRange 值類別。SnapFlingBehavior.kt 現在也會使用 Kotlin 範圍。(I025cb)。
  • 將修飾符工廠函式標示為 @Stable。(Ib109f)。

1.2.0-alpha11 版本

2023 年 11 月 15 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha111.2.0-alpha11 版本包含以下修訂項目。

新功能

  • 實作 PullToRefreshContainerPullToRefreshState,其可在 Material3 中提供提取重新整理實作。(I16456b/261760718)

API 變更

  • SwipeToDismissBox DismissDirectionDismissValue 標示為實驗性質。(I517b0)。
  • SwipeToDismiss 重新命名為 SwipeToDismissBoxbackground 重新命名為 backgroundContent,並將 dismissContent 重新命名為結尾 content lambda。(I7f4d3)。
  • ChipElevationSelectableChipElevation 的建構函式設為公開。(Ie0c48b/308432421)
  • 正在新增「ModalBottomSheetProperties」。正在將 securePolicy 移至 ModalBottomSheetProperties。正在將 isFocusableshouldDismissOnBackPress 新增至 ModalBottomSheetProperties。這些新的布林值可協助決定強制回應底部功能表應如何處理輸入法編輯器事件。(Iea56fb/278216859)
  • 更新 RangeSliderSlider 狀態,以移除 initialOnValueChange、初始前置字串和適當的 kdocs。(I57d30)。
  • 淘汰 ChipBorder 類別及其相關聯的函式呼叫,建議直接改用 BorderStroke。(I89cc2)。
  • 基礎工具提示 API 現已更名為 @ExperimentalFoundationApi。(I30b0b)。
  • TabRowScrollableTabRow 已淘汰,新的「主要」和「次要」變化版本會標示為實驗性質。(I0def6)。
  • 篩選器和輸入方塊現在直接使用 BorderStroke。(I07a8d)。
  • SegmentedButton 現在直接使用 BorderStroke。(I89b9b)。
  • 將一般 AlertDialog 函式重新命名為 BasicAlertDialog,並淘汰先前的函式。(Idbe52)。
  • SwipeToDismiss API 重新命名為 SwipeDismiss,並將新的 SwipeDismiss API 升級為穩定版。(I14cbe)。
  • tonalElevationshadowElevation 新增至工具提示 API。此外,由於 TooltipBoxPlainTooltipRichTooltip API 意外發布為穩定版,因此將 API 移回實驗功能。(If0f66b/293939035)
  • 將實驗性晶片 API 升級為穩定版。(Iea2c3)。
  • 已從 Material3 可點擊的資訊卡中移除 @ExperimentalMaterial3Api 註解。(I88dbf)。

修正錯誤

  • 修正問題:在使用巢狀 Lookahead 和 Lazy 版面配置的情況下,SwipeToDismiss 會在特定情況下停止運作。(Ica8d1b/297226562)

1.2.0-alpha10 版本

2023 年 10 月 18 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha101.2.0-alpha10 版本包含以下修訂項目。

API 變更

  • 正在將 BadgeBadgedBox 升級為穩定版。(I67f16b/261565132)
  • securePolicy 新增為 ModalBottomSheet 的參數,讓使用者可以定義 WindowManager.LayoutParams.FLAG_SECURE 的行為。(Icdac8b/296250262)
  • 新增 LinearProgressIndicatorCircularProgressIndicator 的超載,這會接受 progress 做為 lambda。這些項目的效能應該會高於舊版。(I824e6b/295616656)
  • StandardSizeClasses 重新命名為 AllSizeClasses。(I8cb07)。
  • 結合視窗大小類別的計算函式。(Iad935)。

修正錯誤

  • 修正當顯示的月份落在允許的年份範圍時,快速點選導覽箭頭按鈕時發生的 DatePicker 當機問題。(I46f36b/290954897b/297002119)
  • [導覽邊欄/列] 支援指標的透明顏色。(Ie0a9bb/267289987)

1.2.0-alpha09 版本

2023 年 10 月 4 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha091.2.0-alpha09 版本包含以下修訂項目。

API 變更

  • 遷移 ModalNavigationDrawerDismissibleNavigationDrawer,以使用新的 AnchoredDraggable API。DrawerStateanimateTo 已替換為開放式和關閉方法,且偏移值現已以浮點值的形式顯示,而非狀態物件您可以透過 currentOffset 直接存取偏移值。(I0a72c)。
  • 已新增非可組合函式,用於直接建立 DatePickerStateDateRangePickerState。如有需要,這些函式可以做為 rememberDatePickerStaterememberDateRangePickerState 函式的替代項目。(I70326b/291524052)
  • 已修正和捲動式 TabRows 現在有主要和次要變化版本。這些類別可正確對應至 Material3 中定義的顏色和指標行為。
  • PrimaryScrollableTabRowSecondaryScrollableTabRow 現在公開捲動狀態(Iec8f5b/260572337)
  • 新增 sheetMaxWidth 參數,讓開發人員設定該參數來指定工作表的跨寬度。如果需要橫跨整個螢幕寬度的工作表,可以將 Dp.Unspecified 傳入參數。(Ifb7c9b/266697696)
  • PlainTooltipBoxRichTooltipBox API 加回已淘汰的方法。(I246fa)。

修正錯誤

  • 修正透過 DatePickerFormatter 初始化 DatePicker 時因特定日期骨架轉換成日期模式 (例如 YY) 時保持不變的異常終止問題。(I01f29)。

1.2.0-alpha08 版

2023 年 9 月 20 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha08查看 1.2.0-alpha08 版的修訂項

行為破壞性變更

  • ColorScheme 現已成為不可變動的,會降低個別顏色更新效率,但會更有效率地使用顏色。這項變更的原因是,大多數應用程式的主要用途都不會更新個別顏色。這種做法依然可行,但這次的重組方式比以往更多,進而透過所有 Material Design 程式碼大幅減少狀態訂閱項目的數量,並會影響到更多標準用途的初始化作業和執行階段成本。(Ic447db/297212873)
  • 色調海拔高度不再以不同的互動狀態動畫呈現,以符合規格。(Icdd12)

API 變更

  • 新增 BottomAppBar 做為參數,做為 BottomAppBarScrollBehavior,以便在內容捲動時自動隱藏。此外,還新增了 FabPosition.EndOverlay,讓懸浮動作按鈕 (FAB) 顯示在 Scaffold 的底部應用程式列上,而非錨定在上面。(Iecb47)。
  • 新增以 BasicTooltipBox 為基礎建構的簡易標籤元件,且在輕觸標籤邊界外時不會關閉。(I821f9)。

修正錯誤

  • 已移除工具提示的 rememberSaveable。(Icc131b/299500338)
  • 加入臨時旗標,以控制 Scaffold 應在測量期間或放置期間測量子項的情況。根據預設,這會在測量時進行評估。如果新做法發生問題,請回報問題。(I0b354)。
  • 針對裝置螢幕寬度使用正確的測量值,修正 BottomSheet 中的水平邊緣到邊緣區域。(I1df0cb/299058752)
  • 修正 ModalBottomSheet 在工作表上向下滑動關閉時,不會呼叫 onDismissedRequest 的錯誤。(Idfdd8)。

1.2.0-alpha07 版

2023 年 9 月 6 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha07查看 1.2.0-alpha07 版的修訂項

新功能

  • compose material 1.6.0-alpha05 已支援自動鏡像圖示,請參閱版本資訊,進一步瞭解自動鏡像圖示。

API 變更

  • SliderState 會實作 DraggableState (I9b116)
  • 將形狀變更為必要參數。在形狀輔助函式中,將 position 重新命名為 index。(I34941)。
  • 更新 DatePicker formatWithSkeleton,加入可當做快取使用的地圖。(I3195f)。
  • 已將 BasicTooltipBox 新增至 compose.foundation 並更新 PlainTooltipBoxRichTooltipBox,以便將 TooltipBox 與新的 PlainTooltipRichTooltip 可組合項搭配使用。(I79e1d)。

修正錯誤

  • dynamicLightColorSchemedynamicDarkColorScheme 現在會針對表面和 surfaceContainer 角色傳回較高的色域顏色。(I5e901)。
  • 修正了以下問題:部分在 LookaheadScope 的 Scaffold 內使用子組合 (例如 BottomSheetScaffold) 的元件嘗試過早讀取其大小。(I297b4I871f1b/295536718)。

1.2.0-alpha06 版

2023 年 8 月 23 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha06查看 1.2.0-alpha06 版的修訂項目

修正錯誤

  • 已修正 DropdownMenuoffset 計算方式,讓 x 偏移僅取決於本機版面配置方向,而 y 偏移值在選單接近畫面底部時將不再反轉。(Iccc74b/294103942)
  • 已修正 DropdownMenuoffset 計算方式,讓 x 偏移僅取決於本機版面配置方向,而 y 偏移值在選單接近畫面底部時將不再反轉。(Ib87a2b/294103942)

1.2.0-alpha05 版

2023 年 8 月 9 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha05查看 1.2.0-alpha05 版的修訂項目

API 變更

  • 核取方塊和 TriStateCheckbox 顏色更新。CheckboxDefaults.colors() disabledUncheckedColor 現在只會影響核取方塊的邊框。特殊情況下,您必須在停用和未勾選時設定內部方塊顏色,因此您必須使用自訂的 CheckboxColors 執行個體來指定您想要的顏色值。(I77d17b/291943198)

1.2.0-alpha04 版

2023 年 7 月 26 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha041.2.0-alpha04 版包含此連結所列的修訂項目。

新功能

  • 實驗性 Segmented Button API (Ifc8fb)
  • 分隔線現在提供可控制方向的參數,以支援垂直分隔線。(I4c899b/288438593)

API 變更

  • 我們將密度依附元件移至元件層級。這適用於下列元件:SwipeToDismiss 和以工作表為基礎的元件。請使用所提供的全新超載,其中密度是參數。(I1846e)。
  • 其他註解,用於指定允許可組合項的輸入值 (Ief234)
  • 為區隔的按鈕和「Split」語意新增圖示參數,讓區隔按鈕能夠實作單選題,並可切換使用複選功能,分別使用 SelectableSegmentedButtonRowToggelableSegmentedButtonRow。(I38740)。
  • 分隔線已重新命名為 HorizontalDivider。新增 VerticalDivider 功能。(I5975c)。
  • 在實驗性 Material3 API 中,變更 ClosedFloatingPointRange 用於較輕量 FloatRange 的方式,盡可能減少自動黑邊。(I4aab5)。
  • FabPosition 新增開始對齊 (Ib7aeab/170592777)

修正錯誤

1.2.0-alpha03 版

2023 年 6 月 21 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha03查看 1.2.0-alpha03 版的修訂項

行為變更

  • 在 Material 3 字體排版中,includeFontPadding 現在預設為 false。預設行高樣式也已變更為 Trim.NoneAlignment.Center,而明確的 lineHeight (以 sp 為單位) 已新增至 TypographyTextStyle。如要自訂這些值,請參閱 API 文件,並參閱網誌文章深入瞭解這些異動。(I6266fIcabc3)。

新功能

  • RangeSlider 新增超載,這是元件的有狀態版本。建立 RangeSliderState,保留目前使用中測試群組的所有資訊、RangeSlider 元件的測量結果,以及拖曳和手勢邏輯。(I8c270)。
  • 搜尋列現在可透過新增的 shadowElevation 參數支援陰影。(Ia5369b/271040353)
  • ColorScheme 現在支援新的 SurfaceContainer 角色
  • 現在可以透過 LocalTonalElevationEnabled 本機組合停用途徑色調高度重疊。(Ic203cb/277774590)

API 變更

  • 開啟元件顏色建構函式。(I8c4a6)。
  • 在兩個工具提示 API 中加入可聚焦參數,讓開發人員允許工具提示使用觸控事件。請注意,這可能會導致無障礙焦點的自動週遊功能發生中斷。(Ie32d8)。
  • 針對效能和記憶體配置最佳化無障礙功能。(Iede48)。
  • 公開 DefaultSizeClasses 並為 WindowSizeClasses 建立 StandardSizeClasses (I91838)
  • WindowWidth/HeightSizeClass 變更為浮點值類別 (Ie686e)

修正錯誤

  • Scaffold 的 contentWindowInsets 參數現在會採用已使用的視窗插邊。請注意,提供這些參數時,根據 topBarbottomBar 的內容邊框間距行為維持不變。(I08b73b/264601542)
  • 修正中間應用程式列的對齊方式,確保長標題無法顯示在動作圖示或導覽圖示上。(I4369fb/236994621)
  • 分頁位置現在會強制執行內容寬度下限為 24.dp。可為分頁指標提供無障礙的觸控目標。(Id8861)。
  • dynamicLightColorSchemedynamicDarkColorScheme 的動態調色盤現已支援新的介面角色。(I1252e)。
  • 將徽章通知的對齊方式調整到與祖母相衝突時不要裁剪。(Idf75a)。

1.2.0-alpha02 版

2023 年 5 月 24 日

發布 androidx.compose.material3:material3-*:1.2.0-alpha021.2.0-alpha02 版包含此連結所列的修訂項目。

API 變更

  • 將視窗插邊參數新增至 ModalBottomSheet
    • ModalBottomSheet 的紗罩現在可繪製在狀態列後方,windowInsets 則設為零
    • 更新預設的 ModalBottomSheet 功能,使其保持在系統列之外 (包括導覽)
    • 狀態列插邊處理功能是由邊緣至邊緣模式下的拖曳控點提供。
    • BottomSheetDefaults 包含 BottomSheetWindow 的視窗插邊。(I31200b/274872542b/272973615b/272334475b/268432129b/275849044b/275849044、b/2683127、b/272973615)
  • 淘汰 Indicator 並新增 Primary/SecondaryIndicator,以符合 M3 規格。PrimaryIndicator 與分頁內容的寬度相符,SecondaryIndicator 則橫跨完整的可用寬度。SecondaryIndicator 相當於現已淘汰的 Indicator,可以直接取代。(I27604)。
  • 新增在建構 DropdownMenu 時傳入 ScrollState 的選項,或用於控制顯示選單項目的垂直捲動狀態的 ExposedDropdownMenu。(Ia0734b/185304441)
  • Slider 新增超載,這是元件的有狀態版本。建立 SliderState,保留目前使用中測試群組的所有資訊、Slider 元件的測量結果,以及拖曳和手勢邏輯。(I124a5)。
  • 將 Semantics 屬性 isContainer 重新命名為 isTraversalGroup (I121f6)
  • 已新增含有完整參數清單的最佳化 TextStyle.merge(...)。(Iad234b/246961787)
  • 已將 TooltipStateRichTooltipStatePlainTooltipState 公開介面製成為預設狀態新增 RichTooltipStateImplPlainTooltipStateImpl。新增了 remember*State 函式來取得這些已實作的狀態。已移除 TooltipSync,改用 TooltipDefault.GlobalMutatorMutex。(I7813d)。
  • 更新 DatePickerColors,加入日期挑選器分隔線、導覽和文字輸入欄位顏色的其他自訂選項。(I1a685b/274626815)
  • DatePickerStateDateRangePickerState 現已成為公開介面,提供預設實作項目,可供 rememberDatePickerStaterememberDateRangePickerState 擷取。(I71c52)。
  • DatePickerDateRangePicker 中移除 dateValidator,並導入 SelectableDates 介面,可用於設定狀態,以控制使用者介面中可選取的日期或年份。(Ic2fc6)。
  • 已從穩定版 API 中移除 TimePicker,狀態 API 預計將有進一步的變更 (I3f39a)
  • ModalBottomSheet 只會移至 Android。不建議在電腦上使用 ModalBottomSheet,也不會主動維護這項功能。(Ib3778)。

修正錯誤

  • 修正當動作彼此堆疊以配合對話方塊的寬度時,確認動作下方顯示 AlertDialog 關閉動作的問題這項修正項目與 Material Design 規格保持一致。(I029deb/235454277)
  • 已修正 ListItem 中三行委刊項使用錯誤的邊框間距錯誤(I6e235)。
  • ModalBottomSheet 現在可以顯示輸入法編輯器鍵盤 (Idc508b/262140644b/268380384b/272483584)

1.2.0-alpha01 版

2023 年 5 月 10 日

發布 androidx.compose.material3:material3:1.2.0-alpha01androidx.compose.material3:material3-window-size-class:1.2.0-alpha011.2.0-alpha01 版本包含以下修訂項目。

1.1 版本

1.1.2 版本

2023 年 9 月 20 日

發布 androidx.compose.material3:material3:1.1.2androidx.compose.material3:material3-window-size-class:1.1.21.1.2 版包含此連結所列的修訂項目。

修正錯誤

  • 修正了修飾符錯誤傳遞至兩個可組合項的問題。(b/282761472)。
  • 修正了 TimePickerState 以 23 小時初始化時會傳回不正確的時數。(b/278242122)。
  • 修正了中午和分鐘驗證的初始切換狀態。(b/269768197b/282790635)
  • 已修正 state.hour 針對 11pm 傳回不正確的值。(b/282761472b/278242122)

1.1.1 版

2023 年 6 月 21 日

發布 androidx.compose.material3:material3:1.1.1androidx.compose.material3:material3-window-size-class:1.1.11.1.1 版本包含以下修訂項目。

修正錯誤

  • 新增沒有 windowInset 參數的 ModalBottomSheet 呼叫以提升二進位檔相容性。(Ib7959)。
  • 將視窗插邊參數新增至 ModalBottomSheet
    • ModalBottomSheet 的紗罩現在可繪製在狀態列後方,windowInsets 則設為零
    • 更新預設的 ModalBottomSheet 功能,使其保持在系統列之外 (包括導覽)
    • 狀態列插邊處理功能是由邊緣至邊緣模式下的拖曳控點提供。
    • BottomSheetDefaults 包含 BottomSheetWindow 的視窗插邊。(I31200b/274872542b/272973615b/272334475b/268432129b/275849044b/275849044、b/2683127、b/272973615)

1.1.0 版本

2023 年 5 月 10 日

發布 androidx.compose.material3:material3:1.1.0androidx.compose.material3:material3-window-size-class:1.1.01.1.0 版本包含以下修訂項目。

1.1.0 的主要功能

全新 Material Design 3 元件

改善現有的 Material Design 3 元件。

將實驗性 API 升級為穩定版!

詳情請參閱這篇網誌文章

1.1.0-rc01 版本

2023 年 4 月 19 日

發布 androidx.compose.material3:material3:1.1.0-rc01androidx.compose.material3:material3-window-size-class:1.1.0-rc011.1.0-rc01 版包含此連結所列的修訂項目

API 變更

  • 已從穩定版 API 中移除 TimePicker,狀態 API 預計將有進一步的變更 (I3f39a)
  • ModalBottomSheet 只會移至 Android。不建議在電腦上使用 ModalBottomSheet,也不會主動維護這項功能。(Ib3778)。

1.1.0-beta02 版本

2023 年 4 月 5 日

發布 androidx.compose.material3:material3:1.1.0-beta02androidx.compose.material3:material3-window-size-class:1.1.0-beta021.1.0-beta02 版本包含以下修訂項目。

API 變更

  • SheetState 現在包含選用的 skipHiddenState 參數
  • rememberStandardBottomSheetState 現在包含選用的 skipHiddenState 參數
  • BottomSheetScaffold 現在有已定義的隱藏錨點 (雖然預設為停用)
  • 已更新 SheetState.requireOffset 說明文件
  • BottomSheetDefaults.MinimizedShape 已重新命名為 BottomSheetDefaults.HiddenShape (I839f4b/273870234)

修正錯誤

  • 啟用觸控探索時,請勿將撥號畫面從小時改成分鐘。(I717d0)。
  • 系統現已合併 ModalBottomSheetBottomSheetScaffold 拖曳控點語意。(I05afb)。
  • BottomSheetScaffold 修飾符、containerColorcontentColor 參數現在只會影響內容。(I992cb)。
  • 工作表內容的 BottomSheetScaffold nestedScroll 現在會實作快速滑過功能(I992cb)。

1.1.0-beta01 版本

2023 年 3 月 22 日

發布 androidx.compose.material3:material3:1.1.0-beta01androidx.compose.material3:material3-window-size-class:1.1.0-beta011.1.0-beta01 版本包含以下修訂項目。

API 變更

  • 將版面配置類型參數新增至 TimePicker 可組合項。可依據螢幕設定使用不同的版面配置 (Ia0e16)
  • 已將 SearchBarDefaults 標示為實驗性質。(I65561)。
  • BottomSheetScaffold 新增了陰影高度 (I94e0f)
  • 開始支援顯示不含標頭部分的日期挑選器。變更 API,允許在建立日期挑選器時傳送空值的廣告標題。您現在可以傳遞空值的廣告標題、標題和 showToggleMode = false,以顯示無頭挑選器。(Id3f3ab/266132421b/267194809)。

修正錯誤

  • 現在設為停用時,搜尋列會自動清除焦點。(I22a7cb/261444487)
  • 更新 DateRangePicker,以便選取相同日期的開始和結束日期範圍。(I16529b/272882497)
  • 現在,當字型大小小於預期時,文字欄位現在可正確放置文字元素。這可能會導致應用程式根據字型設定和指令碼,稍微調整應用程式的像素。(I8b8d0)。
  • 底部功能表語意動作現在已有標籤(I277b0)。

1.1.0-alpha08 版本

2023 年 3 月 8 日

發布 androidx.compose.material3:material3:1.1.0-alpha08androidx.compose.material3:material3-window-size-class:1.1.0-alpha081.1.0-alpha08 版包含此連結所列的修訂項目。

新功能

  • 新增對 BottomSheetScaffoldBottomSheetScaffoldState 的支援。(I063d4)。

API 變更

  • 新增 DatePickerStateDateRangePickerState 功能,允許在初始建立狀態後設定日期,以及透過設定空值時間戳記重設選項。手動設定日期時請務必謹慎,如果提供的日期不符合先決條件,新 setSelection 函式將擲回例外狀況 (請參閱說明文件)。(Ifa645b/268609314b/270427389)
  • 將收合的 SheetValue 重新命名為 PartiallyExpanded,以便更準確且靈活地描述處於這個狀態的行為。(Ia1491)。
  • 已將 ListItem 參數名稱更新為 _content 而非 _text。預設 getter 現在是相關的 ReadOnlyComposables。(I69a25)。
  • 從實驗功能推出互動式 Surface API。(I90d59b/261561812)

修正錯誤

  • 修正 ModalBottomSheetHalfExpanded 狀態未正確計算,且工作表似乎會浮動的問題(I45e84b/268411386)
  • 新增「confirmValueChange」檢查,即可對「ModalBottomSheet」進行剪輯。(I2311ab/270425759)
  • 將語意 BottomSheet 動作移至拖曳控點。(I158ba)。
  • ModalBottomSheet 現在會聚焦於啟動,並處理返回按鈕。(I4d2ab)。
  • ModalBottomSheet onDismissRequest 現在也會在巢狀捲動快速滑過過程中處理。(I655c5b/268433166)

1.1.0-alpha07 版本

2023 年 2 月 22 日

發布 androidx.compose.material3:material3:1.1.0-alpha07androidx.compose.material3:material3-window-size-class:1.1.0-alpha071.1.0-alpha07 版包含此連結所列的修訂項目。

新功能

  • 新增可搭配 rememberTimePickerState() 使用的時間輸入可組合項,此可組合項符合時間輸入的 M3 規格 (Ia4fab)
  • 新增了用於選取日期範圍的 Material 3 DateRangePicker API。(I7a6c3b/267194809)
  • 新增了 Material 3 輸入模式支援,可透過 DateRangePicker API 選取日期範圍。(Ifdbc4)。
  • 文字欄位顏色現在可自訂:
    • 根據焦點和錯誤狀態,輸入欄位和預留位置文字顏色。textColor 參數已重新命名為 unfocusedTextColor,而 placeholderColor 已重新命名為 unfocusedPlaceholderColor
    • 根據含有新 errorContainerColor 參數的錯誤狀態,已填寫文字欄位的容器顏色。
  • 公開下拉式選單文字欄位的顏色已更新,可支援新的前置字元和後置 API。(I9c8b4b/254284181b/264766350)

API 變更

  • 還原部分 Slider API 版本,並移除包含自訂縮圖和軌跡的新版實驗性 Slider 所涵蓋的多餘 Slider 超載。正在將 RangeSlider 升級為穩定版。(Ie8fbd)。
  • 在方塊的高度函式中,defaultElevation 已重新命名為 elevation。(I0f872)。
  • 下列 Material 3 文字欄位 API 已不再處於實驗階段:TextFieldOutlinedTextFieldtextFieldWithLabelPaddingtextFieldWithoutLabelPaddingoutlinedTextFieldPadding。(Ieb5c0b/261561819)
  • TimePickers is24Hour 使用系統設定 (I18856)
  • 從 Scaffold API 移除實驗性註解。(Ibb51eb/261565765b/261436953)。

修正錯誤

  • ModalBottomSheet 預設形狀現在一律為 SheetDefaults.ExpandedShape。(I0dfca)。
  • 改善 Material 3 DatePickerDateRangePicker 的無障礙功能。(I5087e)。
  • 修正傳播最大高度限製而導致當機的錯誤。(I30d8c)。
  • 從可點擊和可選取的介面移除語意角色,並更新了元件,這些元件會透過修飾符使用 semantics 設定角色 (I793d9)

1.1.0-alpha06 版本

2023 年 2 月 8 日

發布 androidx.compose.material3:material3:1.1.0-alpha06androidx.compose.material3:material3-window-size-class:1.1.0-alpha061.1.0-alpha06 版本包含以下修訂項目。

新功能

  • 文字欄位現在支援前置文字和後置文字 (Ia8578b/179884561)
  • 新增 TimePicker 函式,可與 TimePickerState 和便利方法 rememberTimePickerState 搭配使用 Material 3 規格後的時間挑選器 (I71910)
  • 日期輸入現在是 DatePicker 的顯示模式。新增對切換動作的支援,讓使用者在日期挑選器與日期輸入模式之間切換(Ieeff7)。
  • 新增 RichTextTooltips 的 API(I58ef3)。
  • 實作 Material 3 的強制回應底部功能表,包括 ModalBottomSheetModalBottomSheetDefaults,並同時推出 SheetStaterememberSheetState (可用於日後的功能表元件(I0853ab/244189383)

API 變更

  • 調整 API showSnackbar 的穩定性 (I195c2b/261424370)
  • 調整輔助方塊和建議方塊的 API 穩定性 (Ibb67bb/261424370)
  • ListItemListItemDefaultsListItemColors API 升級為非實驗 API (I7e7fab/261438882)
  • SliderPositionsSliderDefaults.ThumbSliderDefaults.Track 升級為穩定版,新增內含自訂指標及測試群組的非實驗 SliderRangeSlider API,以及淘汰先前的 SliderRangeSlider API(Ie5ea6b/261566890)
  • Modifier.tooltipAnchor() 設為公開,讓開發人員能夠將其傳送到錨定標記,藉此指明使用者長按時要顯示的工具提示。我們還更新了 PlainTooltipBox API,TooltipState 現在不得為空值且會有預設值(Ie2fb7)。
  • ProgressIndicatorDefaults.circularTrackColor 標示為 @Composable,以便保持一致(Id29cc)。
  • 還原屬性 getter LocalMinimuTouchTargetEnforcement 並將其標示為已淘汰,然後重新導向至 LocalMinimumInteractiveComponentEnforcement(I60dd5)。

1.1.0-alpha05 版

2023 年 1 月 26 日

發布 androidx.compose.material3:material3:1.1.0-alpha05androidx.compose.material3:material3-window-size-class:1.1.0-alpha05查看 1.1.0-alpha05 版的修訂項

新功能

  • DatePickerDialog 和無障礙功能支援
  • 將自訂指標和測試群組新增至 RangeSlider

依附元件更新

1.1.0-alpha04 版本

2023 年 1 月 11 日

發布 androidx.compose.material3:material3:1.1.0-alpha04androidx.compose.material3:material3-window-size-class:1.1.0-alpha041.1.0-alpha04 版本包含以下修訂項目。

新功能

  • 推出可透過日曆 UI 選擇單一日期的初始 DatePicker API。我們仍會對這個 API 進行變更 (I722b9)
  • 透過 PlainTooltipBox 新增對純工具提示的支援 (I0cdfb)
  • 推出搜尋列 (Iad128)
  • 推出 SwipeToDismiss (I458a8b/242889540)

API 變更

  • 在 Surface 上新增 IsContainer 語意屬性。這項屬性會在日後的變更中用到,屆時我們會根據 surfaces 等元素的語意含義來決定周遊順序 (I63379)
  • 將導覽匣相關 API 標示為穩定版。(Iab01eb/261439597)
  • 為圓形進度指標新增軌跡色彩參數,並為圓形和線性進度指標新增筆劃上限參數 (Ie668cb/216325962b/222964817)
  • 針對已淘汰的隱藏函式,提供更多傳回類型的「是否可為空值」屬性。(Ibf7b0)
  • 新增 Modifier.minimumInteractiveComponentSize。這可用於保留至少 48.dp 的大小,在元素的測量尺寸較小時減少觸控互動 (I33f58b/258495559)。
  • 針對含有內容版位的 AlertDialog 可組合項新增了實驗性 API。(Iec4a2)

修正錯誤

  • 進度指標的進度現在不會超過預期範圍限制。(I8a7ebb/262262727)。

已知問題

  • androidx.compose.foundation:1.4.0-alpha03 更新為 androidx.compose.foundation:1.4.0-alpha04 時,您可能會遇到 java.lang.NoSuchFieldError 錯誤,這個網頁是最初回報問題的地方。我們已提交修正程式,預計下次 Compose 更新時就會發布。目前暫時性的解決方法是將 androidx.compose.materialandroidx.compose.material3 程式庫更新為最新版本 (1.1.0-alpha04),或將 androidx.compose.foundation 降級為 1.4.0-alpha03。

1.1.0-alpha03 版本

2022 年 12 月 7 日

發布 androidx.compose.material3:material3:1.1.0-alpha03androidx.compose.material3:material3-window-size-class:1.1.0-alpha03查看 1.1.0-alpha03 版的修訂項

API 變更

  • 已將 consumedWindowInsets() 重新命名為 consumeWindowInsets(),將 withConsumedWindowInsets() 重新命名為 onConsumedWindowInsetsChanged(),並將 Modifier 設為公開。(Ie44e1)
  • 為使用圖示的文字按鈕新增預設內容邊框間距。(I8f662)
  • 為導覽列和邊欄新增停用的顏色。(Ia7892b/258867034)
  • 新增用於查詢祖系捲動資訊的 Modifier API。(I2ba9db/203141462)
  • 如果手勢可能產生捲動事件,用在 Clickable 中可正確延遲按下的互動動作。
  • 修正了在 Scrollable ViewGroup 中使用 Clickables 時無法正確延遲漣漪效果的問題。
  • 更新 Drawer 和 Sheet,以便在手勢可能變成捲動事件時正確延遲按下動作。

依附元件更新

  • Compose UICompose Material 現已依附於 Lifecycle 2.5.1。(I05ab0b/258038814)

1.1.0-alpha02 版本

2022 年 11 月 9 日

發布 androidx.compose.material3:material3:1.1.0-alpha02androidx.compose.material3:material3-window-size-class:1.1.0-alpha02查看 1.1.0-alpha02 版的修訂項

API 變更

  • awaitFirstDownwaitForUpOrCancellation 現在接受 PointerEventPass,以增加彈性 (同時修正捲動時 ExposedDropdownMenuBox 顯示選單)。(I7579a(b/212091796))
  • 在 material 和 material3 文字、TextFieldOutlinedTextField 中新增 minLines 參數,以便能夠以行數來設定元件的最小高度 (I4af1d)
  • 淘汰 TopAppBarDefaults smallTopAppBarColors 函式,在建立 TopAppBar 時應使用的新的 topAppBarColors 函式。(Ie6cb9)
  • BasicTextBasicTextField 中新增 minLines 參數。這樣即可針對行數來設定這些可組合項的最小高度 (I24294b/122476634)

修正錯誤

  • 將 Material3 IconButtonIconToggleBotton 的內容剪輯為元件的狀態層形狀 (例如圓形)。(I9da8f)
  • 更新 Material3 中型和大型頂端應用程式列,即可在其整個介面上套用相同的背景顏色,並允許進行以透明色值覆寫預設顏色的設定。(I67659b/249688556b/250838918)

1.1.0-alpha01 版

2022 年 10 月 24 日

發布 androidx.compose.material3:material3:1.1.0-alpha01androidx.compose.material3:material3-window-size-class:1.1.0-alpha01查看 1.1.0-alpha01 版的修訂項

修正錯誤

  • 修正用 TextStyle 和 Brush 套用標題時的頂端應用程式列。(If667e)

1.0 版

1.0.1 版

2022 年 11 月 9 日

發布 androidx.compose.material3:material3:1.0.1androidx.compose.material3:material3-window-size-class:1.0.1查看 1.0.1 版的修訂項

修正錯誤

  • 更新 Material3 中型和大型頂端應用程式列,即可在其整個介面上套用相同的背景顏色,並允許進行以透明色值覆寫預設顏色的設定。(I67659b/249688556b/250838918)

1.0.0 版本

2022 年 10 月 24 日

發布 androidx.compose.material3:material3:1.0.0androidx.compose.material3:material3-window-size-class:1.0.0查看 1.0.0 版的修訂項

1.0.0 的主要功能

這是 Compose Material 3 的第一個穩定版本!

Material Design 3 主題設定和 Material You 動態顏色

Material Design 3 元件

視窗大小類別

  • material3-window-size-class 是一個新程式庫,能夠支援視窗大小類別,也就是一組一致認可的可視區域中斷點,可讓您設計、開發及測試可調整大小的應用程式版面配置。您可以使用 calculateWindowSizeClass 擷取視窗大小類別執行個體,以用於決定使用者介面的顯示方式,例如,以較大的視窗大小顯示導覽邊欄,而非底部導覽列。如需更多資訊和用途範例,請參閱 WindowSizeClass 的 API 參考資料說明文件

  • 詳情請參閱這篇網誌文章

1.0.0-rc01 版

2022 年 10 月 5 日

發布 androidx.compose.material3:material3:1.0.0-rc01androidx.compose.material3:material3-window-size-class:1.0.0-rc01查看 1.0.0-rc01 版的修訂項

API 變更

  • 新增了支援文字到文字欄位 API 的運算單元參數 (Iaac0db/227146125)

1.0.0-beta03 版

2022 年 9 月 21 日

發布 androidx.compose.material3:material3:1.0.0-beta03androidx.compose.material3:material3-window-size-class:1.0.0-beta03查看 1.0.0-beta03 版的修訂項

API 變更

  • ExposedDropdownMenuDefaults 現在會顯示選單項目的邊框間距值 (I34ee1)
  • ExposedDropdownMenuBoxScope 現在有 Modifier.menuAnchor() 修飾符,此修飾符應會傳遞給文字欄位,以便提供適當的 a11y 行為。(I27fa3)
  • 為目前的 Slider API 新增兩個超載方法,可讓使用者傳遞指標或軌跡來填入滑桿。(I21c00)

修正錯誤

  • 將 On Error 容器的深色主題對應更新為色調 90 (Ic5612)
  • 修正以下問題:允許為小型 Material 3 頂端應用程式列設定透明背景。(I645e2b/245575782)

1.0.0-beta02 版

2022 年 9 月 7 日

發布 androidx.compose.material3:material3:1.0.0-beta02androidx.compose.material3:material3-window-size-class:1.0.0-beta02查看 1.0.0-beta02 版的修訂項

API 變更

  • 在 beta01 版中,m3 元件引入的預設元件插邊不再納入 IME 插邊。
  • Material3 Scaffold 元件現在擁有 contentWindowInsets 參數,可指定要為內容版面處理的插邊數量。(Icf11ab/243713323)
  • 淘汰實驗性 Material 3 SmallTopAppBar 函式,並引入同等 TopAppBar 函式。請將使用方式遷移至新的函式。(I74404b/226918634)
  • 新增對頂端應用程式列快速滑過和貼齊行為的控制項。(I15c81)
  • 從 Divider 中移除 startIndent,將顏色移至最後一個參數。(If7be2)

修正錯誤

  • 讓對話方塊在顯示時通知字詞 Dialog,便於 TalkBack 使用者辨識對話方塊。(I857ef)

1.0.0-beta01 版

2022 年 8 月 24 日

發布 androidx.compose.material3:material3:1.0.0-beta01androidx.compose.material3:material3-window-size-class:1.0.0-beta01查看 1.0.0-beta01 版的修訂項

API 參考資料

如要查看最新的主題設定、元件和其他可用的可組合項,請參閱 Compose Material 3 API 參考資料總覽

API 變更

  • 更新了 Material 3 頂端應用程式列,以呈現完全收合狀態至完全展開狀態。此外,將 TopAppBarDefaults 行為函式更新為 Composables,並針對其頂端應用程式列狀態和動畫規格提供預設值 (I642b3)。
  • 更新了懸浮動作按鈕 (FAB) 元件簽章以符合介面 API (I3afaa)
  • 新增了適用於頂端應用程式列、導覽匣、導覽列和邊欄的插邊內建支援機制。無論是單獨使用或與 Scaffold 搭配使用,這些元件都會為開發人員自動處理插邊。注意:這項變更不會自動處理狀態列圖示以及狀態列和導覽列的透明度。請繼續手動處理,確保提供最佳的無邊框體驗。(I7e4e6b/183161866)
  • 更新了元件預設值以減少 API 介面,藉此提升日後的彈性與效能。(I31820)
  • 重新安排方塊和導覽匣工作表參數的順序,藉此在 API 內維持一致性 (I45d0b)
  • startIndent 從 Divider 中移除,並將顏色移到最後一個參數 (If7be2)。

1.0.0-alpha16 版

2022 年 8 月 10 日

發布 androidx.compose.material3:material3:1.0.0-alpha16androidx.compose.material3:material3-window-size-class:1.0.0-alpha16查看 1.0.0-alpha16 版的修訂項

新功能

  • 支援在導覽匣中指定自訂寬度。(Ia7f10)

API 變更

  • 重新排列 Tab 和 Leading 圖示分頁參數的順序,藉此在 API 內保持一致 (Ie2637)
  • BadgeDefaults 標示為實驗性質。(I98ef3)
  • 移除已淘汰的導覽匣函式。(I4f2db)
  • 重新安排 Material 3 中 Slider 參數的順序,藉此在 API 內維持一致性 (I0aee7)
  • 重新安排 NavigationBarNavigationRail 參數的順序,藉此在 API 內維持一致性 (I51cda)
  • 重新安排 Material 3 中的參數順序,藉此在 API 內維持一致性。(If4ae1)
  • 重新安排 Material 3 中 Slider 參數的順序,藉此在 API 內維持一致性 (I62673)
  • 將 icons 參數重新命名為 actions,藉此與頂端應用程式列保持一致 (Id75be)
  • BadgeBadgedBox 標示為實驗性質,因為目前仍可大量使用錨點對齊。(I1712eb/236524516)
  • 將圖示按鈕變化版本的 @ExperimentalMaterial3Api 註解變更為 @OptIn (I070b5)
  • 將導覽匣的內容與自身的可組合項區隔開來,以便支援指定自訂寬度。(Ia7f10)
  • MenuDefaultsTabDefaults 移除 Divider (I4e33c)

1.0.0-alpha15 版

2022 年 7 月 27 日

發布 androidx.compose.material3:material3:1.0.0-alpha15androidx.compose.material3:material3-window-size-class:1.0.0-alpha15查看 1.0.0-alpha15 版的修訂項

新功能

API 變更

  • 更新 FilterChipElevatedFilterChip API 以移除 selectedIcon 運算單元,並推廣重複使用 leadingIcon 以顯示所選狀態。(Ie5dc2)
  • 新增紗罩遮擋和外框變化版本的顏色角色。(Id6d54)
  • 修正可組合項預設值的命名慣例。(I62b27)
  • ListItemDefaultsListItemColors 標示為實驗性質。(I1f3ec)
  • 變更頂端應用程式列 API,以更準確地反映其狀態屬性的意義。此外,請將頂端應用程式列 API 標示為實驗功能。(Ic0ad8)
  • 文字選取顏色現已新增至 TextFieldColors,以提高曝光度。(Iba1b8)
  • 新增 ButtonDefault.ButtonWithIconContentPadding 以與包含圖示的按鈕搭配使用。(I2bf9c)
  • 文字欄位已標示為實驗性質,讓日後的 API 變更更具彈性。(I127b5)
  • 已從 Checkbox 函式中移除 @ExperimentalMaterial3Api 註解。(I5eefc)
  • 已從 RadioButton 函式中移除 @ExperimentalMaterial3Api 註解。(I17e2a)
  • 已從非互動式資訊卡中移除 @ExperimentalMaterial3Api 註解。(I9bd49)
  • 更新各種元件預設物件,包括顏色、形狀等 (I96e11)。

修正錯誤

  • 已從輸入方塊範例中移除無法運作的結尾圖示,以免在目錄應用程式中混淆使用者 (I9846a)。

1.0.0-alpha14 版

2022 年 6 月 29 日

發布 androidx.compose.material3:material3:1.0.0-alpha14androidx.compose.material3:material3-window-size-class:1.0.0-alpha14查看 1.0.0-alpha14 版的修訂項

新功能

  • 新增了 M3 清單實作,請查看說明文件中的使用範例 (Id7a20)

API 變更

  • 將參數名稱從值變更為 RangeSlider 中的值 (I3b79a)
  • API 變更為 InputChip 實作,以便根據 Material Design 規格支援可選取狀態。為特定停用狀態的 FilterChip 顏色提供額外支援(I55244b/235792432)。
  • 新增 BottomAppBar 預設 FAB (Ida4c8)
  • 已新增 ColorScheme.surfaceColorAtElevation (Id41af)
  • Compose 程式庫中的介面現為使用 jdk8 預設介面方法建構 (I5bcf1)
  • WindowWidthSizeClassWindowHeightSizeClass 現在實作 Comparable,使其得以使用運算子 (<、<=、>=、>) 和其他 API 比較。(I747d0)

修正錯誤

  • 更新標記範例以提供更多實質的內容說明。(I10b9d)
  • 在 Material 3 目錄的主題挑選工具中加入使用系統字型大小的選項。(I10605)
  • 加入標記的程式碼範例和不確定進度指標。(I8fbe0)

1.0.0-alpha13 版

2022 年 6 月 1 日

發布 androidx.compose.material3:material3:1.0.0-alpha13androidx.compose.material3:material3-window-size-class:1.0.0-alpha13查看 1.0.0-alpha13 版的修訂項

API 變更

  • 支援在設定變更時維持最上方的應用程式列位置。(I10459b/216160958)

1.0.0-alpha12 版

2022 年 5 月 18 日

發布 androidx.compose.material3:material3:1.0.0-alpha12androidx.compose.material3:material3-window-size-class:1.0.0-alpha12查看 1.0.0-alpha12 版的修訂項

修正錯誤

1.0.0-alpha11 版

2022 年 5 月 11 日

發布 androidx.compose.material3:material3:1.0.0-alpha11androidx.compose.material3:material3-window-size-class:1.0.0-alpha11查看 1.0.0-alpha11 版的修訂項

新功能

  • RangeSlider 新增至 Material 3 (I18e38)
  • 新增 Material3 AssistChipInputChip 支援 (I0d25a)
  • 新增 Material3 FilterChipSuggestionChip 支援 (I9fdf3)

API 變更

  • 重新命名 TextFieldDefaults.BorderStroke 可組合項,該可組合項用於繪製 OutlinedTextFieldTextFieldDefaults.BorderBox 的框線(I5f295)。
  • 切換 m3 視覺效果 (Iab30e)
  • 允許將顏色傳遞至標準圖示按鈕。(Ia2445)

修正錯誤

  • 在 material3/Scaffold 新增 Lint 檢查功能,確保使用內部邊框間距 (I72293b/226951418)

1.0.0-alpha10 版

2022 年 4 月 20 日

發布 androidx.compose.material3:material3:1.0.0-alpha10androidx.compose.material3:material3-window-size-class:1.0.0-alpha10查看 1.0.0-alpha10 版的修訂項

新功能

  • material3-window-size-class 是一個新程式庫,能夠支援視窗大小類別,也就是一組一致認可的可視區域中斷點,可讓您設計、開發及測試可調整大小的應用程式版面配置。您可以使用 calculateWindowSizeClass 擷取視窗大小類別執行個體,以用於決定使用者介面的顯示方式,例如,以較大的視窗大小顯示導覽邊欄,而非底部導覽列。如需更多資訊和用途範例,請參閱 WindowSizeClass 的 API 參考資料說明文件。如要進一步瞭解視窗大小類別的定義,請參閱有關支援不同螢幕大小的公開規範。

API 變更

  • 新增 BottomAppBar 的預設懸浮動作按鈕 (FAB) 高度,從 BottomAppBar 移除懸浮動作按鈕 (FAB) 結尾的 lambda。(I92c47)
  • 新增 Material3 FilledIconButtonFilledTonalIconButtonOutlinedIconButton。(Ib2bda)
  • 更新 Material 3 Snackbar API,接受選擇性動作和關閉動作的顏色值。(Ibe4b4)
  • 已從 PointerInputChange 淘汰部分使用功能 (向下或定位)。可使用 consume() 徹底使用變更。可使用 isConsumed 判斷其他使用者是否曾經使用過該變更。
  • PointerInputChange::copy() 現在會一律建立淺層複本。這表示只要使用一份複本,系統就會使用 PointerInputChange 的複本。如要建立未繫結的 PointerInputChange,請改用建構函式。(Ie6be4b/225669674)
  • 變更 Cards API,透過 CardColors 介面接收容器和內容顏色,並支援已停用的可點擊資訊卡狀態。(I927df)
  • 將 Material 3 文字欄位中的 backgroundColor 參數重新命名為 containerColor,以便改善與其他元件的一致性。(I6fbd9)

修正錯誤

  • 更新標準 IconButton,使其符合 Material3 規格。(I09eab)
  • 將 material3 Scaffold 頂端列高度移至已傳遞到內容的邊框間距,這樣內容就可以在頂端應用程式列下方顯示。如果忽略 PaddingValues,頂端列可能會模糊處理內容。(I83cbcb/217776202)

1.0.0-alpha09 版

2022 年 4 月 6 日

發布 androidx.compose.material3:material3:1.0.0-alpha09查看 1.0.0-alpha09 版的修訂項

新功能

  • 新增了 Material 3 Switch API (I2c3ad)

API 變更

  • 新增了對文字欄位下拉式選單 (又稱「展開式下拉式選單」或「下拉式方塊」) 的支援 (I1b832)。
  • 在 MaterialTheme 和 Shape 子系統中新增形狀參數。(I37426)
  • ExtendedFloatingActionButton 中新增展開參數,以便控制 FAB,將其展開或收合,並在切換為不同狀態時顯示動畫。針對已擴充的 FAB 新增 Extended FAB 超載,並針對無圖示的 ExtendedFAB 新增結尾文字。(Iba7f1)

1.0.0-alpha08 版

2022 年 3 月 23 日

發布 androidx.compose.material3:material3:1.0.0-alpha08查看 1.0.0-alpha08 版的修訂項

新功能

API 變更

  • 新增選單的預設分隔線 (I01374)
  • ColorScheme 類別新增 surfaceTint 色彩參數。(I2f558)

修正錯誤

  • 修正 Material3 按鈕,以便從 MaterialTheme 讀取其預設文字樣式值 (Ie62fc)。

1.0.0-alpha07 版

2022 年 3 月 9 日

發布 androidx.compose.material3:material3:1.0.0-alpha07查看 1.0.0-alpha07 版的修訂項

API 變更

  • 更新 Material 3 Surface API,為可點擊式 Surface 復原超載函式,以及新增了函式,以便支援可選取和可切換的 Surface。(I4bf18)
  • LazyVerticalGridLazyHorizontalGrid 現已穩定。(I307c0)。
  • LazyVerticalGrid/LazyHorizontalGrid 和所有相關 API 已移至 .grid 子套件。請將匯入項目從 androidx.compose.foundation.lazy 更新為 androidx.compose.foundation.lazy.grid。(I2d446)
  • 還原 WindowInsetsControllerCompat 之前完全依賴 View 的變更,現在管理某些視窗旗標改回需要 Window。淘汰 ViewCompat.getWindowInsetsController 以取代 WindowCompat.getInsetsController,以便確保使用正確的 Window (例如 View 在對話方塊內)。(I660aeb/219572936)
  • 新增用於定義跨軸大小的 LazyVerticalGrid API (I17723)

修正錯誤

  • 更新 Card API,以追蹤 Surface API 的變更 (I3c8b9)

1.0.0-alpha06 版

2022 年 2 月 23 日

發布 androidx.compose.material3:material3:1.0.0-alpha061.0.0-alpha06 版包含此連結所列的修訂項目。

API 變更

  • 已新增 NavigationDrawerItem,它代表導覽匣中的單一目的地 (Ic396fb/218286829)
  • 已將 PermanentNavigationDrawerDismissibleNavigationDrawer 新增為實驗性 API。這些導覽匣非常適合大螢幕裝置使用。(I5f8abb/218286829)
  • 新增了 Material 3 底部應用程式列支援 (Ic432a)
  • NavigationDrawer 已重新命名為 ModalNavigationDrawer (I1807db/218286829)
  • 新增了 Material 3 Slider 類別和權杖 (I1ccee)
  • 新增了 Tab 實作,請查看說明文件中的使用範例 (Ie0146)

修正錯誤

  • 修正了以下問題:TalkBack 螢幕閱讀器線性導覽選取了空白的頂端應用程式列標題。(Id4690)
  • 已將 IconSize 新增至 FloatingActionButtonDefaults。(Ia71cf)
  • 修正使用 LazyColumn 新增長文字內容時,無法顯示 AlertDialog 按鈕的問題。(Ib2cc9b/216663029)

1.0.0-alpha05 版

2022 年 2 月 9 日

發布 androidx.compose.material3:material3:1.0.0-alpha051.0.0-alpha05 版包含此連結所列的修訂項目。

新功能

新增了 Material Design 3 元件

API 變更

  • 已淘汰 Surface 函式,該函式會接收 onClick 回呼。應使用 InteractionSourceModifier.clickable() 來建立可點擊途徑。(I211c6)
  • 新增了支援 FAB 的點按式和聚焦式提升權限。(Ibb584)
  • 變更了 Surface API,以便接收 InteractionSource,這可以控制其在不同狀態下的外觀。(Iafbc8)

修正錯誤

1.0.0-alpha04 版

2022 年 1 月 26 日

發布 androidx.compose.material3:material3:1.0.0-alpha04查看 1.0.0-alpha04 版的修訂項

API 變更

  • NonRestartableComposable 新增至屬於現有方法超載且無複雜邏輯的方法。如此一來,對於呼叫內部函式中重複的所有參數,可減少編譯器產生的記憶檢查 (等於)。(I90490)
  • 新增了 Material 3 分割線。(Ica5fc)
  • 使用實驗性 API 註解標記 Checkbox 和 RadioButton。(Ie44bb)
  • 開始支援 Material 3 進度指標 (Iff232b/205023841)。

修正錯誤

1.0.0-alpha03 版

2022 年 1 月 12 日

發布 androidx.compose.material3:material3:1.0.0-alpha03查看 1.0.0-alpha03 版的修訂項

修正錯誤

依附元件更新

  • 現在依附於 Kotlin 1.6.10

1.0.0-alpha02 版

2021 年 12 月 1 日

發布 androidx.compose.material3:material3:1.0.0-alpha021.0.0-alpha02 版包含此連結所列的修訂項目。

新功能

  • 新增對 Checkbox 和 Radiobutton 的支援。
  • 已更新為可與 Kotlin 1.6.0 相容

API 變更

  • 從 Material 3 的 Scaffold 中移除導覽匣。(I04f51)
  • 新增 Material 3 Checkbox 支援。(Id5542)
  • 新增 Material 3 RadioButton 支援。(I20334)

修正錯誤

  • IconButton 漣漪半徑從 40 dp 降到 20 dp。(I68bbeb/206674345)
  • Text 的通訊埠字串快速路徑從 compose.material 中進行變更 (I30b03)
  • 修正系統一律啟用硬式編碼按鈕的問題。(Iea832b/205335456)

1.0.0-alpha01 版

2021 年 10 月 27 日

發布 androidx.compose.material3:material3:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

新功能

Material Design 3 主題設定和 Material You 動態顏色

Material Design 3 元件

詳情請參閱 Compose 指南中 Material 主題設定的 Material Design 3 和 Material You 一節。