wear protolayout

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

宣告依附元件

如要為 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-alpha04"

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

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

Kotlin

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

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

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

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

意見回饋

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

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.3 版本

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 版包含這些修訂版本

新功能

  • LayoutElementAssertionsProviderLayoutElementAssertionLayoutElementMatcher 新增至測試程式庫 (Id1110)

1.3.0-alpha02 版本

2024 年 10 月 16 日

發布 androidx.wear.protolayout:protolayout-*:1.3.0-alpha02。1.3.0-alpha02 版包含這些修訂項目

新功能

  • Material 3 程式庫的初始版本。包含 textedgeButtonbuttonGroupprimaryLayout 元件。

安全性修正項目

  • 這項異動起,androidx 會針對 protobuf 4.28.2 進行編譯,以解決 CVE-2024-7254 問題。將 androidx.wear.protolayout:protolayout-protoandroidx.wear.protolayout:protolayout-external-protobuf 的依附元件升級至 1.3.0-alpha02 版,以解決安全漏洞風險。

外部貢獻

1.3.0-alpha01 版本

2024 年 10 月 2 日

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

修正錯誤

  • 澄清 Roboto 和 Roboto Flex 字型系列名稱的可用性取決於裝置。(I193be)。
  • 在 AndroidX 圖塊轉譯器中啟用 Roboto Flex 字型系列。(I08e94)。

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-protoandroidx.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 字型。
  • 支援其他修飾符:
    • 轉換修飾符可提供平移、旋轉和縮放功能,不論是否有動畫皆可使用。
    • 為每個圓角半徑指定不同的值 (水平和垂直)。
  • 擴大使用可點擊修飾符的任何元素的觸控區域,使其至少為 48dp x 48dp,進而改善所有觸控目標的無障礙性。
  • 新增 setResponsiveContentInsetEnabled 來改善 PrimaryLayoutEdgeContentLayout,以便在不同螢幕大小下更好地支援這些版面配置的回應式行為,並改善資訊方塊的一致性。
  • 改善 Material Text 的縮放/非縮放功能,以便在 Android 14 的非線性字型縮放功能中使用。
  • 改善對所有弧形元素的 RTL 版面配置方向支援。

其他異動

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.weightFontSetting.width
    • 為所有數字字元設定相同的寬度 - 表格式數字 (FontSetting.tnum 字型功能設定)
    • 改善字型選取 API,透過指定要使用的偏好字型系列名稱,支援即將推出的 Flex 字型。
  • 擴充 Corner 修飾符,以便使用不同的水平和垂直值指定每個 CornerRadius,讓您建立具有不對稱角落的元素。
  • 新增 Transformation 修飾符,提供 LayoutElement 的平移、旋轉和縮放功能。您可以使用動態值為這些轉換效果製作動畫。
  • 在所有弧形元素 (ArcArcLineArcText) 中新增 setArcDirectionClockwiseCounterClockwiseNormal 選項,以便在不同版面配置方向 (例如 LTR 和 RTL) 中提供更完善的支援。
  • 透過擴大使用 Clickable 修飾符的任何元素可點選區域,使其至少為 48dp 乘以 48dp,改善所有觸控目標的無障礙性。
  • 新增 setResponsiveContentInsetEnabled 來改善 PrimaryLayoutEdgeContentLayout,以便在不同螢幕大小下,更妥善地支援這些版面配置的回應式行為,並改善方塊的一致性。新增 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 版包含這些修訂項目

新功能

  • hasText 方法新增至 Material.CompactChip,以檢查是否已設定文字內容。(I6e8fc)

API 變更

  • FontFamily const 已移至 FontStyle,而非其建構工具類別。(I06ced)。
  • 更新 FontSetting.weightFontSetting.width API 以納入 Range 註解,並將 weight 參數變更為 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 中,原本以「Edge content」為前置字串的內容和次要標籤之間的間距高度常數重新命名為更通用的名稱,因為這些常數可同時套用至 PrimaryLayoutEdgeContentLayout。(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)。
  • 轉換 API 已從 ArcModifiers 中移除,因為該 API 不支援這項功能 (Ic0827)
  • 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 規則,在使用 PrimaryLayout 但未使用 setResponsiveContentInsetEnabled 時,回報警告並提供快速修正方式。(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)。
  • 新增解決 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 支援可選重量的展開尺寸。
  • 所有 ProtoLayout API 的結構定義版本需求註解。
  • 將目標區域擴大至任何 Clickable 元素的 48 dp x 48 dp,以符合無障礙規定。
  • 根據預設,字型邊距會關閉,這是所有包含文字的文字元素和 Material 元件唯一的行為。

其他異動

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-beta011.1.0-beta01 版包含此連結所列的修訂項目。

新功能

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

  • ArcLine 現在支援漸層效果,方法是透過 SweepGradient 新增 Brush,並在頂點上加入陰影,藉此在現有的 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 的元素,現在的目標區域都會在轉譯器中延伸至至少 48 x 48,以便更妥善地支援無障礙需求。
  • 根據其他 Material Design 元件和 Compose 計畫,我們現在已預設關閉所有 Text 元素的字型邊距。此外,AndroidTextStyle 和相關的 setter 已從公用 API 中移除,並修正以下錯誤:
  • 新增了 setter,可在 EdgeContentLayout 中定位邊緣內容,以便將其置於其他內容之前。
  • 遇到無法辨識的列舉值時,一律擲回例外狀況。
  • 當運算式產生無效的數值 (NaN 或無限) 或擲回 ArithmeticException 時,會使運算式結果失效。

API 變更

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

修正錯誤

  • 新增受限 API 和轉譯器支援功能,用於設定弧形元素的繪製方向。(Idef5a)。
  • 如未指定,RoundMode 的預設值為 FloorFloatToInt32Node如果系統無法辨識提供的 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 元件和 Compose 計畫,我們現在已預設關閉所有 Text 元素的字型邊框間距。此外,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,即使未達到最大行數 (但 Text 的空間不足),也能將固定父項容器中的 Text 省略。(I110a9)
  • 新增輔助方法 DimensionBuilders.weight,用於建構具有權重的 ExpandedDimensionProp。(I4f72b)
  • DynamicInstantDynamicDuration 可用於狀態或平台資料類型。(I6819f)。

API 變更

  • 更新 API 以隱藏 DynamicZonedDateTime,並將所有操作作業移至 DyanamicInstant (I34b94)
  • Spacer 現在支援寬度/高度的展開維度。(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 以便指定要展開的 Spacer 寬度或高度。(I757ca)。
  • 我們新增了實驗性 API,可根據父項內的空間自動調整文字大小。(Ibbe63)
  • 支援可點選的最小尺寸 (I178e3)
  • 新增了 StrokeCap Shadow 的轉譯器支援。(I48b17)。
  • ArcLine 中新增掃描漸層的轉譯器支援。(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)。
  • 新增 getter,用於讀取儲存在 DynamicDataValue 中的值。(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 版包含以下修訂項目。

  • 如要從資訊方塊遷移至 ProtoLayout,請按照這裡的說明操作。

API 變更

  • 我們已從 Arc 元素移除 setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle 方法。這些方法是誤加的,對提供的版面配置沒有任何影響。(If7d01)。
  • 我們將 ProtoLayout 的版面配置深度上限設為 30 個巢狀 LayoutElements。(I8a74b)

修正錯誤

  • 我們已新增檢查功能,如果 DynamicColor 已為 SpanText 設定,則會擲回。(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 現在接受 DynamicDataKeyDynamicDataValue 的類型安全對應,而非不安全的泛型。這表示 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 訊息,改為使用 oneof (I81739)
  • 針對含有 setter 的超載,重複使用 setter 實作 (Ied70c)
  • 在具有超載的 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)
  • TimeGateway 介面已在 protolayout-expression-pipeline 程式庫中由 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)。
  • 允許使用 DynamicFloatFloatProp。請注意,FloatProp 不需要版面配置限制,因為它不會用於變更版面配置的屬性。 (I286ac)
  • LoalActionSetStateAction 動作已遭移除,因為這些動作尚未正式支援。(I5d6a6)
  • 新增對內嵌圖片資源的 ARGB_8888 格式支援。(I8a07c)。
  • StateEntryValue 重新命名為 DynamicDataValue,並更新狀態 API 以使用 DynamicDataKey (If1c01)
  • 我們會限制 StateStore 中允許的項目數量,以確保每個 StateStore 例項的記憶體用量和狀態更新時間受到良好控管。因此,開發人員必須確保地圖中沒有超過 MAX_STATE_ENTRY_COUNT 個項目,否則在建立或更新 StateStore 時,就會收到 IllegalStateException。(Ibadb3)
  • 隱藏 OnLoadTriggerOnConditionMetTrigger 類別,並將 setTrigger 重新命名為 setCondition (OnConditionMetTrigger)。(Ibf629)
  • 基於效能和相容性因素,ProtoLayout 轉譯器不會支援 AnimatedVectorDrawable 資源中的完整功能。在我們定義支援的集合之前,我們會將這些 API 標示為實驗功能。(Ic6daf)。
  • 新增每日距離、每日卡路里和每日樓層的動態類型。平台健康資訊來源的鍵現在位於 PlatformHealthSources.Keys (Ib7637)
  • Easing.cubicBezier 方法會取代 CubicBezierEasing.BuilderEasingFunction 類別已移除,現在可直接透過 Easing 介面存取該類別的緩和常數。此外,setInfiniteRepeatable 已由 INFINITE_REPEATABLE_WITH_RESTARTINFINITE_REPEATABLE_WITH_REVERSE 取代 (Ib41e7)
  • 實作 PlatformDataProvider 以提供心率和每日步數。SensorGateway 介面已從公用 API 中移除。(I55b84)。
  • 新增 PlatformDataProvider,並更新 StateStore 以註冊至 PlatformDataProvider,當運算式管道中的節點需要供應商支援的鍵時,(Ib616a)
  • SensorGateway 不再是 Closeable,因為它不再維護任何狀態。(I6b4f7)。
  • 允許在 CircularProgressIndicator 中使用 FloatPropDynamicFloat 追蹤進度。此功能適用於支援 1.2 版的轉譯器。如果提供 staticValue,舊轉譯器會改用 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)。

修正錯誤

  • 已從可動畫處理的欄位中移除備用靜態值。(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 會將資料類型做為參數,而非 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-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 方法現在接受執行緒。(I346ab)。
  • 我們已將 startEvaluation 方法新增至 BoundDynamicType,以便在動態類型繫結後觸發評估。(I19908)。

修正錯誤

  • Animator 物件會重複用於單一元素的後續動畫。(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」,可從動態變數建立運算式。