wear protolayout

  
Thư viện này cho phép xác định một tập hợp bố cục 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 7 tháng 8 năm 2024 1.2.0 - - -

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"

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

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

Kotlin

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

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

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

Để 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

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

Phát hành androidx.wear.protolayout:protolayout-*:1.2.0. Phiên bản 1.2.0 chứa. các thay đổi này.

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

  • FontStyle đã được cập nhật để bổ sung khả năng hỗ trợ phông chữ cho các trục biến và API lựa chọn phông chữ tốt hơn nhằm hỗ trợ các phông chữ Flex sắp tới.
  • Hỗ trợ thêm đối tượng sửa đổi:
    • Đối tượng sửa đổi chuyển đổi cung cấp tính năng dịch, xoay và chia tỷ lệ (có hoặc không có ảnh động).
    • Chỉ định các giá trị khác nhau (ngang và dọc) cho mỗi bán kính góc.
  • Cải thiện khả năng hỗ trợ tiếp cận của tất cả đích chạm bằng cách mở rộng vùng có thể nhấn của bất kỳ phần tử nào sử dụng Đối tượng sửa đổi có thể nhấp ra ít nhất 48dp x 48dp.
  • Cải thiện PrimaryLayoutEdgeContentLayout bằng cách thêm setResponsiveContentInsetEnabled để hỗ trợ tốt hơn hành vi thích ứng của những bố cục này trên nhiều kích thước màn hình, đồng thời cải thiện tính nhất quán của Thẻ thông tin.
  • Cải thiện việc điều chỉnh tỷ lệ/không điều chỉnh tỷ lệ của Văn bản Material cho tỷ lệ phông chữ phi tuyến tính của Android 14.
  • Cải thiện tính năng hỗ trợ cho hướng bố cục RTL trên tất cả phần tử vòng cung.

Các nội dung thay đổi khác

  • Để biết tập hợp các thay đổi hoàn chỉnh hơn đượ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.2.0-rc01

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

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

Sửa lỗi

  • Chúng tôi đã sửa Chip Material tiêu chuẩn để chỉ có thể dùng Chip này làm biểu tượng khi không có nhãn chính hoặc nhãn phụ nào được truyền vào. (Iceef9)
  • Tài liệu về bố cục Material đã được cập nhật để bao gồm hình ảnh từ trang có liên quan để giúp bạn dễ hiểu hơn về bố cục. (I0256a)

Phiên bản 1.2.0-beta01

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

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

Tính năng mới

Bản phát hành 1.2.0-beta01 của Wear ProtoLayout cho biết rằng bản phát hành thư viện này đã hoàn thiện về tính năng và API bị khoá (ngoại trừ những điểm được đánh dấu là thử nghiệm). Wear ProtoLayout 1.2 bao gồm các chức năng và API mới sau đây:

  • FontStyle đã được cập nhật để bổ sung khả năng hỗ trợ phông chữ như sau:
    • Đặt chế độ cài đặt biến thể phông chữ khác nhau, chẳng hạn như FontSetting.weightFontSetting.width
    • Đặt cùng một chiều rộng cho tất cả các ký tự số – chữ số trong bảng (chế độ cài đặt tính năng phông chữ FontSetting.tnum)
    • Cải thiện các API lựa chọn phông chữ để hỗ trợ các phông chữ linh hoạt sắp tới bằng cách chỉ định tên bộ phông chữ ưu tiên sẽ được sử dụng.
  • Mở rộng đối tượng sửa đổi Corner để hỗ trợ việc chỉ định mỗi CornerRadius có các giá trị ngang và dọc riêng biệt nhằm cho phép các phần tử toà nhà có góc bất đối xứng.
  • Thêm một đối tượng sửa đổi Transformation mới cung cấp tính năng dịch, xoay và điều chỉnh theo tỷ lệ LayoutElement. Bạn có thể tạo ảnh động cho các phép biến đổi này bằng cách sử dụng các giá trị động.
  • Thêm setArcDirection cùng với các tuỳ chọn Clockwise, CounterClockwiseNormal cho tất cả phần tử vòng cung (Arc, ArcLineArcText) để hỗ trợ tốt hơn theo nhiều hướng bố cục (chẳng hạn như LTR và RTL).
  • Cải thiện khả năng hỗ trợ tiếp cận của tất cả đích chạm bằng cách mở rộng vùng có thể nhấn của bất kỳ phần tử nào sử dụng đối tượng sửa đổi Clickable thành ít nhất 48dp x 48dp.
  • Cải thiện PrimaryLayoutEdgeContentLayout bằng cách thêm setResponsiveContentInsetEnabled để hỗ trợ tốt hơn hành vi thích ứng của những bố cục này trên nhiều kích thước màn hình, đồng thời cải thiện tính nhất quán của Thẻ thông tin. Thêm cảnh báo linter để đề xuất việc sử dụng các API này cùng với bản sửa lỗi nhanh.
  • Cải thiện việc điều chỉnh tỷ lệ/không điều chỉnh tỷ lệ của Material Text cho tỷ lệ phông chữ phi tuyến tính của Android 14.

Thay đổi về API

  • Tên bộ phông chữ mặc định (DEFAULT_SYSTEM_FONT) sẽ bị xoá vì ngụ ý do không sử dụng API preferredFontFamilies. (I39dab)
  • Thông số được truyền vào FontSetting.width phải là số dương. (I1266f)

Phiên bản 1.2.0-alpha05

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

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

Tính năng mới

  • Thêm phương thức hasText vào Material.CompactChip để kiểm tra xem nội dung văn bản đã được thiết lập hay chưa. (I6e8fc)

Thay đổi về API

  • Cấu trúc FontFamily được chuyển sang FontStyle thay vì lớp Builder. (Đã đổi tên)
  • Cập nhật API FontSetting.weightFontSetting.width để thêm Chú thích dải ô và thay đổi tham số của trọng số thành số nguyên. (Ia726c)

Sửa lỗi

  • Văn bản không thể mở rộng trong thư viện Material hiện hoạt động chính xác với tỷ lệ phông chữ phi tuyến tính của Android 14. (I6601e)

Phiên bản 1.2.0-alpha04

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

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

Thay đổi về API

  • Thêm API góc bất đối xứng để có thể chỉ định bán kính riêng của mỗi góc bằng 2 giá trị. (Icbd69)
  • Mở rộng API FontSetting để thêm:
    • cài đặt tính năng phông chữ như đặt phông chữ thành bảng. (If12b7)
    • cài đặt biến thể phông chữ, chẳng hạn như đặt chiều rộng tuỳ chỉnh cho các phông chữ biến đổi. (I2b36d)
  • Thêm API bộ phông chữ vào FontStyle để cho phép chỉ định danh sách thứ tự các bộ phông chữ sẽ được sử dụng. (Iba9f5)
  • Đổi tên các hằng số cho chiều cao không gian giữa nội dung và nhãn phụ trong LayoutDefaults của Material mà ban đầu được thêm tiền tố là "Nội dung Edge" để mang tính tổng quát hơn vì có thể áp dụng cho cả PrimaryLayoutEdgeContentLayout. (I4dc32)

Sửa lỗi

  • Đổi tên tên cho các trục phông chữ biến từ axisName thành axisTag. (I02ba3)

Phiên bản 1.2.0-alpha03

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

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

Tính năng mới

  • Thêm API để đặt giá trị trọng số tuỳ chỉnh cho FontStyle. (I7390a)

Sửa lỗi

  • Khắc phục lỗi trong getTouchDelegateInfo do bản đồ mục tiêu trống. (I2accf)

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.

Thay đổi về API

  • Chúng tôi đã thêm hỗ trợ để tắt phản hồi gợn sóng trên từng phần tử có thể nhấp vào. (If1ede)
  • API để chuyển đổi đã bị xoá khỏi ArcModifiers vì chúng không hỗ trợ tính năng đó (Ic0827)
  • Trình tạo ArcDirectionProp hiện yêu cầu 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 thành một phương thức khác. (I50ba3)
  • Text#setIsScalable đổi tên thành Text#setScalable. (If920e)
  • Material Text có thể thiết lập việc có sử dụng kích thước có thể mở rộng (phát triển khi cỡ chữ của người dùng thay đổi) hay không. (Ibc849)
  • Chúng tôi đã thêm lựa chọn đặt thông tin mô tả nội dung thành TitleChip. (I5d21f)
  • Sửa 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)
  • Đưa phương thức getter mới vào DynamicDataNode để truy xuất chi phí 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í là 0, tất cả các nút khác sẽ có chi phí là 1. (Ia33e1)
  • Xoá logic tính khỏi NO_OP_QUOTA_MANAGER. (Ib50b8)
  • Chúng tôi đã thêm một quy tắc tìm lỗi mã nguồn để báo cáo cảnh báo khi bạn 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 về số lượng 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 phần tử đó. Việc thêm hành vi này vào Arc, ArcLine hoặc ArcText sẽ khắc phục hành vi của chúng trên bố cục RTL. (I90699)
  • EdgeContentLayout đã được cập nhật với 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 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 việc nội dung bị văng 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ể dùng phương thức này như một thành phần nhỏ hơn. (I55c06)

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ả các thành phần văn bản mà không cho phép thêm khoảng đệm này. (I3e300)

Sửa lỗi

  • Khắc phục vấn đề Căn chỉnh văn bản khi tất cả các chế độ căn chỉnh đều sử dụng kích thước elip, khoảng cách chữ cái và căn giữa trên Văn bản. (I716c7)
  • Thêm giải pháp cho vấn đề vẽ vòng 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à thể hiện rõ hơn độ dài lớn hơn 360 độ trong ArcLine.
  • Định dạng ngày giờ hỗ trợ các múi giờ khác nhau cho các loại dữ liệu động.
  • Các tuỳ chọn tự động định cỡ và dấu ba chấm cho 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 lượng không bắt buộc.
  • Chú thích yêu cầu về phiên bản giản đồ cho tất cả API ProtoLayout.
  • Mở rộng vùng mục tiêu thành bất kỳ phần tử Clickable nào thành 48 dp x 48 dp để đáp ứng các yêu cầu về hỗ trợ tiếp cận.
  • Theo mặc định, khoảng đệm phông chữ bị tắt và là chế độ duy nhất trên tất cả các thành phần Văn bản cũng như thành phần Material có chứa văn bản.

Các nội dung thay đổi khác

  • Để biết tập hợp các thay đổi hoàn chỉnh hơn đượ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ẽ hoạt động ngay sau khi bật bản cập nhật. (I77145)
  • Đã khắc phục CircularProgressIndicator cho bố cục RTL. Từ giờ trở đi, trong mọi trường hợp, phím này sẽ đi theo chiều kim đồng hồ. (I95ee3)
  • Thêm giải pháp cho vấn đề vẽ vòng 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 rằng bản phát hành thư viện này đã hoàn thiện về tính năng và API bị khoá (ngoại trừ những điểm được đánh dấu là thử nghiệm). Wear ProtoLayout 1.1 bao gồm các chức năng và API mới sau đây:

  • ArcLine hiện hỗ trợ hiệu ứng chuyển màu bằng cách thêm Brush với SweepGradient và có bóng trên mũ để thể hiện rõ 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 có hỗ trợ định dạng ngày giờ được phân vùng. Bạn có thể dùng DynamicInstantDynamicDuration làm kiểu 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 kích thước dựa trên không gian bên trong thành phần mẹ. Ngoài ra, chúng tôi cũng 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 lượng không bắt buộc. Để tạo ExpandedDimensionProp, chúng ta đã thêm một 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 có các giá trị động trong BoolProp.
  • Hiện tại, tất cả API ProtoLayout đều có chú giải 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 một API mới hơn.
  • Vùng mục tiêu của mọi phần tử có Clickable hiện được mở rộng tối thiểu là 48x48 trong trình kết xuất để hỗ trợ tốt hơn cho các yêu cầu về khả năng hỗ trợ tiếp cận.
  • Tiếp sau các thành phần Material và sáng kiến Compose khác, 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 phần tử Text. Ngoài ra, AndroidTextStyle và các phương thức setter có liên quan đã bị xoá khỏi API công khai. bằng các bản sửa lỗi sau:
  • Thêm một phương thức setter để định vị nội dung cạnh trong EdgeContentLayout để có thể định vị nội dung này trước nội dung khác.
  • Thường xuyên gửi một trường hợp ngoại lệ khi gặp giá trị enum không xác định.
  • Vô hiệu hoá kết quả của một biểu thức khi biểu thức đó mang lại giá trị số không hợp lệ (NaN hoặc vô hạn) hoặc trả về một ArithmeticException.

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ợ trình kết xuất và API 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 bạn không chỉ định. Nút vẫn sẽ gửi một 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)

Thay đổi về API

  • Tuỳ chọn tràn 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 mới TEXT_OVERFLOW_ELLIPSIZE có hành vi tương tự. (I822d8)
  • Tiếp sau các thành phần Material và sáng kiến Compose khác, 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 có 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 các đối số int thay vì SpProp. (I02b37)

Sửa lỗi

  • Đưa ra một trường hợp 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 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 để ẩn/hiện linh động các phần tử bố cục (I64a78)
  • Thêm tính năng hỗ trợ giá trị động vào BoolProp (I2fe96)
  • Thêm chú thích cho yêu cầu về phiên bản giản đồ vào API ProtoLayout (I0f03c)
  • Mở rộng API bằng tuỳ chọn mới trong TextOverflow để đánh dấu ba chấm 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 kiểu dữ liệu trạng thái hoặc nền tảng. (I6819f)

Thay đổi về API

  • Cập nhật API để ẩn DynamicZonedDateTime và di chuyển mọi thao tác của API đó 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ợ tiện ích khu vực đích nhấp chuột 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 Dấu cách để 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 có trong thành phần mẹ. (Ibbe63)
  • Hỗ trợ kích thước có thể nhấp tối thiểu (I178e3)
  • Bổ sung tính năng hỗ trợ trình kết xuất đồ hoạ cho StrokeCap Shadow. (I48b17)
  • Thêm tuỳ chọn hỗ trợ trình kết xuất đồ hoạ cho Quét chuyển màu 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ùy chọn hỗ trợ cho định dạng ngày giờ được phân vùng. (Ibfae0)
  • Thêm các protos và trình bao bọc java cần thiết cho việc định dạng ngày giờ được phân vùng. (I97126)
  • Thêm các phương thức getter để đọc lại giá trị được lưu trữ trong DynamicDataValue. (Ie6cea)
  • Thêm một phương thức setter để định vị nội dung cạnh trong EdgeContentLayout để có thể định vị nội dung này 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ó nhiều lượt đăng ký nguồn dữ liệ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 được đặ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 tạo. (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ể 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.

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 có bất kỳ ảnh hưởng nào đế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 (throw) nếu DynamicColor đã được thiết lập cho SpanText. (I0e5bc)
  • Làm rõ rằng đơn vị nguồn dữ liệu 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)

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 tham số chung không an toàn. Tức là DynamicDataValue hiện được nhập bằng DynamicType. Hằng số HEART_RATE_ACCURACY_X được chuyển đến gốc PlatformHealthSources để khớp với vị trí của 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)
  • Lớp PlatformHealthSources.Constants có thể tạo thực thể do nhầm lẫn. Lỗi này hiện đã được khắc phục. (Icb849)
  • PlatformTimeUpdateNotifier#setReceiver hiện nhận được hàm Runnable thay vì hàm SupplierExecutor để thông báo. (I9d938)
  • Chúng ta đã thay đổi loại tham số trong PlatformTimeUpdateNotifier#setReceiver từ Callable thành Supplier. (I664bf)
  • CompactChipTitleChip hiện đã hỗ trợ việc thêm biểu tượng vào đối tượng đó. (I5a01e)

Sửa lỗi

  • Cập nhật các thông báo trong Prop bằng các trường động để sử dụng oneof (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 vân tay đúng cách 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 để cải thiện độ chính xác về tần số tim. (I7f9b8)

Thay đổi về API

  • Đổi tên StateBuilders#getIdToValueMapping thành getKeyToValueMapping rồi thay đổi kiểu 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. Thư viện này cung cấp tần suất cập nhật dữ liệu thời gian mong muốn. (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)
  • Đã thêm phương thức setter để căn chỉnh nhãn hoàn hảo vào tất cả các thành phần 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. Chỉ định giá trị mặc định được sử dụng nếu giá trị tĩnh không được cung cấp. (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 vào dữ liệu nền tảng; Thêm tính năng hỗ trợ không gian tên trong StateStore. (I7985e)
  • Hỗ trợ các thao tác EqualNotEqual cho DynamicBool. (I6a0c1)

Thay đổi về API

  • Lớp FontStyles hiện là lớp cuối cùng (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 nhau Action#Builder khỏi giao diện Action. Các lớp LoadActionLaunchAction hiện đã triển khai Trình tạo. (I1d70c)
  • Cho phép dùng DynamicFloat với FloatProp. Lưu ý FloatProp không yêu cầu ràng buộc về bố cục vì không được dùng làm thuộc tính thay đổi bố cục. (I286ac)
  • Các thao tác LoalActionSetStateAction sẽ 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 rồi cập nhật API trạng thái để sử dụng DynamicDataKey (If1c01)
  • Chúng tôi sẽ giới hạn số lượng mục được phép trong StateStore để đảm bảo việc sử dụng bộ nhớ và thời gian cập nhật trạng thái được kiểm soát và kiểm soát chặt chẽ cho mỗi thực thể của StateStore. Do đó, nhà phát triển cần đảm bảo rằng họ không có nhiều hơn MAX_STATE_ENTRY_COUNT mục nhập trong bản đồ, nếu không họ 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 liên quan đến hiệu suất và khả năng tương thích, trình kết xuất ProtoLayout sẽ không hỗ trợ đầy đủ tính năng trong các 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 nhóm đượ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à giá sàn hằng ngày. Khoá cho nguồn tình trạng của nền tảng nay có trong PlatformHealthSources.Keys (Ib7637)
  • Phương thức Easing.cubicBezier thay thế CubicBezierEasing.Builder. Cùng với đó, lớp EasingFunction sẽ bị xoá và các hằng số easing từ lớp đó hiện có thể truy cập trực tiếp được từ 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 dữ liệu 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 khoá được hỗ trợ của trình cung cấp được nút từ quy trình biểu thức yêu cầu. (Ib616a)
  • SensorGateway không còn là Closeable vì không còn duy trì trạng thái nào. (I6b4f7)
  • Cho phép sử dụng FloatProp với DynamicFloat để tiến hà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 về staticValue nếu được cung cấp, nếu không sẽ trở về 0 (I0d91b)
  • Các hằng số MultiButtonLayout đã được tái cấu trúc thành lớp LayoutDefaults.MultiButtonLayoutDefaults, hiện chứa các hằng số cho 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. Trình kết xuất cũ sẽ dự phòng về giá trị tĩnh được cung cấp. Cập nhật loại dữ liệu trả về của 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 phần tử bố cục tiện ích thử nghiệm. Lưu ý rằng theo mặc định, ứng dụng này không thể sử dụng và yêu cầu tiện ích kết xuất đồ hoạ có thể hiểu được phần tử bố cục. (I6581d)
  • Thêm tính năng hỗ trợ StrokeCap cho ArcLine. (I94951)
  • Bổ sung tính năng hỗ trợ cho thao tác Tức thì có điều kiện. (I489a7)
  • Bổ sung tính năng hỗ trợ cho thao tác Thời lượng có điều kiện. (Iab469)
  • Hỗ trợ thêm tính năng tạo thời lượng tính từ giây. (Ib5fa1)

Thay đổi về API

  • Đã xoá các phương thức enable/disablePlatformSource khỏi DynamicTypeEvaluator. Phương thức gọi sẽ chịu trách nhiệm về các bản cập nhật. (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 nội dung 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 đã hỗ trợ thêm tính năng loại trừ khoảng đệm phông chữ trong Material Text ProtoLayout. (I17f5d)
  • ARGB_8888 hiện được hỗ trợ cho hình ảnh cùng dòng. (I18c1e)
  • DynamicColor hiện hỗ trợ toán tử onCondition. (I10927)

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() bị xoá. Ngoài ra, các giá trị NaN DynamicFloat và việc thu hẹp DynamicInt32 thành DynamicFloat hiện còn phát ra kết quả động không hợp lệ. (I6ac1e)
  • Trình định dạng số nguyên và số thực 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 thiết lập chính xác thành api thay vì implementation khi bắt buộc. (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 tính năng 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)

Thay đổi về API

  • sensorGateway#registerSensorGatewayConsumer lấy loại dữ liệu làm tham số thay vì phương thức trong ứng dụng Người tiêu dùng. (Icf314)
  • ObservableStateStore đổi tên thành StateStore (Ieb0e2)
  • Thêm DynamicTypeEvaluator.Builder thay vì đối số hàm khởi tạo để cho phép thêm đối số không bắt buộc, bao gồm cả ObservableStateStore hiện mặc định là cửa hàng 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 của 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 đã hỗ trợ thêm độ trễ đảo ngược và tiến 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ị linh động cho các loại trong DimensionBuilder
  • Bố cục và thành phần từ tiles-material sẽ chuyển sang protolayout-material

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 một "bản cập nhật nội dung" thử nghiệm ảnh động cho đố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)

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 một Trình thực thi. (I346ab)
  • Chúng tôi đã thêm phương thức startEvaluation vào BoundDynamicType để kích hoạt quá trình đánh giá sau khi liên kết kiểu động. (I19908)

Sửa lỗi

  • Đối tượng Trình tạo ảnh động 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.