Android 12 (API 級別 31) 翻新了現有的小工具 API,改善平台和啟動器中的使用者和開發人員體驗。本指南說明如何確保您的小工具與 Android 12 相容,以及更新現有小工具的 API 參考資料。
確認您的小工具與 Android 12 相容
Android 12 的小工具採圓角設計,在搭載 Android 12 以上版本的裝置上執行應用程式小工具時,啟動器會自動辨識小工具的背景,並裁剪至圓角。
在此情況下,在下列任一情況下,小工具可能無法正常顯示:
小工具的角落包含內容:這可能導致角落的部分內容遭到裁剪。
小工具使用無法裁剪的背景。包括透明背景、空白的檢視畫面或版面配置,或是任何其他不容易裁剪的特殊背景。系統可能無法正確識別要使用的背景。
如果您的小工具會受到此變更影響,建議您以圓角重新整理小工具 (如下一節所述),確保小工具能正確顯示。
使用範例
如要查看所有 API 的實際運作情形,請參閱我們的清單小工具範例。
實作圓角
Android 12 推出了 system_app_widget_background_radius
和 system_app_widget_inner_radius
系統參數,可設定小工具圓角的半徑。
![東京天氣小工具](https://developer.android.com/static/images/appwidgets/widget-weather.png?authuser=9&hl=zh-tw)
1 小工具的邊角。
2 小工具內檢視區塊的邊角。
詳情請參閱「實作圓角」。
新增裝置主題設定
從 Android 12 開始,小工具可將裝置主題顏色用於按鈕、背景和其他元件,包括淺色和深色主題。讓不同小工具之間的轉換和一致性更加順暢。
詳情請參閱「新增裝置主題設定」。
![淺色模式主題的小工具](https://developer.android.com/static/images/appwidgets/example-lightmode.png?authuser=9&hl=zh-tw)
![採用深色模式主題的小工具](https://developer.android.com/static/images/appwidgets/example-darkmode.png?authuser=9&hl=zh-tw)
更輕鬆地依個人需求調整小工具
如果您使用 appwidget-provider
的 configure
屬性指定設定活動,應用程式小工具主機會在使用者將小工具新增至主畫面後立即啟動該活動。
Android 12 新增了選項,可讓您為使用者提供更優質的設定體驗。詳情請參閱「允許使用者設定小工具」。
新增複合按鈕
Android 12 使用下列現有元件新增對有狀態行為的支援:
小工具仍為無狀態。應用程式必須儲存狀態並註冊狀態變更事件。
![](https://developer.android.com/static/images/appwidgets/home.png?authuser=9&hl=zh-tw)
詳情請參閱「支援有狀態行為」。
針對小工具大小和版面配置使用改良版 API
從 Android 12 開始,您可以透過指定額外的小工具尺寸限制,並提供回應式版面配置和確切版面配置,充分運用更精細的大小屬性和更靈活的版面配置。
詳情請參閱「提供彈性小工具版面配置」。
改善應用程式的小工具挑選器體驗
Android 12 可讓您新增動態小工具預覽畫面和小工具說明,改善應用程式的小工具挑選器體驗。詳情請參閱「為小工具挑選器新增可擴充的小工具預覽畫面」和「為小工具新增說明」。
讓轉場效果更順暢
從 Android 12 開始,當使用者透過小工具啟動應用程式時,啟動器可提供更流暢的轉場效果。詳情請參閱「啟用更順暢的轉換作業」一節。
使用簡化的 RemoteViews
集合
Android 12 新增了 setRemoteAdapter(int viewId, RemoteViews.RemoteCollectionItems items)
方法,可讓應用程式在填入 ListView
時直接傳遞集合。以往使用 ListView
時,必須實作並宣告 RemoteViewsService
才能傳回 RemoteViewsFactory
。
詳情請參閱「使用 RemoteViews
集合」。
使用 RemoteViews
的執行階段修改內容
Android 12 新增了幾個 RemoteViews
方法,可在執行階段修改 RemoteViews
屬性。如需新增方法的完整清單,請參閱 RemoteViews
API 參考資料。
詳情請參閱「使用 RemoteViews
的執行階段修改功能」。