作者 / Android 開發者關係工程師 Florina Muntenescu
我們一如既往地搭建 產品路線圖,現在已經發布了 Jetpack Compose 的 1.1 版本,這是 Android 的現代原生介面工具包。此版本新增了一些功能,比如經過優化的焦點處理、觸控目標值、ImageVector 快取,和對 Android 12 拉伸滾動的支援。Compose 1.1 還讓許多之前的實驗性 API 過渡到了穩定階段,並支援新版 Kotlin。我們已經更新了 示例、Codelab 和 Accompanist 開發庫,以便您與 Compose 1.1 搭配使用。
全新穩定功能和 API
影像向量 (Image vector) 快取
Compose 1.1 引入了影像向量 (Image vector) 快取,帶來了巨大的效能改進。我們為 painterResource
API 新增了快取機制,以快取所有使用給定資源 ID 和主題解析的 ImageVectors
例項。快取將在配置更改時失效。
觸控目標值
相對於 Compose 1.0,Material 元件將擴充套件其佈局空間來滿足 Material 無障礙指南 的 觸控目標值 要求。例如,即使您調低 RadioButton
的大小,RadioButton's
觸控目標的尺寸仍將擴充套件為至少 48x48dp。這將使得 Compose Material 與 Material Design 元件的行為保持一致,以便在混合使用 View 和 Compose 時提供一致的行為。此更改還可確保當您使用 Compose Material 元件建立介面時,能夠滿足觸控目標無障礙功能的最低要求。
如果您發現此更改破壞了現有的佈局邏輯,請將 LocalMinimumTouchTargetEnforcement) 設定為 false 來禁用此行為,但此操作可能會降低應用的可用性,因此需要您格外注意,並謹慎使用。
△ RadioButton 觸控目標更新 左: Compose 1.0,右: Compose 1.1
從實驗版到穩定版的 API
一些 API 從實驗版過渡到了穩定版。主要包括:
- 動畫相關 API,例如: EnterTransition、ExitTransition、一些 AnimatedVisibility) API
- 向量相關 API: rememberVectorPainter)、VectorProperty、VectorConfig 和 RenderVectorGroup)
全新實驗版 API
我們一直在為 Compose 新增新功能,包括以下亮點:
- 您使用
rememberSaveable
的同時,可以儲存和恢復AnimatedContent
。 - 您可以使用 Modifier.animateItemPlacement().animateItemPlacement(androidx.compose.animation.core.FiniteAnimationSpec)) 為
LazyColumn/LazyRow
專案位置進行動畫處理。 - 您可以使用全新
BringIntoView
API 向父級傳送請求,以便父級滾動,將專案引入檢視。
您可以使用 @OptIn 以試用這些全新的 API,並向我們提供反饋!
注意: 使用 Compose 1.1 需要使用 Kotlin 1.6.10。如需瞭解更多資訊,您可以檢視 Compose 與 Kotlin 的相容性對應關係。
想知道未來計劃?您可以檢視 最新路線圖,瞭解我們目前正在評估和開發的功能,比如延遲載入專案動畫、可下載的字型、可移動的內容等等!
Jetpack Compose 現已推出穩定版本,供大家在生產環境中使用,並且會繼續新增您想要的功能。我們很高興看到成千上萬的應用已經開始在生產環境中使用 Jetpack Compose,我們迫不及待想看到您將構建的應用!
我們很感激開發者們在 Alpha 版和 Beta 版期間,通過 問題跟蹤頁 提交的錯誤報告和功能請求,幫助我們改進了 Compose 並構建您需要的 API。歡迎您繼續與我們分享您的反饋,幫助我們讓 Compose 變得更好!也歡迎您持續關注 "Android 開發者" 微信公眾號瞭解更多最新內容。
歡迎您 點選這裡 向我們提交反饋,或分享您喜歡的內容、發現的問題。您的反饋對我們非常重要,感謝您的支援!