在現有應用程式中導入 Compose 時,必須遷移 Material XML 主題,才能在 Compose 元件中使用 MaterialTheme。這表示應用程式的主題設計將有兩個可靠資料來源:以 View 為基礎的主題和 Compose 主題。如要進行樣式變更,您必須在多個位置進行。應用程式完全遷移至 Compose 後,請移除 XML 主題。
您可以使用 Material Design 主題設定建構工具遷移顏色。
從 XML 遷移至 Compose 時,請將主題設定遷移至 Material 3 Compose 主題設定。
詞彙解釋
| 字詞 | 定義 |
|---|---|
MaterialTheme |
可組合函式,可為 Compose UI 元件提供主題 (顏色、字體排版、形狀)。 |
Shape |
用於定義 MaterialTheme 自訂元件形狀的 Compose 物件。 |
Typography |
用於定義 MaterialTheme 自訂文字樣式 (字型系列、大小、粗細) 的 Compose 物件。 |
Color |
用於定義 MaterialTheme 自訂色彩配置的 Compose 物件。 |
| XML 主題 | Android 主題系統定義於 XML 檔案中,供 View 系統使用。 |
限制
遷移前請注意下列限制:
- 本指南僅著重於遷移至 Material 3。如要從其他設計系統遷移,請參閱「Material 2」或「Compose 中的自訂設計系統」。
- 最終目標是完全遷移至 Compose,這樣就能移除 XML 主題設定。本指南說明如何遷移,但未說明如何最終移除 XML 主題設定。
步驟 1:評估設計系統
找出 XML 檢視專案中使用的設計系統。 分析遷移路徑和必要步驟,將現有設計系統遷移至 Compose 中的 Material 3。
步驟 2:找出主題來源檔案
找出並定位主題設定所需的所有 XML 資源和檔案:淺色和深色配色、主題、形狀、尺寸、排版、樣式和其他相關檔案。
字串等資源可直接重複使用,無須遷移。
步驟 3:遷移顏色
將 XML 中的深色和淺色色彩配置,遷移至 Material 3 Compose 中的對應項目。
步驟 4:遷移自訂形狀和字體排版
如果應用程式使用自訂形狀:
- 在 Compose 程式碼中,定義
Shape物件來複製 XML 形狀定義。 將這個
Shape物件提供給MaterialTheme。詳情請參閱「形狀」。
- 在 Compose 程式碼中,定義
如果應用程式使用自訂字體排版:
- 在 Compose 程式碼中定義
Typography物件,複製 XML 文字樣式和字型定義。 將這個
Typography物件提供給MaterialTheme。詳情請參閱「字體排版」。
- 在 Compose 程式碼中定義
步驟 5:驗證主題遷移作業
一律使用原始 XML 主題的現有主題值,做為 Compose 中新版 Material 主題的單一事實來源。遷移期間請勿建立新的主題值,以免品牌風格不一致,並避免視覺效果回歸。
確認所有新的 Compose 主題值都與現有的 XML 值相符。 請勿將任何遷移的值硬式編碼。