wear protolayout

  
Thư viện này cho phép xác định một tập hợp các bố cục của giao diện người dùng và các biểu thức không phải giao diện người dùng được kết xuất/đánh giá trên các nền tảng từ xa.
Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
Ngày 1 tháng 5 năm 2024 1.1.0 - - 1.2.0-alpha02

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên wear-protolayout, bạn phải thêm kho lưu trữ Maven của Google vào dự án. Hãy đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

Groovy

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation "androidx.wear.protolayout:protolayout-expression:1.2.0-alpha02"

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

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

Kotlin

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

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

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

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về công cụ theo dõi lỗi để biết thêm thông tin.

Phiên bản 1.2

Phiên bản 1.2.0-alpha02

Ngày 1 tháng 5 năm 2024

Phát hành androidx.wear.protolayout:protolayout-*:1.2.0-alpha02. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.

Các thay đổi về API

  • Chúng tôi đã thêm tính năng hỗ trợ để tắt phản hồi gợn sóng trên các phần tử có thể nhấp riêng lẻ. (If1ede)
  • API để chuyển đổi đã bị xoá khỏi ArcModifiers vì không hỗ trợ tính năng đó (Ic0827)
  • ArcDirectionProp Trình tạo giờ đây chờ đợi một giá trị trong hàm khởi tạo. (I76ada)
  • Phương thức PlatformDataValues.Builder.putAll sẽ cho phép hợp nhất một PlatformDataValue vào một công cụ khác. (I50ba3)
  • Text#setIsScalable đổi tên thành Text#setScalable. (If920e)
  • Material Text có thể thiết lập xem có sử dụng kích thước có thể mở rộng (tăng khi cỡ chữ của người dùng thay đổi) hay không. (Ibc849)
  • Chúng tôi thêm tuỳ chọn thiết lập phần mô tả nội dung thành TitleChip. (I5d21f)
  • Khắc phục để CompactChip chỉ hoạt động chính xác với biểu tượng và cập nhật API để cho phép tuỳ chọn này. (I6589e)

Sửa lỗi

  • Khắc phục vấn đề dữ liệu nền tảng có thể bị trùng lặp trong quá trình khởi chạy. (Iba0fd)
  • Ra mắt một phương thức getter mới cho DynamicDataNode để truy xuất chi phí của nút. Chi phí này được sử dụng khi lấy hạn mức nút động. Hiện tại, các Nút có giá trị cố định sẽ có chi phí bằng 0, tất cả các nút khác sẽ có giá trị bằng 1. (Ia33e1)
  • Xoá logic tính khỏi NO_OP_QUOTA_MANAGER. (Ib50b8)
  • Chúng tôi đã thêm quy tắc tìm lỗi mã nguồn để báo cáo cảnh báo khi sử dụng PrimaryLayout mà không có setResponsiveContentInsetEnabled và cung cấp bản sửa lỗi nhanh. (I12025)
  • Có giới hạn cho số nút biểu thức động. (Iffae8)

Phiên bản 1.2.0-alpha01

Ngày 6 tháng 3 năm 2024

Phát hành androidx.wear.protolayout:protolayout-*:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Các phần tử ProtoLayout Arc hiện có tuỳ chọn để thêm ArcDirection (Clockwise, Counterclockwise hoặc Normal) vào đó. Việc thêm hành vi này vào Arc, ArcLine hoặc ArcText sẽ sửa hành vi của chúng trên bố cục RTL. (I90699)
  • EdgeContentLayout đã được cập nhật bằng một phương thức setter setResponsiveContentInsetEnabled mới để phù hợp hơn với các nguyên tắc về trải nghiệm người dùng, tính nhất quán trong Thẻ thông tin nhờ có nhãn chính ở vị trí cố định ở trên cùng và phần lồng ghép thích ứng cho các nhãn. (I60175)
  • Chúng tôi đã thêm PrimaryLayout.setResponsiveContentInsetEnabled để thêm phần lồng ghép thích ứng vào nhãn chính, nhãn phụ và khối dưới cùng trong bố cục này, để tránh nội dung bị lệch ra khỏi cạnh màn hình. (I0c457)
  • Thêm phương thức để xoá lề bên ngoài khỏi CircularProgressIndicator để có thể sử dụng lề này như một thành phần nhỏ hơn. (I55c06)

Các thay đổi về API

  • Theo mặc định, trình kết xuất thẻ thông tin hiện loại trừ khoảng đệm phông chữ trên tất cả thành phần văn bản và không có lựa chọn để thêm khoảng đệm đó. (I3e300)

Sửa lỗi

  • Sửa lỗi căn chỉnh Văn bản khi kích thước elip, khoảng cách chữ cái và căn giữa đều được sử dụng trên Văn bản. (I716c7)
  • Thêm biện pháp khắc phục sự cố vẽ hồ cung Skia. (I08f09)
  • Sửa hướng vẽ ArcLine cho bố cục RTL. (I6c141)

Phiên bản 1.1

Phiên bản 1.1.0

Ngày 7 tháng 2 năm 2024

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 1.0.0

  • Hỗ trợ chuyển màu và trình bày tốt hơn về độ dài lớn hơn 360 độ trong ArcLine.
  • Định dạng ngày giờ hỗ trợ nhiều múi giờ cho các loại dữ liệu động.
  • Các tuỳ chọn tự động định cỡ và dấu ba chấm văn bản tốt hơn để xử lý văn bản bị cắt bớt.
  • Dấu cách hỗ trợ kích thước mở rộng với trọng số không bắt buộc.
  • Chú giải yêu cầu về phiên bản giản đồ cho tất cả API ProtoLayout.
  • Mở rộng vùng nhắm mục tiêu tới mọi phần tử Clickable thành 48 dp x 48 dp để đáp ứng các yêu cầu về hỗ trợ tiếp cận.
  • Khoảng đệm phông chữ bị tắt theo mặc định và là hành vi duy nhất trên tất cả các thành phần Văn bản và thành phần Material chứa văn bản.

Thay đổi bổ sung

  • Để biết tập hợp đầy đủ hơn các thay đổi được giới thiệu trong phiên bản 1.1.0, hãy xem ghi chú phát hành beta01.

Phiên bản 1.1.0-rc01

Ngày 24 tháng 1 năm 2024

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0-rc01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.

Sửa lỗi

  • PlatformTimeUpdateNotifierImpl sẽ đánh dấu ngay sau khi bật tính năng cập nhật. (I77145)
  • Sửa lỗi CircularProgressIndicator cho bố cục RTL. Từ giờ trở đi, mọi trường hợp đều sẽ đi theo chiều kim đồng hồ. (I95ee3)
  • Thêm biện pháp khắc phục sự cố vẽ hồ cung Skia. (I08f09)

Phiên bản 1.1.0-beta01

Ngày 10 tháng 1 năm 2024

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0-beta01. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.

Tính năng mới

Bản phát hành 1.1.0-beta01 của Wear ProtoLayout cho biết bản phát hành này của thư viện hoàn thiện về tính năng và API bị khoá (ngoại trừ trường hợp được đánh dấu là thử nghiệm). Wear ProtoLayout 1.1 có các chức năng và API mới sau đây:

  • ArcLine hiện hỗ trợ tính năng chuyển màu bằng cách thêm Brush với SweepGradient và đổ bóng trên phần mũ để thể hiện chính xác hơn chiều dài lớn hơn 360 độ bằng cách thêm Shadow trên StrokeCap hiện có.
  • DynamicInstant hỗ trợ định dạng ngày giờ được phân vùng. Bạn có thể dùng DynamicInstantDynamicDuration làm loại dữ liệu trạng thái hoặc nền tảng.
  • Tính năng tự động định cỡ đối với kích thước văn bản cho phép đặt nhiều kích thước thành FontStyle.setSizes, trong đó cỡ chữ sẽ tự động điều chỉnh tỷ lệ dựa trên không gian bên trong thành phần mẹ. Ngoài ra, chúng tôi đã cải thiện các tuỳ chọn dấu ba chấm cho văn bản bị tràn bằng cách thêm TEXT_OVERFLOW_ELLIPSIZE và ngừng sử dụng TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer hiện hỗ trợ việc mở rộng kích thước với trọng số không bắt buộc. Để tạo ExpandedDimensionProp, chúng tôi đã thêm phương thức trợ giúp DimensionBuilders.weight.
  • Hỗ trợ ẩn và hiện linh động các phần tử bố cục bằng Modifier.visible. Điều này bao gồm cả việc sử dụng các giá trị động trong BoolProp.
  • Tất cả API ProtoLayout hiện đều có chú thích yêu cầu về phiên bản giản đồ và bạn có thể kiểm tra phiên bản trước khi gọi API mới hơn.
  • Giờ đây, mỗi phần tử có Clickable đều có vùng mục tiêu được mở rộng tối thiểu là 48x48 trong trình kết xuất để hỗ trợ tốt hơn các yêu cầu về hỗ trợ tiếp cận.
  • Theo các sáng kiến khác về Compose và thành phần Material, giờ đây, chúng tôi đã tắt tính năng đệm phông chữ theo mặc định trên tất cả các phần tử Text. Ngoài ra, AndroidTextStyle và các phương thức setter liên quan đã bị xoá khỏi API công khai, kèm theo các bản sửa lỗi sau:
  • Thêm phương thức setter để định vị nội dung cạnh trong EdgeContentLayout để nội dung này có thể được định vị trước nội dung khác.
  • Liên tục gửi trường hợp ngoại lệ khi gặp giá trị enum không nhận dạng được.
  • Vô hiệu hoá kết quả của một biểu thức khi biểu thức đó mang lại một giá trị số không hợp lệ (NaN hoặc vô hạn) hoặc trả về một ArithmeticException.

Các thay đổi về API

  • Cập nhật API SweepGradient để cho phép chấp nhận màu hoặc ColorStops trong hàm khởi tạo. (I6676f)

Sửa lỗi

  • Thêm tính năng hỗ trợ API và trình kết xuất bị hạn chế để thiết lập hướng vẽ các phần tử vòng cung. (Idef5a)
  • RoundMode mặc định là Floor trong FloatToInt32Node khi không được chỉ định. Nút này sẽ vẫn gửi một trường hợp ngoại lệ nếu không nhận dạng được RoundMode đã cung cấp. (I1b2d8)

Phiên bản 1.1.0-alpha04

Ngày 13 tháng 12 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0-alpha04. Phiên bản 1.1.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Lớp VersionInfo không triển khai giao diện Comparable. (I8d13c)
  • Trình kết xuất hiện hỗ trợ tuỳ chọn TEXT_OVERFLOW_ELLIPSIZE. (I7f085)

Các thay đổi về API

  • Tuỳ chọn mục bổ sung văn bản TEXT_OVERFLOW_ELLIPSIZE_END hiện không còn được dùng nữa. Vui lòng sử dụng API TEXT_OVERFLOW_ELLIPSIZE mới với hành vi tương tự như vậy. (I822d8)
  • Theo các sáng kiến khác về Compose và thành phần Material, chúng tôi hiện đã tắt khoảng đệm phông chữ theo mặc định trên tất cả các thành phần Văn bản. Ngoài ra, AndroidTextStyle và các phương thức setter liên quan đã bị xoá khỏi API công khai. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Modifier.hidden được thay thế bằng Modifier.visible (I56902)
  • FontStyle#setSizes hiện chấp nhận đối số int thay vì SpProp. (I02b37)

Sửa lỗi

  • Gửi một ngoại lệ khi gặp giá trị enum không xác định hoặc không nhận dạng được. (I9d2cf)
  • Tái cấu trúc DynamicTypeBindingRequest. (I27b57)
  • Vô hiệu hoá kết quả của một biểu thức khi biểu thức đó mang lại một giá trị số không hợp lệ (NaN hoặc vô hạn) hoặc trả về một ArithmeticException. (I681ae)

Phiên bản 1.1.0-alpha03

Ngày 29 tháng 11 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0-alpha03. Phiên bản 1.1.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tính năng hỗ trợ thử nghiệm để tự động ẩn/hiện các phần tử bố cục (I64a78)
  • Thêm tuỳ chọn hỗ trợ giá trị động vào BoolProp (I2fe96)
  • Thêm chú giải yêu cầu về phiên bản giản đồ vào các API ProtoLayout (I0f03c)
  • Mở rộng API bằng tuỳ chọn mới trong TextOverflow để tạo dấu ba chấm cho Văn bản trong một vùng chứa mẹ cố định ngay cả khi không đạt đến số dòng tối đa (nhưng không có đủ không gian cho Văn bản). (I110a9)
  • Thêm phương thức trợ giúp DimensionBuilders.weight để tạo ExpandedDimensionProp có trọng số. (I4f72b)
  • Bạn có thể dùng DynamicInstantDynamicDuration làm loại dữ liệu trạng thái hoặc nền tảng. (I6819f)

Các thay đổi về API

  • Cập nhật API để ẩn DynamicZonedDateTime và di chuyển tất cả hoạt động của API này sang DyanamicInstant (I34b94)
  • Dấu cách hiện hỗ trợ Kích thước mở rộng cho chiều rộng/chiều cao. (Ie7c94)
  • Hỗ trợ phần mở rộng về khu vực mục tiêu của lượt nhấp trong Trình kết xuất (I39c79)

Phiên bản 1.1.0-alpha02

Ngày 15 tháng 11 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0-alpha02. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm trường ArcLine StrokeCap Shadow vào API. (I830ec)
  • Mở rộng API để có thể chỉ định chiều rộng hoặc chiều cao của Spacer để mở rộng. (I757ca)
  • Chúng tôi đã thêm một API thử nghiệm để tự động điều chỉnh kích thước văn bản dựa trên không gian văn bản có trong thành phần mẹ. (Ibbe63)
  • Hỗ trợ kích thước có thể nhấp tối thiểu (I178e3)
  • Thêm tính năng hỗ trợ trình kết xuất cho StrokeCap Shadow. (I48b17)
  • Thêm tính năng hỗ trợ trình kết xuất cho Sweep gradient trong ArcLine. (I4d5bb)

Phiên bản 1.1.0-alpha01

Ngày 18 tháng 10 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tuỳ chọn bút vẽ vào Arcline, có hỗ trợ SweepGradient. (Ie7ce3)
  • Thêm tính năng hỗ trợ cho định dạng ngày giờ được phân vùng. (Ibfae0)
  • Thêm proto và Trình bao bọc Java cần thiết cho định dạng ngày giờ được phân vùng. (I97126)
  • Thêm phương thức getter để đọc lại giá trị được lưu trữ trong DynamicDataValue. (Ie6cea)
  • Thêm phương thức setter để định vị nội dung cạnh trong EdgeContentLayout để nội dung này có thể được định vị trước nội dung khác. (Ie8e8a)

Sửa lỗi

  • Khắc phục vấn đề khi một biểu thức có lượt đăng ký nguồn dữ liệu nhiều thời gian không được cập nhật ngay lập tức. (I8e1a8)
  • Sửa lỗi căn giữa phần tử gốc trong quá trình cập nhật điểm khác biệt. (Ie48f7)
  • Các giá trị ràng buộc bố cục chưa đặt (hoặc trống) sẽ không bị bỏ qua nữa. (Ibc785)
  • Giảm độ trễ giữa thời điểm một bố cục hiển thị và các nút quy trình của bố cục được khởi chạy. (I38d4e)

Phiên bản 1.0

Phiên bản 1.0.0

Ngày 9 tháng 8 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0. Phiên bản 1.0.0 bao gồm các thay đổi sau.

Các tính năng chính của phiên bản 1.0.0

Thư viện ProtoLayout giới thiệu các API để tạo bố cục và biểu thức có thể sử dụng trên nhiều nền tảng Wear OS. Ví dụ: Thư viện thẻ thông tin sử dụng các API này để hỗ trợ liên kết dữ liệu nền tảng (để cập nhật dữ liệu thẻ thông tin nhanh hơn) và ảnh động.

Phiên bản 1.0.0-rc01

Ngày 26 tháng 7 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-rc01. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.

  • Để di chuyển từ Thẻ thông tin sang ProtoLayout, vui lòng làm theo hướng dẫn tại đây.

Các thay đổi về API

  • Chúng tôi đã xoá các phương thức setLayoutConstraintForDynamicAnchorAnglegetLayoutConstraintForDynamicAnchorAngle khỏi phần tử Arc. Các phương thức này được thêm vào do nhầm lẫn và không ảnh hưởng gì đến bố cục được cung cấp. (If7d01)
  • Chúng tôi đã giới hạn chiều sâu tối đa mà bố cục của ProtoLayout có thể có là 30 LayoutElements lồng nhau. (I8a74b)

Sửa lỗi

  • Chúng tôi thêm một bước kiểm tra để gửi nếu DynamicColor đã được thiết lập cho SpanText. (I0e5bc)
  • Giải thích rõ rằng đơn vị nguồn dữ liệu của DAILY_CALORIES là kcal. (Iaa785)

Phiên bản 1.0.0-beta01

Ngày 21 tháng 6 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Tính năng mới

  • Cho phép đặt đồng hồ cho các kiểm thử liên kết thời gian. (I05622)

Các thay đổi về API

  • PlatformDataReceiver.onData()StateBuilders.Builder.addKeyToValueMapping hiện chấp nhận ánh xạ an toàn về kiểu của DynamicDataKey đến DynamicDataValue thay vì các thành phần chung không an toàn. Tức là DynamicDataValue hiện được nhập bằng DynamicType. Di chuyển các hằng số HEART_RATE_ACCURACY_X sang gốc của PlatformHealthSources để phù hợp với việc định vị các hằng số Android khác. Hằng số int HEART_RATE_ACCURACY_X hiện được dùng trực tiếp trong DynamicHeartRateAccuracy.constant()DynamicHeartRateAccuracy.dynamicDataValueOf() thay vì hằng số giá trị. (I82ff5)
  • Do nhầm lẫn, lớp PlatformHealthSources.Constants có thể được tạo thực thể. Lỗi này hiện đã được khắc phục. (Icb849)
  • PlatformTimeUpdateNotifier#setReceiver hiện nhận Runnable thay vì hàm SupplierExecutor để thông báo về việc này. (I9d938)
  • Chúng tôi đã thay đổi loại tham số trong PlatformTimeUpdateNotifier#setReceiver từ Callable thành Supplier. (I664bf)
  • CompactChipTitleChip hiện hỗ trợ thêm biểu tượng vào đó. (I5a01e)

Sửa lỗi

  • Cập nhật thông báo Prop có các trường động để sử dụng một trong số đó (I81739)
  • Sử dụng lại phương thức triển khai phương thức setter cho các phương thức nạp chồng có phương thức setter (Ied70c)
  • Ghi lại đúng dấu vân tay trong phương thức setter có phương thức nạp chồng (I86ed2)

Phiên bản 1.0.0-alpha11

Ngày 7 tháng 6 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha11. Phiên bản 1.0.0-alpha11 chứa những cam kết này.

Tính năng mới

  • Chúng tôi đã thêm PlatformDataKey để đo lường độ chính xác của nhịp tim. (I7f9b8)

Các thay đổi về API

  • Đổi tên StateBuilders#getIdToValueMapping thành getKeyToValueMapping rồi thay đổi loại dữ liệu trả về thành Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • Đặt StateStore làm lớp cuối cùng (I408ca)
  • Giao diện TimeGateway đã được thay thế bằng PlatformTimeUpdateNotifier trong thư viện protolayout-expression-pipeline, cung cấp tần suất cập nhật mong muốn cho dữ liệu thời gian. (I60869)
  • Đổi tên register/unregisterForData trong PlatformDataProvider thành set/clearReceiver (I14b02)
  • Trong Material Text, getExcludeFontPadding được đổi tên thành hasExcludeFontPadding. (Iea01d)
  • Phương thức setter để căn chỉnh hoàn hảo nhãn đã được thêm vào tất cả thành phần của khối. Tất cả các khối hiện đã áp dụng mục tiêu có thể nhấn tối thiểu. (I8ae92)
  • LayoutDefaults#BUTTON_MAX_NUMBER đổi tên thành MAX_BUTTONS (I84788)
  • DAILY_DISTANCE đổi tên thành DAILY_DISTANCE_M. (I4f758)

Sửa lỗi

  • Cập nhật tài liệu về các loại Prop để làm rõ lý do thực thi giá trị tĩnh. Hãy chỉ định giá trị mặc định được dùng nếu không cung cấp giá trị tĩnh. (I155aa)
  • Không gian tên PlatformDataKey phải tuân theo cách đặt tên kiểu Java. (I47bda)

Phiên bản 1.0.0-alpha10

Ngày 24 tháng 5 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm AppDataKey để truy cập vào trạng thái được đẩy của ứng dụng; Thêm PlatformDataKey để truy cập dữ liệu nền tảng; Thêm hỗ trợ không gian tên trong StateStore. (I7985e)
  • Hỗ trợ các thao tác EqualNotEqual cho DynamicBool. (I6a0c1)

Các thay đổi về API

  • Lớp FontStyles hiện đã là lớp chính thức (Iaa2ea)
  • Ngừng sử dụng LayoutElementBuilders#FontStyles. Vui lòng sử dụng androidx.wear.protolayout.Typography hoặc tạo FontStyle của riêng bạn. (Ic929b)
  • Ẩn giao diện lồng Action#Builder khỏi giao diện Action. Các phương thức triển khai Builder hiện đã được cung cấp bởi các lớp LoadActionLaunchAction. (I1d70c)
  • Cho phép sử dụng DynamicFloat bằng tài khoản FloatProp. Lưu ý rằng FloatProp không yêu cầu các điều kiện ràng buộc về bố cục vì không được dùng như một tuyên bố thay đổi bố cục. (I286ac)
  • Các thao tác LoalActionSetStateAction bị xoá vì chúng chưa thực sự được hỗ trợ. (I5d6a6)
  • Thêm tính năng hỗ trợ cho định dạng ARGB_8888 cho các tài nguyên hình ảnh cùng dòng. (I8a07c)
  • Đổi tên StateEntryValue thành DynamicDataValue và cập nhật API trạng thái để sử dụng DynamicDataKey (If1c01)
  • Chúng tôi sẽ giới hạn số mục được phép trong StateStore để đảm bảo mức sử dụng bộ nhớ và thời gian cập nhật trạng thái được kiểm soát và quản lý chặt chẽ cho từng thực thể của StateStore. Do đó, nhà phát triển cần đảm bảo không có nhiều hơn mục nhập MAX_STATE_ENTRY_COUNT trong bản đồ, nếu không sẽ nhận được IllegalStateException khi tạo hoặc cập nhật StateStore. (Ibadb3)
  • Ẩn các lớp OnLoadTriggerOnConditionMetTrigger, đồng thời đổi tên setTrigger thành setCondition cho OnConditionMetTrigger. (Ibf629)
  • Vì lý do về hiệu suất và khả năng tương thích, trình kết xuất ProtoLayout sẽ không hỗ trợ toàn bộ tính năng trong tài nguyên AnimatedVectorDrawable. Chúng tôi sẽ đánh dấu các API đó là thử nghiệm cho đến khi có thể xác định tập hợp được hỗ trợ. (Ic6daf)
  • Thêm các loại động cho quãng đường hằng ngày, lượng calo hằng ngày và sàn nhà hằng ngày. Khoá cho các nguồn tình trạng của nền tảng hiện có trong PlatformHealthSources.Keys (Ib7637)
  • Phương thức Easing.cubicBezier thay thế CubicBezierEasing.Builder. Bằng cách đó, lớp EasingFunction sẽ bị xoá và bạn có thể truy cập trực tiếp các hằng số gia tốc của lớp đó qua giao diện Easing. Ngoài ra, setInfiniteRepeatable được thay thế bằng INFINITE_REPEATABLE_WITH_RESTARTINFINITE_REPEATABLE_WITH_REVERSE (Ib41e7)
  • Triển khai PlatformDataProvider để cung cấp thông tin về nhịp tim và số bước hằng ngày. Giao diện SensorGateway bị xoá khỏi API công khai. (I55b84)
  • Thêm PlatformDataProvider và cập nhật StateStore để đăng ký PlatformDataProvider khi cần có khoá được hỗ trợ của trình cung cấp cho nút trong quy trình biểu thức. (Ib616a)
  • SensorGateway không còn là Closeable vì không còn duy trì bất kỳ trạng thái nào. (I6b4f7)
  • Cho phép sử dụng FloatProp bằng DynamicFloat để xem tiến trình trong CircularProgressIndicator. Tính năng này được hỗ trợ cho các trình kết xuất hỗ trợ phiên bản 1.2. Các trình kết xuất cũ sẽ dự phòng lại staticValue nếu được cung cấp, nếu không, sẽ là 0 (I0d91b)
  • Hằng số MultiButtonLayout đã được tái cấu trúc thành lớp LayoutDefaults.MultiButtonLayoutDefaults. Lớp này hiện chứa các kích thước nút tuỳ thuộc vào số lượng nút trong bố cục. (I13973)
  • Hỗ trợ sử dụng StringProp với DynamicString trong Material Text. Tính năng này được hỗ trợ cho các trình kết xuất hỗ trợ phiên bản 1.2. Các trình kết xuất cũ sẽ quay lại giá trị tĩnh được cung cấp. Cập nhật loại dữ liệu trả về Text#getText từ String thành StringProp. (I7275b)

Phiên bản 1.0.0-alpha09

Ngày 10 tháng 5 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã thêm một phần tử bố cục tiện ích thử nghiệm. Lưu ý rằng bạn không thể sử dụng tính năng này theo mặc định và cần có tiện ích kết xuất đồ hoạ có thể hiểu phần tử bố cục. (I6581d)
  • Thêm tính năng hỗ trợ StrokeCap cho ArcLine. (I94951)
  • Thêm tính năng hỗ trợ cho thao tác Tức thì có điều kiện. (I489a7)
  • Thêm tính năng hỗ trợ cho toán tử Thời lượng có điều kiện. (Iab469)
  • Thêm tính năng hỗ trợ tạo thời lượng từ giây. (Ib5fa1)

Các thay đổi về API

  • Xoá các phương thức enable/disablePlatformSource khỏi DynamicTypeEvaluator. Phương thức gọi phải chịu trách nhiệm cập nhật thông tin. (I78c6d)
  • Cho phép giới hạn kích thước của các loại dữ liệu liên kết. (Ie2966)
  • Thêm tính năng hỗ trợ cho phần mô tả nội dung động trong protolayout-material. (I62c8e)
  • Sử dụng long và @IntRange cho thời lượng và độ trễ trong AnimationParameters. (I388b6)

Phiên bản 1.0.0-alpha08

Ngày 19 tháng 4 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Tính năng mới

  • AndroidTextStyle đã được thêm vào LayoutElementBuilders. (I8d967)
  • Chúng tôi đã thêm tính năng hỗ trợ cài đặt loại trừ khoảng đệm phông chữ trong ProtoLayout Material Text. (I17f5d)
  • ARGB_8888 hiện đã được hỗ trợ cho hình ảnh cùng dòng. (I18c1e)
  • DynamicColor hiện hỗ trợ thao tác onCondition. (I10927)

Các thay đổi về API

  • Hỗ trợ thời lượng tuỳ chỉnh cho ảnh động đảo ngược (I3251f)
  • Chúng tôi đã thêm đối tượng sửa đổi SemanticDescription. Ngoài ra, ContentDescription không thể liên kết. (I3f1d)
  • Phương thức DynamicBool.isFalse() hiện đã được thay thế bằng DynamicBool.negate()DynamicBool.isTrue() sẽ bị xoá. Ngoài ra, các giá trị DynamicFloat của NaN và việc thu hẹp DynamicInt32 thành DynamicFloat hiện sẽ phát ra một kết quả động không hợp lệ. (I6ac1e)
  • Các trình định dạng int và float hiện sử dụng mẫu Builder. (Ieb213)

Sửa lỗi

  • Giá trị tĩnh dự phòng đã bị xoá khỏi các trường có thể tạo ảnh động. (Ifcb01)
  • Xoá DynamicTypeValueReceiver#onPreUpdate. (I2dc35)
  • Độ dài của chuỗi trong biểu thức động hiện đã được giới hạn. (I4c93)
  • Các phần phụ thuộc gradle hiện được đặt chính xác thành api thay vì implementation khi cần. (I40503)

Phiên bản 1.0.0-alpha07

Ngày 5 tháng 4 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tuỳ chọn hỗ trợ giá trị động vào StringProp (I04342)
  • Đánh dấu các phần tử bố cục có thể liên kết (Ia110b)

Các thay đổi về API

  • sensorGateway#registerSensorGatewayConsumer lấy loại dữ liệu làm tham số thay vì phương thức trong Consumer. (Icf314)
  • ObservableStateStore đổi tên thành StateStore (Ieb0e2)
  • Thêm DynamicTypeEvaluator.Builder thay vì các đối số hàm khởi tạo để cho phép thêm nhiều đối số không bắt buộc, bao gồm cả ObservableStateStore hiện đặt mặc định là kho lưu trữ trống. (I6f832)
  • Thứ tự tái cấu trúc của các tham số trong DynamicTypeEvaluator. (Ic1ba4)

Sửa lỗi

  • Truyền chính xác tín hiệu từ các nguồn cảm biến nền tảng đến các nút hạ nguồn (I5a922)

Phiên bản 1.0.0-alpha06

Ngày 22 tháng 3 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã thêm một API thử nghiệm để sử dụng nhịp tim và số bước hằng ngày trong biểu thức động (Ifd711)
  • Chúng tôi đã thêm tính năng hỗ trợ độ trễ đảo ngược và chuyển tiếp cho ảnh động. (Ic25f7)
  • Chúng tôi đã thêm tính năng hỗ trợ DynamicColor cho đường viền và nền
  • Chúng tôi đã thêm tính năng hỗ trợ giá trị động cho các loại trong DimensionBuilder
  • Bố cục và các thành phần từ tiles-material đang di chuyển sang protolayout-material

Các thay đổi về API

  • LoadActionListener đã được thêm vào ProtoLayoutViewInstance. (If7806)

Sửa lỗi

  • Thêm FloatNodesTest (Id7281)
  • Khắc phục sự cố trình kết xuất khi không thể tải bitmap có cấu trúc.

Phiên bản 1.0.0-alpha05

Ngày 8 tháng 3 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi thêm ảnh động "cập nhật nội dung" thử nghiệm vào đối tượng Modifiers. Ảnh động này sẽ kích hoạt bất cứ khi nào phần tử (với đối tượng sửa đổi này) hoặc một trong các phần tử con của phần tử đó thay đổi trong quá trình cập nhật bố cục. (bd03e5d)

Các thay đổi về API

  • Chúng tôi đã thêm forwardRepeatDelayMillisreverseRepeatDelayMillis vào Repeatable. Chúng tôi cũng đã đổi tên delayMillis trong AnimationSpec thành startDelayMillis (Ifb266)
  • Các phương thức DynamicTypeEvaluator.bind hiện chấp nhận Executor. (I346ab)
  • Chúng tôi thêm phương thức startEvaluation vào BoundDynamicType để kích hoạt việc đánh giá sau khi kiểu động được liên kết. (I19908)

Sửa lỗi

  • Đối tượng Animator sẽ được sử dụng lại cho các ảnh động tiếp theo của một phần tử. (Ia3be9)

Phiên bản 1.0.0-alpha04

Ngày 22 tháng 2 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Giờ đây, ObservableStateStore cũng sẽ thông báo cho trình nghe khi một khoá bị xoá.
  • Chúng tôi đã thêm phiên bản giản đồ kết xuất đồ hoạ và tỷ lệ phông chữ vào DeviceParameters (có thể dùng để tạo bố cục theo điều kiện nhằm phản hồi nhiều phiên bản và chế độ cài đặt phông chữ).
  • Chúng tôi đã thêm tính năng hỗ trợ tạo ảnh động cho các giá trị DynamicInt32 (I05485)
  • Chúng tôi đã thêm điều kiện kích hoạt OnLoadOnConditionalMet. Bạn có thể dùng chúng để bắt đầu tạo ảnh động hỗ trợ điều kiện kích hoạt.
  • Chúng tôi đã thêm trọng số bố cục cho thứ nguyên mở rộng và kích thước tối thiểu cho thứ nguyên được bao bọc.
  • Chúng tôi đã thêm các loại động thời điểm và khoảng thời gian. Bạn có thể dùng chúng để biểu thị một thời điểm hoặc khoảng thời gian trong một biểu thức động.
  • Chúng tôi đã thêm tính năng hỗ trợ AnimatedVectorDrawableSeekableAnimatedVectorDrawable dưới dạng tài nguyên bố cục.

Các thay đổi về API

  • Dữ liệu cảm biến yêu cầu API 29 trở lên. (I8099e)
  • Chúng tôi đã thêm 2 phương thức trợ giúp launchAction (để chạy Hoạt động).

Sửa lỗi

  • Đổi tên set/getSpec thành set/getAnimationSpec trong ảnh động Thẻ thông tin (I3d74b)

Phiên bản 1.0.0-alpha03

Ngày 8 tháng 2 năm 2023

Phát hành androidx.wear.protolayout:protolayout-*:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi thêm toByteArray()fromByteArray() vào các loại Dynamic trong thư viện protolayout-express.
  • Chúng tôi thêm toString() vào các loại Dynamic trong thư viện protolayout-expression.
  • Chúng tôi thêm tính năng hỗ trợ đánh giá cho các loại Dynamic. Bạn có thể sử dụng lớp DynamicTypeEvaluator từ thư viện protolayout-expression-pipeline để đánh giá (và nhận các giá trị cập nhật) cho một loại Dynamic tạo trước đó (DynamicString, DynamicFloat...)
  • Khi không thể phát ảnh động (do trình đánh giá đã tắt hoặc số ảnh động đang chạy đã đạt đến giới hạn đã đặt), các giá trị tĩnh được đặt trên nút có thể tạo ảnh động sẽ được dùng để thay thế ảnh động.

Phiên bản 1.0.0-alpha02

Ngày 25 tháng 1 năm 2023

Phát hành androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Các trình xây dựng bố cục từ androidx.wear.tiles:tiles sẽ chuyển sang androidx.wear.protolayout:protolayout. Bản phát hành alpha tiếp theo sẽ không còn dùng các phần tử trong androidx.wear.tiles:tiles nữa.

Phiên bản 1.0.0-alpha01

Ngày 11 tháng 1 năm 2023

Phát hành androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Bản phát hành này giới thiệu một thư viện mới có tên "Biểu thức ProtoLayout" để tạo biểu thức từ các biến động.