wear protolayout
| 最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2025 年 10 月 22 日 | 1.3.0 | - | - | 1.4.0-alpha02 |
宣告依附元件
如要為 wear-protolayout 新增依附元件,您必須將 Google Maven 存放區新增至專案中。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:
Groovy
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 文件。
1.4 版
1.4.0-alpha02 版
2025 年 10 月 22 日
發布 androidx.wear.protolayout:protolayout-*:1.4.0-alpha02。1.4.0-alpha02 版包含這些修訂項目。
新功能
- 新增平台事件來源 (
isInAmbientMode),說明裝置是否處於微光模式 (Ief832)
API 變更
PendingIntentclickable現在接受後備動作 (LoadAction/LaunchAction),可在ProtoLayout轉譯器不支援PendingIntent時使用。當 Renderer 版本低於支援PendingIntent的版本時,系統會自動選取備用動作並放置在版面配置中。(I6eee2、b/450259727)- 現在
MaterialScope中的protoLayoutScope欄位會設為NonNull,方便透過materialScopeWithResources建立MaterialScope時使用。此外,還有hasProtoLayoutScope函式可檢查該屬性是否存在。(I1858f、b/450067019)
1.4.0-alpha01 版
2025 年 9 月 24 日
發布 androidx.wear.protolayout:protolayout-*:1.4.0-alpha01。1.4.0-alpha01 版包含這些修訂項目。
新功能
- 新增
LayoutModifier的輔助方法,可在圖塊顯示時讓元素淡入。(I38531、b/390345969) - 新增
materialScopeWithResources,支援 M3MaterialScope概念,同時處理自動資源註冊作業。其中新增了圖片的 Helper 方法 (backgroundImageavatarImage和圖示),因此使用時不必在onTileResourceRequest中手動註冊資源。(I525bd、b/428692714) ProtoLayout適用於Image和ImageResources的 Kotlin 輔助程式,可搭配ProtoLayoutScope使用,並自動註冊資源。(Iada82、b/430584304)- 新增 getter,用於取得自訂單一 Lottie 動畫時允許的 Lottie 屬性數量。(I73733、b/436532706)
- 在
AndroidLottieResourceByResId中新增 API,允許透過屬性自訂 Lottie 動畫,並新增 API,以便使用主題設定的顏色和 ID 建立屬性。(I301b3、b/423581481) - 新增供應商 API,可接受
PendingIntent做為點擊動作 (I01978、b/433802488) - 在
Image.Builder-setImageResource中新增 API,直接將資源物件設定為onTileRequest中的 Image,不必在onTileResourcesRequest的對應中註冊。(Ifa69a、b/428693523) - 新增
ProtoLayoutScope概念,為 Tiles 中更完善的資源處理機制做好準備。(I132ce、b/428692423) ProtoLayoutMaterial3MaterialScope現在會公開Context欄位,供範圍內的方法使用,不必傳遞該欄位。(I0e5cc、b/414559956)- 公開標題語意 API (I75299、b/413653475)
- 公開
ARC_DIRECTION_*常數,供Arc/ArcLine/ArcText/DashedArcLine使用。(I83959、b/427556439)
API 變更
- 我們已淘汰
Image.Builder()和Image.Builder.setResourceId方法,並改用新的自動資源註冊 API,這個 API 適用於Image.Builder(ProtoLayoutScope)和Image.Builder.setImageResourceAPI,可免除覆寫onTileResourcesRequest的需求。(I7bfe6、b/432758526) - 將用於建立
ProtoLayoutScope的 API 從受限移至公開。不過,系統已處理這些呼叫,因此不應使用這些方法。(I1d8e8、b/432758251)
修正錯誤
- 新增實作項目,以便在
ProtoTiles中支援PendingIntent(I38167、b/430610429) - 新增
invalidateLayout方法。(Ief898) - 將預設 minSdk 從 API 21 移至 API 23 (Ibdfca、b/380448311、b/435705964、b/435705223)
ImageResource現在提供hashCode和equals方法。(I650ee、b/428692423、b/428693523)- 新增 proto 訊息
PendingIntentAction及其包裝函式建構工具 (Ie2aca、b/427643502) - 減少建立
ZoneId執行個體的頻率。(I284d3) - 對單一廣告空間
textButton套用預設內容說明。(I0dc8a、b/415001534) - 修正調整算繪器端行數上限的計算方式。(I933bc、b/414353620)
1.3 版本
1.3.0 版本
2025 年 6 月 4 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0。1.3.0 版包含這些修訂項目。
自 1.2.0 版以來的重要異動
- 手錶採用 Material 3 設計,元件和版面配置經過最佳化,可配合圓形螢幕,並根據螢幕大小適當調整比例
- 包括僅限 Kotlin 的
protolayout-material3程式庫,其中包含下列元件和功能更類似 Compose 的 API: - 系統提供的動態色彩主題,以及採用最新 Material 3 主題的錶面,可自訂顏色、形狀和字體排版
MaterialScope,負責處理所有預設值,並簡化自訂作業iconEdgeButton、textEdgeButtoniconButton、textButton、button、imageButton、avatarButton、compactButtontitleCard、appCard、graphicDataCard、iconDataCard、textDataCardcircularProgressIndicator、segmentedCircularProgressIndicatorprimaryLayout、buttonGroup- 所有元件都適用於任何 SDK 層級和
ProtoLayout轉譯器版本,並在適用時提供合理的備用項目
- 包括僅限 Kotlin 的
- 更支援 Kotlin 的 Compose 類似 API,適用於基本 ProtoLayout 元素
LayoutModifier,可將大部分修飾符新增為鏈結函式 (padding、contentDescription(包括clearSemantics)、background、clip、opacity等),並轉換為現有的Modifiers物件LayoutColors和LayoutString類型,可更輕鬆地支援動態欄位和限制text和fontStyle- 更完善的
StateBuilder對應支援功能,包括DynamicDataMap和工廠方法 (例如intAppDataKey),可輕鬆建立AppDataKey物件
- Lottie 動畫支援設定動畫的觸發時機,例如在載入版面配置或版面配置顯示時開始播放動畫
- 改善漸層支援:
- 線性漸層 API 是
Brush的一部分,可用於Background修飾符,適用於Box、Spacer等元素。 - 允許在用於線性和掃掠漸層的
ColorStop中使用動態顏色值 - 弧形物件中的現有掃掠漸層現在支援動態顏色,以及起始和結束角度
protolayout-expression中的平台資料繫結,可在版面配置的可見度變更時隨時接收資訊,例如在輕觸動態磚時隱藏版面配置的特定部分- 新增測試程式庫 -
protolayout-testing,方便針對任何 ProtoLayout 元素進行單元測試涵蓋範圍 - 新元素
DashedArcLine具有更完善的功能,可讓線條顯示虛線,而非現有的ArcLine ArcSpacer支援以 DP 維度設定長度,而非角度- 新增適用於部分字型的圓潤度
FontSetting軸
1.3.0-rc01 版本
2025 年 5 月 20 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-rc01,與前一版相比沒有任何異動。1.3.0-rc01 版包含這些修訂項目。
1.3.0-beta02 版
2025 年 5 月 7 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-beta02。1.3.0-beta02 版包含這些修訂項目。
修正錯誤
- 我們大幅改善了適用於 API 36 以上版本的排版設計值。這是因為從 API 36 開始,所有動態磚都會使用系統字型,因此這項變更可讓動態磚輪播介面更一致。(If316f)
- 如果未設定動態值的
layoutConstraints,Text、Spacer、ArcLine和DashedArcLine建構函式不會擲回例外狀況。請注意,舊版算繪器仍須設定layoutConstraints,並會忽略未設定該值的動態值。(Ic52e8) - 新增標題語意修飾符,指出版面配置元素是內容區段的標題,以利無障礙功能使用,並將
primaryLayout標題位置中的文字預設標示為無障礙標題。(Iae1fb) - 最終的 UX 潤飾:在較小的螢幕上,標題和主要位置之間的間距從 6dp 縮減為 4dp。
primaryLayout(I0e056) - 將預設內容說明套用至
textEdgeButton。(Ifaf8b) - 微幅更新
avatarButton內邊框間距。(I0910b)
1.3.0-beta01 版本
2025 年 4 月 9 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-beta01。1.3.0-beta01 版包含這些修訂項目。
新功能
Wear ProtoLayout 的 1.3.0-beta01 版本指出,此程式庫版本功能完整且 API 已鎖定 (標示為實驗性的除外)。Wear ProtoLayout 1.3 包含下列新功能和 API:
- 手錶採用 Material 3 設計,元件和版面配置經過最佳化,可配合圓形螢幕,並根據螢幕大小適當調整比例
- 包括僅限 Kotlin 的
protolayout-material3程式庫,其中包含下列元件和功能更類似 Compose 的 API: - 系統提供的動態色彩主題,以及採用最新 Material 3 主題的錶面,可自訂顏色、形狀和字體排版
MaterialScope,負責處理所有預設值,並簡化自訂作業iconEdgeButton、textEdgeButtoniconButton、textButton、button、imageButton、avatarButton、compactButtontitleCard、appCard、graphicDataCard、iconDataCard、textDataCardcircularProgressIndicator、segmentedCircularProgressIndicatorprimaryLayout、buttonGroup- 所有元件都適用於任何 SDK 層級和 ProtoLayout Renderer 版本,並在適用情況下提供合理的備用項目
- 包括僅限 Kotlin 的
- 更支援 Kotlin 的 Compose 類似 API,適用於基本 ProtoLayout 元素
LayoutModifier,可將大部分修飾符新增為鏈結函式 (padding、contentDescription(包括clearSemantics)、background、clip、opacity等),並轉換為現有的Modifiers物件LayoutColors和LayoutString類型,可更輕鬆地支援動態欄位和限制text和fontStyle- 更完善的
StateBuilder對應支援功能,包括DynamicDataMap和工廠方法 (例如intAppDataKey),可輕鬆建立AppDataKey物件
- Lottie 動畫支援設定動畫的觸發時機,例如在載入版面配置或版面配置顯示時開始播放動畫
- 改善漸層支援:
- 線性漸層 API 是
Brush的一部分,可用於Background修飾符,適用於Box、Spacer等元素。 - 允許在用於線性和掃掠漸層的
ColorStop中使用動態顏色值 - 弧形物件中的現有掃掠漸層現在支援動態顏色,以及起始和結束角度
protolayout-expression中的平台資料繫結,可在版面配置的可見度變更時隨時接收資訊,例如在輕觸動態磚時隱藏版面配置的特定部分- 新增測試程式庫 -
protolayout-testing,方便針對任何 ProtoLayout 元素進行單元測試涵蓋範圍 - 新元素
DashedArcLine具有更完善的功能,可讓線條顯示虛線,而非現有的ArcLine ArcSpacer支援以 DP 維度設定長度,而非角度- 新增適用於部分字型的圓潤度
FontSetting軸
1.3.0-alpha10 版
2025 年 3 月 12 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha10。1.3.0-alpha10 版包含這些修訂項目。
新功能
- 在 Kotlin 背景修飾符中新增 Brush 的輔助程式。(I995de)
MaterialScope中已公開強制執行的 Android Context 欄位,方便開發人員在建立 Material3 資訊方塊的元件時使用函式。(I7df73)
API 變更
- 將 API
platformVisibilityStatus重新命名為PlatformEventSources.isLayoutVisible,並新增實驗性 APIPlatformEventSources.isLayoutUpdatePending。(Ie1e04)
修正錯誤
- 現在
primaryLayout的邊界會正確向上捨入,這可能會影響某些版面配置,主廣告空間最多會減少 2dp。(I8f5d3) - 釐清
ProtoLayoutMaterial3 元件中的預設動態色彩主題。(Iff5f3) Typography.NUMERAL_*字體不再預設為表格/等寬字體。如果文字正在動畫化,強烈建議為文字新增FontSetting.tabularNum()設定。在所有其他情況下,您不需要使用等寬字型選項,而且不使用這個選項可用的字元會更多。(Id3cd9)- 釐清
ProtoLayoutMaterial3 元件中的預設動態色彩主題。(I9d831)
1.3.0-alpha09 版
2025 年 2 月 26 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha09。1.3.0-alpha09 版包含這些修訂項目。
新功能
- 新增
enterTransition和exitTransition的實驗性修飾符 (I4a4d6) - 我們新增了額外的平台繫結,以便在全版面配置的顯示狀態變更時接收通知。(I250c3)
- 允許將測試應用程式狀態和平台資料注入
LayoutElementAssertionsProvider,以評估動態值。(Ib5fcb) - 在 protolayout 測試程式庫中新增角落篩選器 (Ie2361)
ButtonColors、CardColors和ProgressIndicatorColors現在支援複製方法,並可選擇覆寫部分參數。(Ie2054)
API 變更
- 在測試程式庫中新增動態資料繫結支援 (Ib98de)
- 修正與
backgroundImage函式搭配使用時的imageButton,方法是移除疊加層。此外,請允許backgroundImage函式指定疊加顏色為空值,也就是不套用疊加效果。(Ibec3c)
修正錯誤
- 變更預設
hasValueOfType方法,擲回UnsupportedOperationException而非IllegalArgumentException。(Ia36c3) - 預設顏色權杖值已更新,可反映最新規格。(I75d44)
- 修正 AndroidX 圖塊轉譯器中圓弧線條的鋸齒問題。(I88190)
1.3.0-alpha08 版
2025 年 2 月 12 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha08。1.3.0-alpha08 版包含這些修訂項目。
新功能
- 為 Material3 文字新增
FontSetting清單參數。(Ic102d) - 新增
DynamicDataMap類別,StateBuilder現在支援這個類別,可為應用程式狀態提供更安全的 Kotlin API (I012ba) - 新增
intAppDataKey等工廠方法,方便建立AppDataKey物件 (Icea2a) DynamicDataValue現在除了hasInt/hasColor/.... 方法外,還提供hasValueOfType(Class<?>)方法 (I4f7a6)- 我們已在 Material3 ProtoLayout
errorDim中新增ColorScheme,用於高優先順序錯誤或緊急動作,例如安全警示。(Ia17bb) - 我們新增了防護機制,避免存取全域 reduceMotion 設定時發生當機問題。在部分未提供該設定的平台上,系統會觸發這項防護機制。(I01e2c)
API 變更
addKeyToValueMapping已重新命名為addToStateMap,且DynamicDataMap.put方法已移除,因為這些方法是多餘的。(Ibe9dd)- Material 3 字體排版現在支援系統字型的圓角變數軸 (如果支援的話)。ProtoLayout
FontSetting支援字體的圓角軸 (如果字體支援這個軸)。(I33eb5) - 在 Material3 文字方法中,
multilineAlignment已重新命名為 alignment。(I2b66b) - 將圓形進度指標更新為 Box 類型,並在
constructGraphic中指定mainContent為 Box 類型 (I5a3dc) - 更完善地支援在圖表中顯示圓形進度指標 (I039db)
修正錯誤
- 允許
ColorStop中的動態值,以及SweepGradient中的開始/結束角度。(I0146d) - 修正 Google 文件問題。(I4a63a)
- 更新 Material 3 元件 (
graphicCard和avatarButton),在不支援weight擴展維度時提供備援 (例如 API 33 以下)。更新文字元件,在轉譯器不支援TEXT_OVERFLOW_ELLIPSIZE時,改用TEXT_OVERFLOW_ELLIPSIZE_END。(I19e2c) PrimaryLayoutMargins的文件更新。(Ibaf7b)
1.3.0-alpha07 版
2025 年 1 月 29 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha07。1.3.0-alpha07 版包含這些修訂項目。
新功能
- 新增 API 選項,可為 Lottie 動畫設定不同觸發條件。此外,還新增了版面配置顯示時觸發的 API (I8272d)
- 新增
border、visibility和opacity修飾符。(I6d3dd) - 在 ProtoLayout Material3 元件中新增了 avatar 按鈕。(Idb5ae)
- 我們現在允許在 Material3
primaryLayout中自訂邊界 (側邊和底部,視情況而定)。(Ib22f6) - 新增圓形進度指標的區隔變體。(I6a648)
- 在 ProtoLayout Material3 中新增了精簡按鈕元件。(Ia3c5c)
- 在 ProtoLayout Material3 中新增藥丸形按鈕和圖片按鈕元件。(Ifb88a)
API 變更
LayoutModfier.foldIn現在稱為foldRight,可更準確反映預期行為 (Idf242)VisibleOnce觸發程序目前處於實驗階段。(Ib2d26)- 從公用 API 中移除
withOpacity,因為有替代的圖像程式庫。(I030c2) LayoutString.kt和LayoutColor.kt中的頂層方法已重新命名,採用 Java 友善名稱。(I7aff0)- 移除了 Material 3 中的非 ProtoLayout 字體。(Idd9ae)
- 在 Material3 的
*Colors類別中,為欄位新增 Color 後置字串。(I2d114)
修正錯誤
1.3.0-alpha06 版
2025 年 1 月 15 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha06。1.3.0-alpha06 版包含這些修訂項目。
新功能
LayoutColor,以支援靜態和動態顏色類型 (I4c89b)- 新增
ProtoLayout Material3textButton 元件。(Id680d) - 新增
iconButtonProtoLayout Material3 元件。(Ica3f0) - 新增 ProtoLayout Material3 按鈕容器元件。(I17a38)
- 在 protolayout-material3 中新增可鏈結的語意修飾符支援 (I4af62)
- 新增 ProtoLayout Material3 單一區隔
CircularProgressIndicator(I2c8a2) - 新增
padding、metadata修飾符 (I8720a) - 新增
background、clip和clickable修飾符 (I35478) - 將
LinearGradient新增至筆刷,並允許在背景修飾符中使用。(Ic4dea) - 為 appCard 和
titleCard新增小型尺寸。(I91f98) - 新增 ProtoLayout Material3
graphicDataCard元件。(I92be7) - 新增 ProtoLayout Material3
iconDataCard和textDataCard元件。(I4e1e4) - 新增 ProtoLayout Material3
appCard元件。(Id4c57) - 摘要
EdgeButtonColors至ButtonColors。(I83624) - 新增 ProtoLayout Material3
titleCard元件。(I2dc72)
API 變更
- ProtoLayout Material3 API 現在接受
LayoutString,可同時支援靜態和動態文字。(I9c24a)
修正錯誤
1.3.0-alpha05 版
2024 年 12 月 11 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha05。1.3.0-alpha05 版包含這些修訂項目。
新功能
修正錯誤
- 這個程式庫現在使用 JSpecify 空值註解,這些註解屬於型別用途。Kotlin 開發人員應使用下列編譯器引數,強制執行正確用法:
-Xjspecify-annotations=strict(這是 Kotlin 編譯器 2.1.0 版的預設值)。(Id1f9b、b/326456246)
1.3.0-alpha04 版本
2024 年 11 月 13 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha04。1.3.0-alpha04 版包含這些修訂項目。
新功能
- 更新 Material3 形狀,使其成為具有欄位的類別,可保留實際的 Corner 值,與 Wear Compose 相同。(Ied8cd)
- 更新 Material3 顏色,加入
ColorScheme概念,與 Wear Compose 相同。(If645e) - 在測試程式庫中新增多個常用的比對器。(Ie5cec)
1.3.0-alpha03 版
2024 年 10 月 30 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha03。1.3.0-alpha03 版包含這些修訂項目。
新功能
- 將
LayoutElementAssertionsProvider、LayoutElementAssertion和LayoutElementMatcher新增至測試程式庫 (Id1110)
1.3.0-alpha02 版本
2024 年 10 月 16 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha02。1.3.0-alpha02 版包含這些修訂項目。
新功能
- Material 3 程式庫的初始版本。包括
text、edgeButton、buttonGroup和primaryLayout元件。
安全性修正
- 自這項變更起,androidx 會針對 protobuf 4.28.2 進行編譯,以解決 CVE-2024-7254。將
androidx.wear.protolayout:protolayout-proto和androidx.wear.protolayout:protolayout-external-protobuf的依附元件從 1.3.0-alpha01 版升級至 1.3.0-alpha02 版,即可解決安全漏洞風險。
外部貢獻
1.3.0-alpha01 版本
2024 年 10 月 2 日
發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha01。1.3.0-alpha01 版包含這些修訂項目。
修正錯誤
1.2 版本
1.2.1 版本
2024 年 10 月 16 日
發布 androidx.wear.protolayout:protolayout-*:1.2.1。1.2.1 版包含這些修訂項目。
安全性修正
- 自這項變更起,androidx 會針對 protobuf 4.28.2 進行編譯,以解決 CVE-2024-7254。將
androidx.wear.protolayout:protolayout-proto和androidx.wear.protolayout:protolayout-external-protobuf的依附元件從 1.2.0 版升級至 1.2.1 版,以解決安全漏洞風險。
1.2.0 版本
2024 年 8 月 7 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0。1.2.0 版包含這些修訂項目。
自 1.1.0 版以來的重要異動
FontStyle已更新,可支援更多可變軸的字型,並提供更完善的字型選取 API,以支援即將推出的 Flex 字型。- 支援其他修飾符:
- 轉換修飾符,可提供翻譯、旋轉和縮放功能,並可選擇是否加入動畫效果。
- 為每個圓角半徑指定不同的值 (水平和垂直)。
- 將使用 Clickable 修飾符的任何元素可輕觸區域擴大至至少
48dpx48dp,改善所有觸控目標的無障礙功能。 - 新增
setResponsiveContentInsetEnabled,改善PrimaryLayout和EdgeContentLayout,以便在不同螢幕大小中,更妥善支援這些版面配置的回應式行為,並提升動態磚一致性。 - 改善 Android 14 非線性字型縮放功能的 Material Text 縮放/非縮放功能。
- 改善所有弧形元素對 RTL 版面配置方向的支援。
其他變更
- 如要查看第 1.1.0 版的完整異動清單,請參閱「beta01 版本資訊」。
1.2.0-rc01 版本
2024 年 7 月 24 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-rc01。1.2.0-rc01 版包含這些修訂項目。
修正錯誤
- 我們已修正標準 Material Chip,因此如果未傳遞任何主要或次要標籤,即可做為圖示使用。(Iceef9)
- 我們更新了 Material 版面配置的說明文件,加入相關頁面的圖片,方便您瞭解版面配置。(I0256a)
1.2.0-beta01 版本
2024 年 7 月 10 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-beta01。1.2.0-beta01 版包含這些修訂項目。
新功能
Wear ProtoLayout 的 1.2.0-beta01 版指出,此程式庫版本功能完整且 API 已鎖定 (標示為實驗性的除外)。Wear ProtoLayout 1.2 包含下列新功能和 API:
FontStyle已更新,現在支援更多字型,如下所示:- 設定不同的字型變化版本設定,例如
FontSetting.weight和FontSetting.width - 為所有數字字元設定相同寬度 - 表格數字 (
FontSetting.tnum字型功能設定) - 改良字型選取 API,指定要使用的偏好字型系列名稱,支援即將推出的彈性字型。
- 設定不同的字型變化版本設定,例如
- 擴充
Corner修飾符,支援使用個別的水平和垂直值指定每個CornerRadius,以便建構具有不對稱圓角的元素。 - 新增
Transformation修飾符,可平移、旋轉及縮放LayoutElement。您可以使用動態值,為這些轉換製作動畫。 - 在所有弧形元素 (
Arc、ArcLine和ArcText) 中新增setArcDirection,並提供Clockwise、CounterClockwise和Normal選項,以便在不同版面配置方向 (例如 LTR 和 RTL) 中提供更完善的支援。 - 將使用
Clickable修飾符的任何元素可輕觸區域擴大為至少48dpx48dp,提升所有觸控目標的無障礙功能。 - 新增
setResponsiveContentInsetEnabled,改善PrimaryLayout和EdgeContentLayout,以便在不同螢幕大小上更妥善支援這些版面配置的回應式行為,並提升動態磚一致性。新增 Linter 警告,建議使用這些 API 並提供快速修正功能。 - 改善 Android 14 非線性字型縮放功能的 Material
Text縮放/非縮放功能。
API 變更
- 由於未使用
preferredFontFamiliesAPI,因此系統會移除預設字型系列名稱 (DEFAULT_SYSTEM_FONT)。(I39dab) - 傳遞至
FontSetting.width的參數應為正數。(I1266f)
1.2.0-alpha05 版本
2024 年 6 月 26 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha05。1.2.0-alpha05 版包含這些修訂項目。
新功能
- 在
Material.CompactChip中新增hasText方法,檢查是否已設定文字內容。(I6e8fc)
API 變更
FontFamily常數會移至FontStyle,而不是 Builder 類別。(I06ced)- 更新
FontSetting.weight和FontSetting.widthAPI,加入 Range 註解,並將權重的參數變更為 int。(Ia726c)
修正錯誤
- Material 程式庫中無法縮放的文字現在可與 Android 14 的非線性字型縮放功能正常運作。(I6601e)
1.2.0-alpha04 版本
2024 年 5 月 29 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha04。1.2.0-alpha04 版包含這些修訂項目。
API 變更
- 新增非對稱圓角 API,可使用 2 個值分別指定每個圓角的半徑。(Icbd69)
- 擴充
FontSettingAPI,納入以下項目: - 在
FontStyle中新增字型系列 API,以便指定要使用的字型系列順序清單。(Iba9f5) - Material 的
LayoutDefaults中,內容和次要標籤之間的空間高度常數已重新命名,原本以「Edge content」為前置字元,現在更通用,可同時套用至PrimaryLayout和EdgeContentLayout。(I4dc32)
修正錯誤
- 已將可變字型軸的命名從「
axisName」變更為「axisTag」。(I02ba3)
1.2.0-alpha03 版本
2024 年 5 月 14 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha03。1.2.0-alpha03 版包含這些修訂項目。
新功能
- 新增 API,可為
FontStyle設定自訂權重值。(I7390a)
修正錯誤
- 修正因目標地圖空白而導致
getTouchDelegateInfo失敗的問題。(I2accf)
1.2.0-alpha02 版本
2024 年 5 月 1 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha02。1.2.0-alpha02 版包含這些修訂項目。
API 變更
- 我們新增了支援功能,可針對個別可點選元素停用漣漪回饋。(If1ede)
- 由於
ArcModifiers不支援轉換功能 (Ic0827),因此已從中移除轉換 API。 ArcDirectionProp建構工具現在需要建構函式中的值。(I76ada)PlatformDataValues.Builder.putAll方法可將一個PlatformDataValue合併到另一個PlatformDataValue。(I50ba3)Text#setIsScalable已重新命名為Text#setScalable。(If920e)- Material Text 可設定是否使用可縮放的大小 (使用者變更字型大小時會隨之變大)。(Ibc849)
- 我們新增了將內容說明設為
TitleChip的選項。(I5d21f) - 修正
CompactChip,使其能正確處理僅含圖示的項目,並更新 API 以允許這個選項。(I6589e)
修正錯誤
- 修正初始化期間可能出現重複平台資料的問題。(Iba0fd)
- 在
DynamicDataNode中導入新的 getter,以擷取節點費用。取得動態節點配額時會使用這項費用。目前,具有固定值的節點費用為 0,所有其他節點的費用為 1。(Ia33e1) - 從
NO_OP_QUOTA_MANAGER移除計數邏輯。(Ib50b8) - 我們新增了 Lint 規則,會在未使用
setResponsiveContentInsetEnabled的情況下使用PrimaryLayout時發出警告,並提供快速修正功能。(I12025) - 動態運算式節點數量有限。(Iffae8)
1.2.0-alpha01 版本
2024 年 3 月 6 日
發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha01。1.2.0-alpha01 版包含這些修訂項目。
新功能
ProtoLayout Arc元素現在可選擇新增ArcDirection(Clockwise、Counterclockwise或Normal)。將這項行為新增至Arc、ArcLine或ArcText,即可修正 RTL 版面配置中的行為。(I90699)EdgeContentLayout已更新為新的setResponsiveContentInsetEnabled設定器,可與使用者體驗規範更妥善地保持一致,並在動態磚中將主要標籤固定在頂端,以及為標籤提供動態插邊,確保一致性。(I60175)- 我們已新增
PrimaryLayout.setResponsiveContentInsetEnabled,可為這個版面配置中的主要標籤、次要標籤和底部方塊新增回應式插邊,避免內容超出螢幕邊緣。(I0c457) - 新增方法,可從
CircularProgressIndicator移除外邊界,以便做為較小的元件使用。(I55c06)
API 變更
- 現在,圖塊算繪器預設會排除所有文字元素的字體邊框間距,且無法選擇納入。(I3e300)
修正錯誤
- 修正在「文字」上同時使用省略號、字母間距和置中對齊時,文字對齊的問題。(I716c7)
- 針對 Skia 圓弧繪圖問題新增解決方法。(I08f09)
- 修正 RTL 版面配置的
ArcLine繪製方向。(I6c141)
1.1 版本
1.1.0 版本
2024 年 2 月 7 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0。查看 1.1.0 版的修訂項。
自 1.0.0 版以來的重要變更
- 支援漸層,並在
ArcLine中更準確地呈現大於 360 度的長度。 - 日期時間格式支援動態資料類型的不同時區。
- 更完善的文字自動調整大小和省略選項,可處理截斷的文字。
- Spacer 支援擴展尺寸,並可選擇權重。
- 所有
ProtoLayoutAPI 的結構定義版本規定註解。 - 將任何
Clickable元素的目標區域擴大為 48 dp x 48 dp,以符合無障礙規定。 - 字型邊框間距預設為關閉,且是所有文字元素和含有文字的 Material 元件的唯一行為。
其他變更
- 如要查看第 1.1.0 版的完整異動清單,請參閱「beta01 版本資訊」。
1.1.0-rc01 版本
2024 年 1 月 24 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0-rc01。查看 1.1.0-rc01 版的修訂項。
修正錯誤
- 啟用更新後,
PlatformTimeUpdateNotifierImpl會立即勾選。(I77145) CircularProgressIndicator已修正 RTL 版面配置問題。從現在起,所有情況都會順時針旋轉。(I95ee3)- 針對 Skia 圓弧繪圖問題新增解決方法。(I08f09)
1.1.0-beta01 版本
2024 年 1 月 10 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0-beta01。1.1.0-beta01 版包含此連結所列的修訂項目。
新功能
Wear ProtoLayout 的 1.1.0-beta01 版指出,此程式庫版本功能完整且 API 已鎖定 (標示為實驗性的除外)。Wear ProtoLayout 1.1 包含下列新功能和 API:
ArcLine現在支援漸層,方法是新增Brush(含SweepGradient),並在上限加上陰影,藉此在現有StrokeCap上新增Shadow,更準確地呈現大於 360 度的長度。DynamicInstant支援時區日期時間格式設定。DynamicInstant和DynamicDuration可做為狀態或平台資料類型。- 文字大小自動調整功能,可設定多種大小,
FontStyle.setSizes文字大小會根據父項內的空間自動縮放。此外,我們也新增TEXT_OVERFLOW_ELLIPSIZE並淘汰TEXT_OVERFLOW_ELLIPSIZE_END,改善溢位文字的省略號選項。 Spacer現在支援具有選用權重的展開維度。我們新增了DimensionBuilders.weight輔助方法,用於建構ExpandedDimensionProp。- 支援使用
Modifier.visible動態隱藏及取消隱藏版面配置元素。包括在BoolProp中加入動態值。 - 所有
ProtoLayoutAPI 現在都有結構定義版本需求註解,且可以在呼叫較新的 API 前檢查版本。 - 現在,每個含有
Clickable的元素在算繪器中的目標區域都會擴展至至少 48x48,以更完善地支援無障礙需求。 - 繼其他 Material 元件和 Compose 計畫後,我們現在已在所有
Text元素中預設關閉字型邊框間距。此外,AndroidTextStyle和相關設定程式已從公用 API 中移除。 並修正下列錯誤: - 在
EdgeContentLayout中新增邊緣內容的設定器,因此邊緣內容可放置在其他內容之前。 - 遇到無法辨識的列舉值時,一律擲回例外狀況。
- 如果運算式產生無效的數值 (NaN 或無限大) 或擲回
ArithmeticException,則結果會失效。
API 變更
- 更新
SweepGradientAPI,允許在建構函式中接受顏色或ColorStops。(I6676f)
修正錯誤
- 新增受限的 API 和算繪器支援,用於設定繪製弧形元素的方向。(Idef5a)
- 如未指定,
RoundMode預設為FloatToInt32Node中的Floor。如果提供的RoundMode無法辨識,節點仍會擲回例外狀況。(I1b2d8)
1.1.0-alpha04 版本
2023 年 12 月 13 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha04。1.1.0-alpha04 版包含此連結所列的修訂項目。
新功能
API 變更
- 文字溢位選項
TEXT_OVERFLOW_ELLIPSIZE_END現已淘汰。請使用新的TEXT_OVERFLOW_ELLIPSIZEAPI,行為與舊版 API 非常相似。(I822d8) - 繼其他 Material 元件和 Compose 計畫後,我們現在已在所有 Text 元素中預設關閉字型邊框間距。此外,
AndroidTextStyle和相關的 setter 已從公用 API 中移除。(I79094、Ib0b03、I32959、Iaf7d5、Ifa298、I0a4ae、Ida9d3) Modifier.hidden已替換為Modifier.visible(I56902)FontStyle#setSizes現在接受 int,而非SpProp引數。(I02b37)
修正錯誤
- 遇到 Undefined 或 Unrecognized 列舉值時,擲回例外狀況。(I9d2cf)
- 重構
DynamicTypeBindingRequest。(I27b57) - 如果運算式產生無效的數值 (NaN 或無限大) 或擲回
ArithmeticException,則結果會失效。(I681ae)
1.1.0-alpha03 版本
2023 年 11 月 29 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha03。1.1.0-alpha03 版包含此連結所列的修訂項目。
新功能
- 新增實驗性支援,可動態隱藏/取消隱藏版面配置元素 (I64a78)
- 在
BoolProp中新增動態值支援 (I2fe96) - 在
ProtoLayoutAPI 中新增結構定義版本規定註解 (I0f03c) - 在
TextOverflow中新增選項,擴充 API,即使未達到最大行數 (但文字空間不足),也能在固定父項容器中將文字刪節。(I110a9) - 新增輔助方法
DimensionBuilders.weight,用於建構具有權重的ExpandedDimensionProp。(I4f72b) DynamicInstant和DynamicDuration可做為狀態或平台資料類型。(I6819f)
API 變更
- 更新 API,隱藏
DynamicZonedDateTime並將所有作業移至DyanamicInstant(I34b94) - Spacer 現在支援寬度/高度的 Expanded 維度。(Ie7c94)
- 在 Renderer 中支援點擊目標區域擴充功能 (I39c79)
1.1.0-alpha02 版本
2023 年 11 月 15 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha02。查看 1.1.0-alpha02 版的修訂項。
新功能
- 在 API 中新增
ArcLineStrokeCapShadow欄位。(I830ec) - 擴充 API,以便指定要擴展的 Spacer 寬度或高度。(I757ca)
- 我們新增了實驗性 API,可根據文字在父項內擁有的空間,自動調整文字大小。(Ibbe63)
- 支援可點擊的最小尺寸 (I178e3)
- 新增了
StrokeCapShadow的算繪器支援。(I48b17) - 在
ArcLine中新增掃描漸層的算繪器支援功能。(I4d5bb)
1.1.0-alpha01 版本
2023 年 10 月 18 日
發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha01。1.1.0-alpha01 版包含以下修訂項目。
新功能
- 在
Arcline中新增筆刷選項,支援SweepGradient。(Ie7ce3) - 新增支援時區日期時間格式。(Ibfae0)
- 新增時區日期時間格式所需的 Proto 和 Java 包裝函式。(I97126)
- 新增讀取儲存在
DynamicDataValue中的值的 Getter。(Ie6cea) - 在
EdgeContentLayout中新增邊緣內容的設定器,因此邊緣內容可放置在其他內容之前。(Ie8e8a)
修正錯誤
- 修正問題:含有多個時間資料來源註冊項目的運算式不會立即更新。(I8e1a8)
- 修正了在差異更新期間,將根元素置中的錯誤。(Ie48f7)
- 系統不會再忽略未設定 (或空白) 的版面配置限制值。(Ibc785)
- 減少版面配置顯示與管道節點初始化之間的延遲。(I38d4e)
1.0 版本
1.0.0 版本
2023 年 8 月 9 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0。1.0.0 版包含此連結所列的修訂項目。
1.0.0 的主要功能
ProtoLayout 程式庫會導入 API,用於建立可在不同 Wear OS 介面使用的版面配置和運算式。舉例來說,資訊方塊程式庫會使用這些 API 支援平台資料繫結 (加快資訊方塊資料更新速度) 和動畫。
1.0.0-rc01 版
2023 年 7 月 26 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-rc01。1.0.0-rc01 版包含以下修訂項目。
- 如要從「圖塊」遷移至
ProtoLayout,請按照這裡的說明操作。
API 變更
- 我們已從 Arc 元素中移除
setLayoutConstraintForDynamicAnchorAngle和getLayoutConstraintForDynamicAnchorAngle方法。這些方法是誤加的,對提供的版面配置沒有任何影響。(If7d01) - 我們將
ProtoLayout版面配置的最大深度限制為 30 個巢狀LayoutElements。(I8a74b)
修正錯誤
1.0.0-beta01 版
2023 年 6 月 21 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-beta01。1.0.0-beta01 版包含此連結所列的修訂項目。
新功能
- 允許設定時鐘以進行時間繫結測試。(I05622)
API 變更
PlatformDataReceiver.onData()和StateBuilders.Builder.addKeyToValueMapping現在接受DynamicDataKey到DynamicDataValue的型別安全對應,而非不安全的泛型。也就是說,現在輸入DynamicDataValue時,系統會一併輸入DynamicType。HEART_RATE_ACCURACY_X常數已移至PlatformHealthSources的根目錄,以符合其他 Android 常數的位置。HEART_RATE_ACCURACY_Xint 常數現在會直接用於DynamicHeartRateAccuracy.constant()和DynamicHeartRateAccuracy.dynamicDataValueOf(),而非值常數。(I82ff5)PlatformHealthSources.Constants類別可例項化,但這是錯誤。這個問題現已修正。(Icb849)PlatformTimeUpdateNotifier#setReceiver現在會接收Runnable,而不是Supplier函式和Executor,以便通知。(I9d938)- 我們已將
PlatformTimeUpdateNotifier#setReceiver中的參數類型從Callable變更為Supplier。(I664bf) CompactChip和TitleChip現在支援新增圖示。(I5a01e)
修正錯誤
1.0.0-alpha11 版本
2023 年 6 月 7 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha11。1.0.0-alpha11 版本包含以下修訂項目。
新功能
- 我們新增了
PlatformDataKey,可提高心率準確度。(I7f9b8)
API 變更
- 將
StateBuilders#getIdToValueMapping重新命名為getKeyToValueMapping,並將傳回類型變更為Map<<AppDataKey<?>,DynamicDataValue>。(Iaa7ae) - 將
StateStore設為最終類別 (I408ca) TimeGateway介面已由protolayout-expression-pipeline程式庫中的PlatformTimeUpdateNotifier取代,可提供更新時間資料的所需頻率。(I60869)- 將
PlatformDataProvider中的register/unregisterForData重新命名為set/clearReceiver(I14b02) - 在 Material Text 中,
getExcludeFontPadding已重新命名為hasExcludeFontPadding。(Iea01d) - 所有晶片元件都新增了可完美對齊標籤的設定器。所有晶片現在都已套用最小可輕觸目標。(I8ae92)
- 「
LayoutDefaults#BUTTON_MAX_NUMBER」已重新命名為「MAX_BUTTONS」。(I84788) DAILY_DISTANCE已重新命名為DAILY_DISTANCE_M。(I4f758)
修正錯誤
1.0.0-alpha10 版本
2023 年 5 月 24 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha10。1.0.0-alpha10 版本包含以下修訂項目。
新功能
- 新增
AppDataKey,用於存取應用程式推送的狀態;新增PlatformDataKey,用於存取平台資料;在StateStore中新增命名空間支援。(I7985e) - 支援
DynamicBool的Equal和NotEqual作業。(I6a0c1)
API 變更
FontStyles類別現已進入最終階段 (Iaa2ea)- 淘汰了
LayoutElementBuilders#FontStyles。請使用androidx.wear.protolayout.Typography或自行建立FontStyle。(Ic929b) - 從
Action介面隱藏Action#Builder巢狀介面。LoadAction和LaunchAction類別已提供 Builder 的實作項目。(I1d70c) - 允許使用
DynamicFloat和FloatProp。請注意,FloatProp不需要版面配置限制,因為它不會做為版面配置變更屬性使用。(I286ac) - 由於
LoalAction和SetStateAction動作尚未真正受到支援,因此已移除。(I5d6a6) - 新增對內嵌圖片資源 ARGB_8888 格式的支援。(I8a07c)
- 將
StateEntryValue重新命名為DynamicDataValue,並更新狀態 API 以使用DynamicDataKey(If1c01) - 為確保每個
StateStore執行個體的記憶體用量和狀態更新時間受到妥善控管,我們限制了StateStore中允許的項目數量。因此,開發人員必須確保地圖中的項目不超過MAX_STATE_ENTRY_COUNT個,否則在建立或更新StateStore時會收到IllegalStateException。(Ibadb3) - 隱藏
OnLoadTrigger和OnConditionMetTrigger類別,並將OnConditionMetTrigger的setTrigger重新命名為setCondition。(Ibf629) - 基於效能和相容性考量,
ProtoLayout轉譯器不會支援AnimatedVectorDrawable資源中的完整功能集。在定義支援的集合之前,我們會將這些 API 標示為實驗功能。(Ic6daf) - 新增每日距離、每日卡路里和每日樓層的動態型別。平台健康狀態來源的金鑰現在位於
PlatformHealthSources.Keys(Ib7637) 下方 Easing.cubicBezier方法會取代CubicBezierEasing.Builder。因此系統會移除EasingFunction類別,而該類別的緩和常數現在可直接從Easing介面存取。此外,setInfiniteRepeatable也已替換為INFINITE_REPEATABLE_WITH_RESTART和INFINITE_REPEATABLE_WITH_REVERSE(Ib41e7)- 實作
PlatformDataProvider,提供心率和每日步數。已從公用 API 中移除SensorGateway介面。(I55b84) - 新增
PlatformDataProvider,並更新StateStore,在節點需要運算式管道的供應商支援金鑰時,向PlatformDataProvider註冊。(Ib616a) SensorGateway不再是Closeable,因為它不再維護任何狀態。(I6b4f7)- 允許在
CircularProgressIndicator中使用FloatProp和DynamicFloat追蹤進度。支援版本 1.2 的轉譯器可使用這項功能。如果提供staticValue,舊版算繪器會改用該值,否則會改用 0 (I0d91b) MultiButtonLayout常數已重構為LayoutDefaults.MultiButtonLayoutDefaults類別,現在包含按鈕大小的常數,視版面配置中的按鈕數量而定。(I13973)- 支援在 Material Text 中使用
StringProp和DynamicString。支援版本 1.2 的轉譯器可使用這項功能。舊版算繪器會改用提供的靜態值。將Text#getText傳回型別從String更新為StringProp。(I7275b)
1.0.0-alpha09 版本
2023 年 5 月 10 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha09。查看 1.0.0-alpha09 版的修訂項。
新功能
- 我們新增了實驗性擴充功能版面配置元素。請注意,這項功能預設無法使用,需要能夠解讀版面配置元素的轉譯器擴充功能。(I6581d)
- 為
ArcLine新增StrokeCap支援。(I94951) - 新增對條件式即時作業的支援。(I489a7)
- 新增條件式時間長度作業的支援。(Iab469)
- 新增從秒數建立時間長度的支援功能。(Ib5fa1)
API 變更
- 已從
DynamicTypeEvaluator移除enable/disablePlatformSource方法。呼叫端應負責更新。(I78c6d) - 允許限制繫結資料類型的大小。(Ie2966)
- 在
protolayout-material中新增動態內容說明支援。(I62c8e) - 在 AnimationParameters 中,使用 long 和
@IntRange表示時間長度和延遲。(I388b6)
1.0.0-alpha08 版本
2023 年 4 月 19 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha08。查看 1.0.0-alpha08 版的修訂項。
新功能
- 已將「
AndroidTextStyle」新增至「LayoutElementBuilders」。(I8d967) - 我們已在
ProtoLayoutMaterial Text 中新增支援功能,可設定排除字型邊框間距。(I17f5d) - 現在支援以 ARGB_8888 格式顯示內嵌圖片。(I18c1e)
DynamicColor現在支援onCondition作業。(I10927)
API 變更
- 支援自訂反向動畫時間長度 (I3251f)
- 我們新增了
SemanticDescription修飾符。此外,ContentDescription無法繫結。(I3f1d) DynamicBool.isFalse()方法現已替換為DynamicBool.negate(),且DynamicBool.isTrue()已移除。此外,NaNDynamicFloat值和將DynamicInt32縮小為DynamicFloat現在會發出無效的動態結果。(I6ac1e)- Int 和 float 格式化工具現在使用 Builder 模式。(Ieb213)
修正錯誤
- 可動畫欄位已移除備用靜態值。(Ifcb01)
- 已移除
DynamicTypeValueReceiver#onPreUpdate。(I2dc35) - 動態運算式中的字串長度現在設有上限。(I4c93)
- 現在,系統會在必要時將 gradle 依附元件正確設為
api,而非implementation。(I40503)
1.0.0-alpha07 版本
2023 年 4 月 5 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha07。查看 1.0.0-alpha07 版的修訂項。
新功能
API 變更
sensorGateway#registerSensorGatewayConsumer會將資料型別做為參數,而不是 Consumer 中的方法。(Icf314)- 「
ObservableStateStore」已重新命名為「StateStore」。(Ieb0e2) - 新增
DynamicTypeEvaluator.Builder(而非建構函式引數),允許更多選用引數,包括現在預設為空白商店的ObservableStateStore。(I6f832) - 已重構
DynamicTypeEvaluator中的參數順序。(Ic1ba4)
修正錯誤
- 將信號從平台感應器來源正確傳播至下游節點 (I5a922)
1.0.0-alpha06 版本
2023 年 3 月 22 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha06。1.0.0-alpha06 版本包含以下修訂項目。
新功能
- 我們新增了實驗性 API,可在動態運算式中使用心率和每日步數 (Ifd711)
- 我們新增了動畫的倒轉和延遲功能。(Ic25f7)
- 我們已在 Border 和 Background
DynamicColor - 我們在
DimensionBuilder的型別中新增了動態值支援功能 tiles-material的版面配置和元件將移至protolayout-material
API 變更
- 已將「
LoadActionListener」新增至「ProtoLayoutViewInstance」。(If7806)
修正錯誤
- 新增
FloatNodesTest(Id7281) - 修正無法載入結構化點陣圖時,導致的轉譯器當機問題。
1.0.0-alpha05 版本
2023 年 3 月 8 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha05。1.0.0-alpha05 版包含此連結所列的修訂項目。
新功能
- 我們已在
Modifiers物件中新增實驗性的「內容更新」動畫。每當元素 (使用這個修飾符) 或其中一個子項在版面配置更新期間發生變化,就會觸發這項動畫。(bd03e5d)
API 變更
- 我們已將
forwardRepeatDelayMillis和reverseRepeatDelayMillis新增至Repeatable。我們也將AnimationSpec中的delayMillis重新命名為startDelayMillis(Ifb266) DynamicTypeEvaluator.bind方法現在接受執行者。(I346ab)- 我們已將
startEvaluation方法新增至BoundDynamicType,以便在繫結動態型別後觸發評估。(I19908)
修正錯誤
- Animator 物件會重複用於單一元素的後續動畫。(Ia3be9)
1.0.0-alpha04 版本
2023 年 2 月 22 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha04。1.0.0-alpha04 版本包含以下修訂項目。
新功能
ObservableStateStore現在也會在移除金鑰時通知聽眾。- 我們已在
DeviceParameters中新增了算繪器結構定義版本和字型比例 (可用於有條件地建立版面配置,以回應不同版本和字型設定)。 - 我們新增了對
DynamicInt32值動畫效果的支援 (I05485) - 我們新增了
OnLoad和OnConditionalMet觸發條件。這些可用於啟動支援觸發條件的動畫。 - 我們已為展開的尺寸新增版面配置權重,並為包裝的尺寸新增最小尺寸。
- 我們新增了時間長度和即時動態類型。這些函式可用於動態運算式,代表時間瞬間或時間長度。
- 我們新增了對
AnimatedVectorDrawable和SeekableAnimatedVectorDrawable的支援,做為版面配置資源。
API 變更
- 感應器資料需要 API 29 以上版本。(I8099e)
- 我們新增了兩個
launchAction輔助方法 (用於啟動活動)。
修正錯誤
- 在動態磚動畫中,將
set/getSpec重新命名為set/getAnimationSpec(I3d74b)
1.0.0-alpha03 版本
2023 年 2 月 8 日
發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha03。1.0.0-alpha03 版包含以下修訂項目。
新功能
- 我們在 protolayout-express 程式庫中的動態類型中新增了
toByteArray()和fromByteArray()。 - 我們在 protolayout-expression 程式庫的動態類型中新增了
toString()。 - 我們為動態類型新增了評估支援服務。protolayout-expression-pipeline 程式庫中的
DynamicTypeEvaluator類別可用來評估先前建立的動態類型 (DynamicString、DynamicFloat等),並接收相關更新值。 - 當無法播放動畫時 (可能是因評估工具停用動畫,或是執行中的動畫數量達到設定上限),系統將使用動畫節點上設定的靜態值取代動畫。
1.0.0-alpha02 版
2023 年 1 月 25 日
發布 androidx.wear.protolayout:protolayout:1.0.0-alpha02、androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 和 androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02。1.0.0-alpha02 版本包含以下修訂項目。
新功能
androidx.wear.tiles:tiles的版面配置建構工具將移至androidx.wear.protolayout:protolayout。androidx.wear.tiles:tiles中的版面配置建構工具將在下一個 Alpha 版本中淘汰。
1.0.0-alpha01 版
2023 年 1 月 11 日
發布 androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 和 androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01。1.0.0-alpha01 版包含此連結所列的修訂項目。
新功能
- 這個版本推出新的程式庫「ProtoLayout Expression」,可從動態變數建立運算式。