Wear protolayout

  
這個程式庫可定義要在遠端介面上轉譯/評估的一組 UI 版面配置和非 UI 運算式。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 8 月 7 日 1.2.0 - - -

宣告依附元件

如要新增 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-alpha03"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha03"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha03"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha03")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha03")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha03")
}

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

意見回饋

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

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.2 版本

1.2.0 版本

2024 年 8 月 7 日

發布 androidx.wear.protolayout:protolayout-*:1.2.0。1.2.0 版包含。這些修訂版本

自 1.1.0 版以來的重要異動

  • 更新了 FontStyle,現在能針對變數軸提供額外的字型支援,以及更完善的字型選擇 API,以支援即將推出的 Flex 字型。
  • 其他修飾符支援:
    • 轉換輔助鍵 可對動畫提供翻譯、旋轉及縮放。
    • 為每個圓角半徑指定不同的值 (水平和垂直)。
  • 將任何使用可點擊修飾符的元素的可輕觸區域延伸至 48dp 的可輕觸區域,改善所有觸控目標的無障礙功能48dp
  • 改善 PrimaryLayoutEdgeContentLayout,新增 setResponsiveContentInsetEnabled 以進一步支援這些版面配置在不同螢幕大小的回應式行為,並改善資訊方塊的一致性。
  • 針對 Android 14 的非線性字型縮放功能,改善 Material 文字的縮放/非縮放功能。
  • 改善對所有弧形元素的 RTL 版面配置方向支援。

其他變更

1.2.0-rc01 版本

2024 年 7 月 24 日

發布 androidx.wear.protolayout:protolayout-*:1.2.0-rc01。1.2.0-rc01 版包含這些修訂版本

修正錯誤

  • 我們已修正標準 Material 方塊,因此只有在未傳入主要或次要標籤時,才能將其用做圖示。(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.weightFontSetting.width
    • 為所有數字字元設定相同的寬度 - 表格數字 (FontSetting.tnum 字型功能設定)
    • 改善字型選取 API,透過指定要使用的偏好字型系列名稱來支援即將推出的彈性字型。
  • 擴充 Corner 修飾符,支援以不同的水平和垂直值指定每個 CornerRadius,以允許建構不對稱角的元素。
  • 新增 Transformation 修飾符,提供 LayoutElement 的轉譯、旋轉和縮放功能。這些轉換可透過動態值建立動畫。
  • 已在所有弧形元素 (ArcArcLineArcText) 中新增具有 ClockwiseCounterClockwiseNormal 選項的 setArcDirection,以便在不同的版面配置方向 (例如 LTR 和 RTL) 中獲得更完善的支援。
  • 將任何使用 Clickable 修飾符元素的可輕觸區域擴充為 48dp 的至少 48dp,以改善所有觸控目標的無障礙功能。
  • 改善 PrimaryLayoutEdgeContentLayout,新增 setResponsiveContentInsetEnabled 以進一步支援這些版面配置在不同螢幕大小的回應式行為,並改善資訊方塊的一致性。新增 Linter 警告,以建議這些 API 的用法,並快速修正。
  • 改善 Material Text 的縮放/非縮放功能,適用於 Android 14 的非線性字型縮放功能。

API 變更

  • 預設字型系列名稱 (DEFAULT_SYSTEM_FONT) 並不使用 preferredFontFamilies API,因此已移除。(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 中,而非其建構工具類別。(I06ced)。
  • 更新 FontSetting.weightFontSetting.width API,加入範圍註解,並將權重參數變更為 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)。
  • 擴充 FontSetting API 以加入:
    • 字型功能設定,例如將字型設為表格(If12b7)。
    • 字型變化設定,例如為可變字型設定自訂寬度。(I2b36d)。
  • 已將字型系列 API 新增至 FontStyle,允許指定應使用之字型系列的順序清單。(Iba9f5)。
  • 重新命名 Material LayoutDefaults 中內容與次要標籤之間的空間高度常數,該常數的初始前置字串為「邊緣內容」前置字串,因此更為通用,因為可同時套用至 PrimaryLayoutEdgeContentLayout。(I4dc32)。

修正錯誤

  • 已將變數字型軸的命名從 axisName 重新命名為 axisTag。(I02ba3)。

1.2.0-alpha03 版本

2024 年 5 月 14 日

發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha03。1.2.0-alpha03 版包含這些修訂版本

新功能

  • 新增了用於設定 FontStyle 自訂權重值的 API。(I7390a)。

修正錯誤

  • 修正 getTouchDelegateInfo 中因目標對應空白而失敗的問題。(I2accf)。

1.2.0-alpha02 版本

2024 年 5 月 1 日

發布 androidx.wear.protolayout:protolayout-*:1.2.0-alpha02。1.2.0-alpha02 版包含這些修訂版本

API 變更

  • 我們已新增對個別可點擊元素停用分享關係回應的支援功能。(If1ede)。
  • 用於轉換的 API 已從 ArcModifiers 中移除,因為其不支援該功能 (Ic0827)
  • ArcDirectionProp 建構工具現在需要建構函式中的值。(I76ada)。
  • PlatformDataValues.Builder.putAll 方法允許將 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 (ClockwiseCounterclockwiseNormal)。在 ArcArcLineArcText 中新增這項行為,將修正應用程式在 RTL 版面配置上的行為。(I90699)。
  • EdgeContentLayout 已更新為新的 setResponsiveContentInsetEnabled setter,使其更能符合使用者體驗指南、將主要標籤置於固定位置,以及標籤的回應式插邊,讓資訊方塊內的一致性。(I60175)。
  • 我們新增了 PrimaryLayout.setResponsiveContentInsetEnabled,可在這個版面配置的主要標籤、次要標籤和底部方塊中新增回應式插邊,避免內容超出螢幕邊緣。(I0c457)。
  • 新增從 CircularProgressIndicator 移除外邊界的方法,以做為較小的元件使用。(I55c06)。

API 變更

  • 資訊方塊轉譯器現在預設會排除所有文字元素的字型邊框間距,而且沒有選項加入。(I3e300)。

修正錯誤

  • 修正文字全部使用刪節號、字母間距和置中對齊時發生的文字對齊問題。(I716c7)。
  • 新增滑雪板繪圖問題的解決方法。(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 度的呈現方式更好。
  • 日期時間格式設定對動態資料類型支援不同的時區。
  • 改善文字自動調整大小和刪減選項,以處理截斷的文字。
  • 空格字元支援可選用的展開尺寸。
  • 所有 ProtoLayout API 的結構定義版本要求註解。
  • 將目標區域擴大為任何 Clickable 元素至 48 dp x 48 dp,以滿足無障礙需求。
  • 字型邊框間距預設為關閉,這是所有內含文字的 Text 元素和 Material Design 元件的唯一行為。

其他變更

1.1.0-rc01 版本

2024 年 1 月 24 日

發布 androidx.wear.protolayout:protolayout-*:1.1.0-rc01查看 1.1.0-rc01 版的修訂項

修正錯誤

  • 啟用更新後,「PlatformTimeUpdateNotifierImpl」會立即生效。(I77145)。
  • 已修正 RTL 版面配置的 CircularProgressIndicator。從現在開始,所有情況下都會順時針旋轉。(I95ee3)。
  • 新增滑雪板繪圖問題的解決方法。(I08f09)。

1.1.0-beta01 版本

2024 年 1 月 10 日

發布 androidx.wear.protolayout:protolayout-*:1.1.0-beta011.1.0-beta01 版包含此連結所列的修訂項目。

新功能

Wear ProtoLayout 的 1.1.0-beta01 版表示此程式庫版本功能完整,且 API 已鎖定 (除非標示為實驗性版本)。Wear ProtoLayout 1.1 包含下列新功能和 API:

  • ArcLine現在支援漸層,新增 BrushSweepGradient,在現有 StrokeCap 上增加 Shadow,讓帽子更清晰呈現長度大於 360 度的畫面。
  • DynamicInstant 支援時區日期時間格式設定。DynamicInstantDynamicDuration 可做為狀態或平台資料類型使用。
  • 文字大小自動調整功能可讓你將多個大小設為 FontStyle.setSizes,因為文字大小會根據父項內部的空間自動調整大小。此外,我們也透過新增 TEXT_OVERFLOW_ELLIPSIZE 和淘汰 TEXT_OVERFLOW_ELLIPSIZE_END,改善了溢位文字的省略選項。
  • Spacer 現在支援具有可選用權重的展開尺寸。針對建構 ExpandedDimensionProp,我們新增了輔助方法 DimensionBuilders.weight
  • 支援使用 Modifier.visible 動態���藏及取消隱藏版面配置元素。包括在 BoolProp 中使用動態價值。
  • 所有 ProtoLayout API 現在都有結構定義版本要求註解和版本,可在呼叫新版 API 前檢查。
  • 現在,含有 Clickable 的每個元素在轉譯器中的目標區域擴展至至少 48x48,以更符合無障礙需求。
  • 在遵循其他 Material Design 元件和 Compose 計畫之後,我們現已預設關閉所有 Text 元素的字型邊框間距。此外,AndroidTextStyle 和相關 setter 已從公用 API 中移除。 修正了下列錯誤:
  • 新增了 setter,用於在 EdgeContentLayout 中放置邊緣內容,以便能夠放在其他內容之前。
  • 遇到無法辨識的列舉值時,持續擲回例外狀況。
  • 運算式產生無效數值 (NaN 或無限) 或擲回 ArithmeticException 時,請將運算式的結果失效。

API 變更

  • 更新 SweepGradient API,允許在建構函式中接受顏色或 ColorStops。(I6676f)。

修正錯誤

  • 新增受限制的 API 和轉譯器支援,用於設定弧形元素的繪製方向。(Idef5a)。
  • 如未指定,RoundMode 會在 FloatToInt32Node 中預設為 Floor。如果系統無法辨識提供的 RoundMode,節點仍會擲回例外狀況。(I1b2d8)。

1.1.0-alpha04 版本

2023 年 12 月 13 日

發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha041.1.0-alpha04 版包含此連結所列的修訂項目。

新功能

  • VersionInfo 類別未實作 Comparable 介面。(I8d13c)。
  • 轉譯器現已支援 TEXT_OVERFLOW_ELLIPSIZE 選項。(I7f085)。

API 變更

  • 文字溢位選項 TEXT_OVERFLOW_ELLIPSIZE_END 現已淘汰。請使用非常類似的新 API TEXT_OVERFLOW_ELLIPSIZE。(I822d8)。
  • 在其他 Material Design 元件和 Compose 計畫之後,我們現已預設關閉所有文字元素的字型邊框間距。此外,AndroidTextStyle 和相關 setter 已從公用 API 中移除。(I79094Ib0b03I32959Iaf7d5Ifa298I0a4aeIda9d3)
  • Modifier.hidden 已替換為 Modifier.visible (I56902)
  • FontStyle#setSizes 現在接受 int 而非 SpProp 引數。(I02b37)。

修正錯誤

  • 遇到「未定義」或「無法辨識」的列舉值時,擲回例外狀況。(I9d2cf)。
  • 重構 DynamicTypeBindingRequest。(I27b57)。
  • 運算式產生無效數值 (NaN 或無限) 或擲回 ArithmeticException 時,請將運算式的結果失效。(I681ae)。

1.1.0-alpha03 版本

2023 年 11 月 29 日

發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha031.1.0-alpha03 版包含此連結所列的修訂項目。

新功能

  • 針對動態隱藏/取消隱藏版面配置元素新增實驗性支援。(I64a78)
  • BoolProp 新增動態值支援 (I2fe96)
  • 將結構定義版本要求註解新增至 ProtoLayout API (I0f03c)
  • 使用 TextOverflow 中的新選項擴充 API,在未達到最大行數的情況下移除固定父項容器中的文字 (但文字空間不足)。(I110a9)。
  • 新增了建立權重ExpandedDimensionProp的輔助方法 DimensionBuilders.weight。(I4f72b)。
  • DynamicInstantDynamicDuration 可做為狀態或平台資料類型使用。(I6819f)。

API 變更

  • 更新 API 以隱藏 DynamicZonedDateTime,並將所有作業移至 DyanamicInstant (I34b94)
  • 空格字元現在支援寬度/高度展開的尺寸。(Ie7c94)。
  • 支援轉譯器中的點擊目標區域擴充功能 (I39c79)

1.1.0-alpha02 版本

2023 年 11 月 15 日

發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha02查看 1.1.0-alpha02 版的修訂項

新功能

  • 已將 ArcLine StrokeCap Shadow 欄位新增至 API。(I830ec)。
  • 擴充 API,指定空格字元的展開寬度或高度。(I757ca)。
  • 我們新增了實驗性 API,可根據父項內部的空間自動調整文字大小。(Ibbe63)。
  • 支援最小可點擊尺寸 (I178e3)
  • ���新增對 StrokeCap Shadow 的���譯器支援。(I48b17)。
  • ArcLine 中新增針對 Sweep Gradient 的轉譯器支援。(I4d5bb)。

1.1.0-alpha01 版本

2023 年 10 月 18 日

發布 androidx.wear.protolayout:protolayout-*:1.1.0-alpha011.1.0-alpha01 版包含以下修訂項目。

新功能

  • 已在 Arcline 中新增筆刷選項,支援 SweepGradient。(Ie7ce3)。
  • 新增分區日期時間格式設定支援。(Ibfae0)。
  • 新增了區域日期時間格式設定所需的 proto 和 Java 包裝函式。(I97126)。
  • 新增用於讀取 DynamicDataValue 中儲存的值的 getter。(Ie6cea)。
  • 新增了 setter,用於在 EdgeContentLayout 中放置邊緣內容,以便能夠放在其他內容之前。(Ie8e8a)。

修正錯誤

  • 修正含有多次資料來源登錄作業的運算式無法立即更新的問題。(I8e1a8)。
  • 修正在差異更新期間將根元素置中的錯誤。(Ie48f7)。
  • 不會再忽略取消設定 (或空白) 版面配置限制值。(Ibc785)。
  • 縮短版面配置顯示到管道節點初始化之間的延遲時間。(I38d4e)。

1.0 版本

1.0.0 版本

2023 年 8 月 9 日

發布 androidx.wear.protolayout:protolayout-*:1.0.01.0.0 版包含此連結所列的修訂項目。

1.0.0 的主要功能

ProtoLayout 程式庫提供 API,可用於建立可用於不同 Wear OS 介面的版面配置和運算式。舉例來說,資訊方塊程式庫會使用這些 API 來支援平台資料繫結 (用於加快資訊方塊資料更新速度) 和動畫。

1.0.0-rc01 版

2023 年 7 月 26 日

發布 androidx.wear.protolayout:protolayout-*:1.0.0-rc011.0.0-rc01 版包含以下修訂項目。

  • 如要從 Tiles ��移至 ProtoLayout,請按照這裡的說明操作。

API 變更

  • 我們已從 Arc 元素中移除 setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle 方法。這些是不小心新增的方法,對提供的版面配置沒有任何影響。(If7d01)。
  • 我們已限制 ProtoLayout 版面配置的巢狀 LayoutElements 最大深度可達 30 個。(I8a74b)。

修正錯誤

  • 我們新增了在 SpanText 已設定 DynamicColor 的情況下,擲回的檢查。(I0e5bc)。
  • 這清楚說明 DAILY_CALORIES 資料來源單位為大卡。(Iaa785)。

1.0.0-beta01 版

2023 年 6 月 21 日

發布 androidx.wear.protolayout:protolayout-*:1.0.0-beta011.0.0-beta01 版包含此連結所列的修訂項目。

新功能

  • 允許設定時間繫結測試的時鐘。(I05622)。

API 變更

  • PlatformDataReceiver.onData()StateBuilders.Builder.addKeyToValueMapping 現在接受類型安全將 DynamicDataKey 對應至 DynamicDataValue,而非不安全的泛型。這表示 DynamicDataValue 現已使用 DynamicType 輸入。HEART_RATE_ACCURACY_X 常數已移至 PlatformHealthSources 的根層級,以便與其他 Android 常數定位。HEART_RATE_ACCURACY_X int 常數現在可直接在 DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.dynamicDataValueOf() 中使用,而不是值常數。(I82ff5)。
  • PlatformHealthSources.Constants 類別可錯誤地例項化。不過現在這個問題已經解決。(Icb849)。
  • PlatformTimeUpdateNotifier#setReceiver 現在會收到 Runnable 而非 Supplier 函式,並接收 Executor 通知。(I9d938)。
  • PlatformTimeUpdateNotifier#setReceiver 中的參數類型已從 Callable 變更為 Supplier。(I664bf)。
  • CompactChipTitleChip 現在支援在其中加入圖示。(I5a01e)。

修正錯誤

  • 將 Prop 訊息更新為動態欄位,改用其中一個欄位 (I81739)
  • 針對含有 setter 的超載 (Ied70c) 重複使用 setter 實作
  • 在具有超載的 setter 中正確記錄指紋 (I86ed2)

1.0.0-alpha11 版本

2023 年 6 月 7 日

發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha111.0.0-alpha11 版本包含以下修訂項目。

新功能

  • 我們新增了 PlatformDataKey,以便提高心率準確度。(I7f9b8)。

API 變更

  • StateBuilders#getIdToValueMapping 重新命名為 getKeyToValueMapping,並將傳回類型變更為 Map<<AppDataKey<?>,DynamicDataValue>。(Iaa7ae)。
  • StateStore 設為最終類別 (I408ca)
  • protolayout-expression-pipeline 程式庫中的 TimeGateway 介面已由 PlatformTimeUpdateNotifier 取代,可提供更新時間資料所需的頻率。(I60869)。
  • PlatformDataProvider 中的 register/unregisterForData 重新命名為 set/clearReceiver (I14b02)
  • 在 Material Text 中,getExcludeFontPadding 已重新命名為 hasExcludeFontPadding。(Iea01d)。
  • 已為所有方塊元件新增用於完美對齊標籤的 setter。所有方塊現已套用最小可輕觸的目標。(I8ae92)。
  • LayoutDefaults#BUTTON_MAX_NUMBER」已重新命名為「MAX_BUTTONS」。(I84788)。
  • DAILY_DISTANCE 已重新命名為 DAILY_DISTANCE_M。(I4f758)。

修正錯誤

  • 更新 Prop 類型說明文件,清楚說明強制執行靜態值的原因。指定在未提供靜態值時使用的預設值。(I155aa)。
  • PlatformDataKey 命名空間應遵循 Java 樣式命名。(I47bda)。

1.0.0-alpha10 版本

2023 年 5 月 24 日

發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha101.0.0-alpha10 版本包含以下修訂項目。

新功能

  • 新增 AppDataKey 以存取應用程式推送狀態;新增 PlatformDataKey 以存取平台資料;在 StateStore 新增命名空間支援。(I7985e)。
  • 支援 DynamicBoolEqualNotEqual 作業。(I6a0c1)。

API 變更

  • FontStyles 類別現已完成 (Iaa2ea)
  • 淘汰了 LayoutElementBuilders#FontStyles。請使用「androidx.wear.protolayout.Typography」或建立自己的「FontStyle」。(Ic929b)。
  • Action 介面隱藏 Action#Builder 巢狀介面。LoadActionLaunchAction 類別已提供 Builder 實作。(I1d70c)。
  • 允許搭配 FloatProp 使用 DynamicFloat。請注意,FloatProp 不會做為版面配置變更屬性,因此不需要版面配置限制。(I286ac)。
  • 系統目前不支援「LoalAction」和「SetStateAction」動作,因此已移除這些動作。(I5d6a6)。
  • 針對內嵌圖片資源新增 ARGB_8888 格式的支援。(I8a07c)。
  • StateEntryValue 重新命名為 DynamicDataValue,並將狀態 API 更新為使用 DynamicDataKey (If1c01)
  • 我們限制了 StateStore 允許的項目數量,確保能妥善控管及控管 StateStore 中每個執行個體的記憶體用量和狀態更新時間。因此,開發人員必須確保地圖中的項目不會超過 MAX_STATE_ENTRY_COUNT 項目,否則在建立或更新 StateStore 時會看到 IllegalStateException。(Ibadb3)。
  • 隱藏 OnLoadTriggerOnConditionMetTrigger 類別,並針對 OnConditionMetTriggersetTrigger 重新命名為 setCondition。(Ibf629)。
  • 基於效能和相容性因素,ProtoLayout 轉譯器不支援 AnimatedVectorDrawable 資源中的全部功能。我們會將這些 API 標示為實驗性 API,直到能定義支援的集合為止。(Ic6daf)。
  • 新增每日距離、每日卡路里和每日樓層數的動態類型。平台健康狀態來源的金鑰現在屬於 PlatformHealthSources.Keys (Ib7637)
  • Easing.cubicBezier 方法會取代 CubicBezierEasing.Builder。移除 EasingFunction 類別後,現在可以直接從 Easing 介面存取該類別的加/減速常數。此外,setInfiniteRepeatable 也替換為 INFINITE_REPEATABLE_WITH_RESTARTINFINITE_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 變更

  • enable/disablePlatformSource 個方法已從 DynamicTypeEvaluator 中移除。呼叫端應負責更新。(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)。
  • 我們已支援在 ProtoLayout Material Text 中設定排除字型邊框間距。(I17f5d)。
  • ARGB_8888 現在支援內嵌圖片。(I18c1e)。
  • DynamicColor 現在支援 onCondition作業。(I10927)。

API 變更

  • 支援反向動畫的自訂時間長度 (I3251f)
  • 我們已新增 SemanticDescription 修飾符。此外,ContentDescription 無法繫結。(I3f1d)。
  • DynamicBool.isFalse() 方法現已替換為 DynamicBool.negate(),且 DynamicBool.isTrue() 已移除。此外,除了 NaN DynamicFloat 值,並將 DynamicInt32 範圍限制為 DynamicFloat 以外,現在也會發出無效的動態結果。(I6ac1e)。
  • Int 和 float 格式設定器現在使用建構工具模式。(Ieb213)。

修正錯誤

  • 已從「imatable」欄位中移除備用靜態值。(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 版的修訂項

新功能

  • StringProp 新增動態值支援 (I04342)
  • 標示可繫結的版面配置元素 (Ia110b)

API 變更

  • sensorGateway#registerSensorGatewayConsumer 會將資料類型做為參數,而非消費者中的方法。(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-alpha061.0.0-alpha06 版本包含以下修訂項目。

新功能

  • 我們已新增實驗性 API,可在動態運算式中使用心率和每日步數 (Ifd711)
  • 我們新增對動畫進行反向和快轉延遲的功能。(Ic25f7)。
  • 我們已在邊框和背景中新增 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-alpha051.0.0-alpha05 版包含此連結所列的修訂項目。

新功能

  • 我們已新增實驗性的「內容更新」實驗功能新增至 Modifiers 物件每當版面配置更新期間,元素 (使用此修飾符) 或其中一個子項變更時,就會觸發此動畫。(bd03e5d)。

API 變更

  • 我們已將 forwardRepeatDelayMillisreverseRepeatDelayMillis 新增至 Repeatable。此外,我們也將 AnimationSpec 中的 delayMillis 重新命名為 startDelayMillis (Ifb266)
  • DynamicTypeEvaluator.bind 方法現在接受 Executor。(I346ab)。
  • 已將 startEvaluation 方法新增至 BoundDynamicType,以便在動態類型繫結後觸發評估作業。(I19908)。

修正錯誤

  • 動畫物件會重複使用於單一元素的後續動畫。(Ia3be9)。

1.0.0-alpha04 版本

2023 年 2 月 22 日

發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha041.0.0-alpha04 版本包含以下修訂項目。

新功能

  • 現在當按鍵也遭到移除時,ObservableStateStore 會通知事件監聽器。
  • 我們已將轉譯器結構定義版本和字型大小調整至 DeviceParameters,可用於有條件地建立版面配置,以回應不同版本和字型設定。
  • 我們已開始支援為 DynamicInt32 值加上動畫效果 (I05485)
  • 我們新增了 OnLoadOnConditionalMet 個觸發條件。可用於啟動支援觸發條件的動畫。
  • 我們針對展開尺寸和最小尺寸的包裝尺寸新增了版面配置權重。
  • 我們加入了時間長度和即時動態類型。在動態運算式中,這些物件可以代表時間點或時間長度。
  • 我們已新增 AnimatedVectorDrawableSeekableAnimatedVectorDrawable 的支援做為版面配置資源。

API 變更

  • 必須啟用 API 29 以上版本才能使用感應器資料。(I8099e)。
  • 我們已新增兩個 launchAction 輔助方法 (用於啟動活動)。

修正錯誤

  • 在資訊方塊動畫中將 set/getSpec 重新命名為 set/getAnimationSpec (I3d74b)

1.0.0-alpha03 版本

2023 年 2 月 8 日

發布 androidx.wear.protolayout:protolayout-*:1.0.0-alpha031.0.0-alpha03 版包含以下修訂項目。

新功能

  • 我們在 protolayout-express 程式庫中的動態類型中新增了 toByteArray()fromByteArray()
  • 我們在 protolayout-expression 程式庫的動態類型中新增了 toString()
  • 我們為動態類型新增了評估支援服務。protolayout-expression-pipeline 程式庫中的 DynamicTypeEvaluator 類別可用來評估先前建立的動態類型 (DynamicStringDynamicFloat 等),並接收相關更新值
  • 當無法播放動畫時 (可能是因評估工具停用動畫,或是執行中的動畫數量達到設定上限),系統將使用動畫節點上設定的靜態值取代動畫。

1.0.0-alpha02 版

2023 年 1 月 25 日

發布 androidx.wear.protolayout:protolayout:1.0.0-alpha02androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02androidx.wear.protolayout:protolayout-proto:1.0.0-alpha021.0.0-alpha02 版本包含以下修訂項目。

新功能

  • androidx.wear.tiles:tiles 的版面配置建構工具將移至 androidx.wear.protolayout:protolayoutandroidx.wear.tiles:tiles 中的版面配置會在下一個 Alpha 版本中淘汰。

1.0.0-alpha01 版

2023 年 1 月 11 日

發布 androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01androidx.wear.protolayout:protolayout-proto:1.0.0-alpha011.0.0-alpha01 版包含此連結所列的修訂項目。

新功能

  • 這個版本推出新的程式庫「ProtoLayout Expression」透過動態變數建立運算式