Wear Compose

  
Viết các ứng dụng sử dụng công cụ Jetpack Compose cho thiết bị đeo bằng cách cung cấp chức năng để hỗ trợ các thiết bị đeo, kích thước, hình dạng và cử chỉ điều hướng cụ thể.
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 11 tháng 5 năm 2022 - - 1.0.0-beta01 -

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

Để thêm một phần phụ thuộc trên Wear, bạn phải thêm kho lưu trữ Maven của Google vào dự án. Đọ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 {
    implementation "androidx.wear.compose:compose-foundation:1.0.0-beta01"

    // For Wear Material Design UX guidelines and specifications
    implementation "androidx.wear.compose:compose-material:1.0.0-beta01"

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation "androidx.wear.compose:compose-navigation:1.0.0-beta01"

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

Kotlin

dependencies {
    implementation("androidx.wear.compose:compose-foundation:1.0.0-beta01")

    // For Wear Material Design UX guidelines and specifications
    implementation("androidx.wear.compose:compose-material:1.0.0-beta01")

    // For integration between Wear Compose and Androidx Navigation libraries
    implementation("androidx.wear.compose:compose-navigation:1.0.0-beta01")

    // NOTE: DO NOT INCLUDE a dependency on androidx.compose.material:material.
    // androidx.wear.compose:compose-material is designed as a replacement
    // not an addition to androidx.compose.material:material.
    // If there are features from that you feel are missing from
    // androidx.wear.compose:compose-material please raise a bug to let us know.
}

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

Ý kiến phản hồi

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.0

Version 1.0.0-beta01

Ngày 11 tháng 5 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-beta01, androidx.wear.compose:compose-material:1.0.0-beta01androidx.wear.compose:compose-navigation:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Có gì trong tính năng Soạn thư dành cho Wear OS 1.0

1.0.0-beta01 của tính năng Compose cho Wear OS đánh dấu một mốc quan trọng khi thư viện đã hoàn thiện về tính năng và API được khóa.

Các thành phần Wear Compose Material trong bản phát hành 1.0 bao gồm:

  • Giao diện Material – được dùng để thay thế tính năng Soạn thư dành cho thiết bị di động MaterialTheme, cung cấp màu sắc, hình dạng và kiểu chữ để xây dựng thành phần trên Thiết bị đeo thực hiện các nguyên tắc trải nghiệm người dùng Wear Material Design ngay từ đầu.
  • Button, CompactButtonToggleButton – Nút cung cấp một khe duy nhất để chụp biểu tượng, hình ảnh hoặc văn bản ngắn (tối đa 3 ký tự). Hình tròn có kích thước đề xuất cho các nút mặc định, lớn hoặc nhỏ. CompactButton cung cấp một khe duy nhất có hình tròn với kích thước nền rất nhỏ để chụp bất kỳ nội dung nào (biểu tượng, hình ảnh hoặc văn bản). CompactButton có khoảng đệm trong suốt (không bắt buộc) xung quanh nền để tăng diện tích khu vực có thể nhấp. ToggleButton là một nút cung cấp khe duy nhất để chụp mọi nội dung (văn bản ngắn, biểu tượng hoặc hình ảnh) và có các trạng thái bật/tắt (đã đánh dấu/bỏ đánh dấu) bằng màu và các biểu tượng khác nhau để cho biết liệu đã đánh dấu hay chưa
  • Thẻ – dùng để hiển thị thông tin về các ứng dụng, chẳng hạn như thông báo. Thiết kế linh hoạt cho nhiều trường hợp sử dụng, trong đó AppCardTitleCard cung cấp bố cục và khả năng hỗ trợ hình ảnh khác nhau dưới dạng nội dung thẻ hoặc nền.
  • Chip – các thành phần có hình dạng sân vận động tương tự như các nút, nhưng có khu vực lớn hơn và nhiều khe để cho phép nhãn, nhãn phụ và biểu tượng. Có nhiều kích thước khác nhau và hỗ trợ hình ảnh làm nền.
  • SwitchChips và SplitToggleChips - Một khối có trạng thái đã chọn/chưa đánh dấu và thêm một khe ToggleControl để hiển thị một biểu tượng như công tắc hoặc nút chọn để hiển thị trạng thái của thành phần. Ngoài ra, SplitToggleChip còn có hai vùng có thể nhấn vào, một vùng có thể nhấp vào và một vùng có thể chuyển đổi.
  • CircularProgressIndicator – Chỉ báo tiến trình Wear Material với 2 biến thể. Biến thể đầu tiên thể hiện tỷ lệ hoàn thành một nhiệm vụ đang diễn ra đồng thời hỗ trợ khoảng trống trong đường tròn giữa các góc bắt đầu và kết thúc. Biến thể thứ hai cho biết tiến trình không xác định trong thời gian chờ không xác định.
  • curvedText – tạo thành một phần của DSL để mô tả CurvedLayouts, cùng với curvedRowcurvedColumn, để bố trí các thành phần xung quanh thiết bị hình tròn. Xem Nền tảng thành phần Wear bên dưới để biết thêm thông tin chi tiết về CurvedLayoutCurvedModifier (mục này đóng vai trò tương tự như Công cụ sửa đổi ở thế giới không cong và cho phép định cấu hình các khía cạnh khác nhau của bố cục, khoảng đệm, độ dốc, v.v.).
  • Hộp thoại, Cảnh báo và Xác nhận – Hộp thoại hiển thị hộp thoại toàn màn hình, nằm trên bất kỳ nội dung nào khác và hỗ trợ vuốt để đóng. Đó là khe duy nhất dự kiến làm nội dung hộp thoại Wear Material, chẳng hạn như Cảnh báo hoặc Xác nhận. Cảnh báo là nội dung hộp thoại được cho phép với các vị trí cho biểu tượng, tiêu đề và thông báo. Vị trí này có nội dung nạp chồng cho cả nút âm và dương được hiển thị cạnh nhau hoặc một khe cho một hoặc nhiều khối xếp chồng lên nhau theo chiều dọc. Xác nhận là nội dung hộp thoại được cho phép hiển thị thông báo trong một khoảng thời gian nhất định. Tệp này có khung giờ cho một biểu tượng hoặc hình ảnh (có thể là ảnh động).
  • HorizontalPageIndicator – hiển thị vị trí trang nằm ngang theo cách phù hợp với kiểu dáng thiết bị đeo. Được thiết kế để chụp toàn màn hình và hiển thị chỉ báo cong trên các thiết bị hình tròn. Có thể dùng với trình xem trang Accompanist.
  • Biểu tượng – Cách triển khai biểu tượng Wear cho phép sử dụng màu và alpha trong Giao diện Material Material. Để biết biểu tượng có thể nhấp, hãy xem Nút hoặc Chip.
  • Bộ chọn – hiển thị một danh sách các mục có thể cuộn để chọn. Theo mặc định, các mục sẽ được lặp lại 'vô hạn' ở cả hai hướng. Có thể hiển thị ở chế độ chỉ đọc để ẩn các tùy chọn bỏ chọn.
  • PositionIndicator – hiển thị vị trí cuộn hoặc chỉ báo vị trí khác theo cách phù hợp với kiểu dáng Thiết bị đeo. Được thiết kế để chụp toàn màn hình và hiển thị chỉ báo cong trên thiết bị tròn.
  • Scaffold – triển khai cấu trúc bố cục hình ảnh cơ bản cho Material Design trên Wear. Thành phần này cung cấp một API để tập hợp nhiều thành phần Wear Material (chẳng hạn như TimeText, PositionIndicatorVignette) nhằm xây dựng màn hình, đảm bảo chiến lược bố cục phù hợp với các thành phần đó và thu thập dữ liệu cần thiết để các thành phần này phối hợp hoạt động đúng cách.
  • ScalingLazyColumn - thành phần danh sách điều chỉnh theo tỷ lệ/chế độ xem hình mắt cá tạo thành một phần quan trọng trong ngôn ngữ Wear Material Design. Cung cấp hiệu ứng điều chỉnh theo tỷ lệ và trong suốt cho các mục nội dung. ScalingLazyColumn được thiết kế để có thể xử lý số lượng lớn các mục nội dung, chỉ chứa nội dung cụ thể và soạn nội dung khi cần.
  • Slider - cho phép người dùng lựa chọn trong một phạm vi các giá trị. Dải ô các lựa chọn được hiển thị dưới dạng thanh, có thể tùy ý hiển thị cùng với dấu phân tách.
  • Stepper - thành phần toàn màn hình cho phép người dùng lựa chọn từ một loạt các giá trị, sử dụng các nút tăng/giảm ở đầu và cuối màn hình, với một khe ở giữa Văn bản hoặc Khối.
  • SwipeToDismissBox – sử dụng cử chỉ vuốt để đóng. Đó là một khe duy nhất cho nội dung nền (chỉ hiển thị trong cử chỉ vuốt) và nền trước. Bạn có thể tùy chọn kết hợp với thư viện điều hướng androidx bằng cách sử dụng SwipeDismissableNavHost (xem thư viện Wear Compose Navigation bên dưới).
  • Text - Triển khai Wear cho thành phần Compose Material Text, lấy màu và alpha từ Giao diện Material Material
  • TimeText – một thành phần hiển thị Thời gian và trạng thái ứng dụng ở đầu màn hình. Điều chỉnh giao diện màn hình bằng cách dùng văn bản cong trên màn hình tròn.
  • Vignette – xử lý màn hình để sử dụng trong Scaffold làm mờ phần trên cùng và dưới cùng của màn hình khi đang sử dụng nội dung cuộn.

  • Các thành phần sau đây cũng có trong Wear Compose Foundation:

  • CurvedLayout – Wear Foundation CurvedLayout là một bố cục có thể sắp xếp các vị trí con theo vòng cung, xoay vòng khi cần thiết. Điều này tương tự như bố cục Hàng được uốn cong thành một mảnh của vành hình khuyên. Lưu ý nội dung của CurvedLayout không phải là một hàm lambda kết hợp mà là một DSL (ngôn ngữ đặc thù cho miền). Tất cả các phần tử trong DSL của CurvedLayout đều hỗ trợ tham số sửa đổi tùy chọn, được tạo từ CurvedModifier.

  • basicCurvedText - một phần tử trong CurvedLayout DSL, basicCurvedText cho phép các nhà phát triển dễ dàng viết văn bản cong theo đường cong của hình tròn (thường là ở cạnh của màn hình tròn). Bạn chỉ có thể tạo basicCurvedText trong CurvedLayout để đảm bảo trải nghiệm tốt nhất, chẳng hạn như khả năng chỉ định vị trí và sử dụng CurvedModifiers. Lưu ý trong hầu hết các trường hợp, bạn nên dùng curvedText, vì nó sử dụng giao diện Material.

  • curvedComposable - gói nội dung kết hợp chuẩn hóa để bạn có thể sử dụng với CurvedLayout. Nếu curvedComposable có một số phần tử bên trong, các phần tử này sẽ được vẽ chồng lên nhau (như Hộp). Để đặt nhiều thành phần kết hợp dọc theo một đường cong, hãy gói từng thành phần lại với curvedComposable.

  • curvedRow and curvedColumn – tương tự như Hàng và Cột, curvedRowcurvedColumn có thể được lồng vào bên trong CurvedLayout để bố trí các phần tử khi cần. Đối với curvedRow, bạn có thể chỉ định hướng bố cục góc và căn chỉnh tròn. Đối với curvedColumn, bạn có thể chỉ định hướng căn chỉnh góc và hướng tròn.

  • CurvedModifier - tất cả các thành phần cong đều chấp nhận một tham số có thể được tạo bằng cách sử dụng CurvedModifier: nền, kích thước, trọng lượng và khoảng đệm được hỗ trợ.

  • Thành phần sau cũng có trong Wear Compose Navigation:

  • SwipeDismissableNavHost - cung cấp một vị trí trong hệ thống phân cấp Compose để điều hướng độc lập xảy ra, với điều hướng ngược được cung cấp bởi cử chỉ vuốt. Nội dung hiển thị trong SwipeToDismissBox cho biết cấp độ điều hướng hiện tại. Trong cử chỉ vuốt để đóng, mức điều hướng trước đó (nếu có) sẽ hiển thị trong nền.

  • Xem ghi chú phát hành trước đây của các bản phát hành Alpha khác nhau để biết thêm thông tin về nội dung đã phân phối.

Thay đổi API

  • Đã thêm hàm CurvedModifier.padding*. Chúng dùng để chỉ định không gian bổ sung được thêm xung quanh một thành phần cong. (I4dbb4)
  • Đã xóa lớp nội bộ CompositionLocal (I42490)
  • Chúng tôi đã thêm các giá trị không đổi cho kích thước biểu tượng Button, CompactButtonToggleButton để làm hướng dẫn (I57cab)
  • Thêm tham số đã bật vào AppCardTitleCard. Giờ đây, chúng sẽ có API tương tự như Thẻ androidx.compose.material. Khi tham số được đặt thành false, bạn sẽ không thể nhấp vào thẻ được. (Idc48d, b/228869805)

Sửa lỗi

  • Trình chuyển đổi hiện sẽ tắt các nút giảm và tăng khi đạt đến giới hạn dưới/giới hạn trên (và áp dụng ContentAlpha.disabled cho iconColor) (I4be9f)
  • Chúng tôi đã thêm khoảng đệm 1dp xung quanh nội dung Bộ chọn (Picker) khi vẽ một độ dốc để tránh văn bản bị chập chờn khi vuốt. (I0b7b9)
  • Thêm thử nghiệm ảnh chụp màn hình cho PositionIndicator (I5e8bc)
  • Thêm các thử nghiệm khác cho AppCardTitleCard (I85391, b/228869805)

Phiên bản 1.0.0-alpha21

Ngày 20 tháng 4 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha21, androidx.wear.compose:compose-material:1.0.0-alpha21, và androidx.wear.compose:compose-navigation:1.0.0-alpha21. Phiên bản 1.0.0-alpha21 bao gồm những thay đổi sau.

Tính năng mới

  • Đã thêm công cụ sửa đổi đường cong mới để chỉ định nền của một phần tử cong: CurvedModifier.background, .radialGradientBackground.angularGradientBackground (I8f392)
  • Cho phép chỉ định chế độ tràn văn bản cong (clip/ellipsis/visibility). (I8e7aa)
  • Đã thêm công cụ sửa đổi CurvedModifier.weight, tương tự như công cụ sửa đổi trong Compose. Chế độ này có thể được sử dụng trên các curvedRow và CurvedLayout con (đối với chiều rộng) và con của curvedColumn (đối với chiều cao). (I8abbd)
  • Đã thêm công cụ sửa đổi CurvedModifier.size, .angularSize.radialSize để chỉ định kích thước của một phần tử cong. (I623c7)

Thay đổi API

  • Sắp xếp lại các tham số một cách nhất quán để đảm bảo nền ưu tiên trước màu trên API Wear Compose (I43208)
  • Đã xoá các tham số insideOut theo chiều kim đồng hồ và được thay thế bằng hằng số có ý nghĩa hơn trên các lớp mới. Giờ đây, hướng bố cục cong có thể nhận ra LayoutDirection và được kế thừa khi không được chỉ định (If0e6a)
  • Chúng tôi đã thay thế autoCenter: Boolean bằng autoCenter: AutoCentringParams để khắc phục vấn đề về API với ScalingLazyColumn. (Ia9c90)
  • Chúng tôi đã đổi tên iconTintColortoggleControlTintColor thành iconColortoggleControlColor trên toàn bộ API (Chip/ToggleChip/Dialog/Slider/Stepper/...) khi màu được áp dụng cho vị trí icon/toggleControl. (Ied238)
  • Viết lại enum PageIndicatorStyle vào lớp giá trị (I2dc72)
  • Chúng tôi đã thêm RowScope/ColumnScope/BoxScope vào một số vị trí trong Thành phần kết hợp để nhà phát triển nắm bố cục giả định. Điều này cho phép nhà phát triển sử dụng công cụ sửa đổi bổ sung trên một số vị trí nội dung và tránh phải cung cấp thêm thành phần bố cục. Ngoài ra, chúng tôi cũng đã thực hiện một số thay đổi nhỏ đối với màu của AppCard/TitleCard để timeColorappColor được đặt thành contentColor theo mặc định. Tất cả các thuộc tính này vẫn có thể được ghi đè riêng khi cần. (I26b59)
  • Đặt đối tượng SwipeToDismissBoxState.Companion ở chế độ riêng tư (I39e84)
  • Sửa thứ tự tham số cho InlineSliderStepper. Một thay đổi đơn giản để tuân theo nguyên tắc của api (I11fec)
  • Chúng tôi đã xoá đối tượng Trình tiết kiệm này cho SwipeToDismissBoxState vì đối tượng này không được sử dụng. (Ifb54e)
  • Chúng tôi đã cập nhật CompactChip để đưa thuộc tính này vào Quy cách trải nghiệm người dùng mới nhất. Khoảng đệm đã được giảm xuống mức ngang = 12 dp và dọc = 0 dp. Phông chữ cho nhãn đã được thay đổi từ nút thành chú thích 1. Bạn nên dùng biểu tượng có kích thước 20x20 khi hiển thị cho biểu tượng lẫn nhãn, và dùng kích thước 24x24 cho biểu tượng chip nhỏ gọn. Đối với trường hợp chỉ sử dụng biểu tượng, chúng tôi cũng đã đảm bảo biểu tượng đó được căn chỉnh ngay trung tâm. (Iea2be)
  • Chúng tôi đã thêm một số trường mới vào ScalingLazyListLayoutInfo để cho phép nhà phát triển biết số lượng contentPaddingautoCenteringPadding đã được áp dụng. Các hàm này có thể hữu ích cho nhà phát triển khi tính toán fling/scroll (I7577b)
  • Chúng tôi đã triển khai quá trình chuyển đổi vào/ra cho Hộp thoại. Tham số showDialog đã được thêm và Hộp thoại hiện kiểm soát chế độ hiển thị của riêng nó (điều này cho phép Hộp thoại chạy hoạt ảnh giới thiệu và kết thúc khi nó hiển thị/ẩn). Lưu ý hoạt ảnh cuối không được thực hiện khi người dùng rời khỏi hộp thoại thông qua thao tác vuốt để đóng. Chúng tôi cũng đã thêm giá trị mặc định cho trạng thái quá tải SwipeToDismissBox được thêm vào gần đây. (I682a0)
  • Để hỗ trợ tốt hơn cho i18n và a11y, chúng tôi đã thay đổi ToggleChipSplitToggleChip để các giá trị này không còn mặc định cho vị trí toggleControl. Chúng tôi cũng đã thay đổi ToggleChipDefaults để các phương thức sau đây giờ sẽ trả về ImagePNG thay vì Biểu tượng (lưu ý vì chúng không còn trả về @Composables nên chúng sẽ thay đổi để bắt đầu bằng chữ thường), SwitchIcon()->switchIcon(), CheckboxIcon->checkboxIcon()RadioIcon()->radioIcon() – điều này cho phép và khuyến khích các nhà phát triển tạo thành phần kết hợp Icon() của riêng mình với một bộ contentDescription thích hợp. (I5bb5b)
  • Chúng tôi đã thêm tham số SwipeDismissableNavHostState vào SwipeDismissableNavHost. Nó hỗ trợ việc sử dụng tính năng vuốt cạnh trên các màn hình dùng làm đích điều hướng, vì SwipeToDismissBoxState hiện có thể được di chuyển và dùng để khởi chạy cả SwipeDismissableNavHostStateModifier.edgeSwipeToDismiss trên màn hình yêu cầu vuốt từ cạnh. (I819f5, b/228336555)

Sửa lỗi

  • Đảm bảo bố cục cong được cập nhật khi cần. (Ie8bfa, b/229079150)
  • Bản sửa lỗi cho https://issuetracker.google.com/issues/226648931 (Ia0a0a, b/226648931)
  • Xoá chú thích thử nghiệm không cần thiết (I88d7e)

Phiên bản 1.0.0-alpha20

Ngày 6 tháng 4 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha20, androidx.wear.compose:compose-material:1.0.0-alpha20, và androidx.wear.compose:compose-navigation:1.0.0-alpha20. Phiên bản 1.0.0-alpha20 bao gồm những thay đổi sau.

Tính năng mới

  • Thêm công cụ sửa đổi edgeSwipeToDismiss cho SwipeToDismiss. Cho phép swipeToDismiss chỉ hoạt động ở cạnh bên trái của khung nhìn. Được dùng khi trung tâm màn hình cần khả năng xử lý chế độ phân trang ngang, chẳng hạn như cuộn Bản đồ 2D hoặc vuốt theo chiều ngang giữa các trang. (I3fcec, b/200699800)

Thay đổi API

  • Cơ sở triển khai CurvedModifiers, thao tác này triển khai cách giới thiệu các cách tuỳ chỉnh nội dung cong (nhưng chưa có CurvedModifiers nào được cung cấp và khả năng tạo công cụ sửa đổi tuỳ chỉnh có thể có sẵn sau đó) (I9b8df)
  • EdgeSwipeTài liệu về công cụ sửa đổi và các giá trị mặc định được cập nhật để bạn có thể hiểu rõ hơn. (I6d00d)
  • Thêm vị trí PageIndicator vào Scaffold. Bằng cách thêm trực tiếp PageIndicator vào Scaffold, chúng tôi có thể đảm bảo tệp này sẽ hiển thị chính xác trên các thiết bị hình tròn. (Ia6042)
  • Xoá Biểu tượng mặc định khỏi InlineSlider và tham số Stepper. Điều này sẽ giúp nhà phát triển chú ý hơn đến các yêu cầu về bản địa hoá và hỗ trợ tiếp cận. Việc sử dụng các biểu tượng mặc định được trình bày trong bản minh hoạ và mẫu. (I7e6fd)
  • Thay thế tên tham số Replace Trailing và Leading bằng Start (Bắt đầu) và End (Kết thúc) trong TimeText (Iaac32)
  • Chúng tôi đã thêm quá nhiều SwipeToDismissBox bằng tham số onDismissed để hỗ trợ việc sử dụng phổ biến khi kích hoạt một sự kiện điều hướng khi cử chỉ vuốt đã hoàn tất. (I50353, b/226565726)
  • Đã xoá chú thích ExperimentalWearMaterialApi khỏi mức sử dụng TimeText (Ide520)
  • Chúng tôi đã đánh dấu phạm vi ScalingLazyList/Column và giao diện thông tin kín vì chúng không dành cho các nhà phát triển bên ngoài triển khai, điều này cho phép chúng tôi thêm các thành viên mới trong tương lai mà không có các thay đổi có thể gây ra lỗi với tệp nhị phân. (I7d99f)
  • Chúng tôi đã thêm một thuộc tính flingBehaviour mới vào Bộ chọn (Picker) và một phương thức PickerDefaults.flingBehaviour() để kích hoạt cấu hình của hành vi hất, chẳng hạn như thêm hỗ trợ RSB. PickerState hiện triển khai giao diện ScrollableState. (Ib89c7)

Sửa lỗi

  • Cập nhật các quy tắc của hồ sơ cơ sở trên Android Runtime (ART) cho thư viện Wear Compose. ART có thể tận dụng các quy tắc cấu hình trên thiết bị để biên dịch trước một tập hợp con cụ thể của ứng dụng nhằm cải thiện hiệu suất ứng dụng. Lưu ý việc này sẽ không ảnh hưởng đến các ứng dụng có thể gỡ lỗi. (Iaa8ef)
  • Cải thiện tài liệu (I2c051)

Phiên bản 1.0.0-alpha19

Ngày 23 tháng 3 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha19, androidx.wear.compose:compose-material:1.0.0-alpha19, và androidx.wear.compose:compose-navigation:1.0.0-alpha19. Phiên bản 1.0.0-alpha19 bao gồm những thay đổi sau.

Thay đổi API

  • Đã đổi tên CurvedRow thành CurvedLayout và được thiết kế lại cùng một phạm vi với DSL. Khi sử dụng DSL này, bạn có thể chỉ định bố cục cong phức tạp hơn bằng cách sử dụng một chuỗi lồng nhau curvedRowcurvedColumn (là những bố cục cong tương đương với Hàng và Cột). Bên trong các phần tử của bố cục này, có thể sử dụng ba phần tử: curvedComposable (để thêm bất kỳ @Thành phần kết hợp nào), basicCurvedText (văn bản cong của nền tảng) và curvedText (văn bản cong nhận biết được tài liệu). (Ib776a)
  • Đặt cạnh bên cho cấu hình PositionIndicator. Vị trí cơ bản của PositionIndicator hiện đã được định cấu hình để trở thành End (Kết thúc) (nhận biết hướng bố cục), OppositeRsb (bao gồm xoay màn hình, để đặt nó đối diện với RSB thực tế) hoặc mép Trái và mép Phải. (I2f1f3)
  • Đối với SwipeToDismissBox, chúng tôi đã đổi tên SwipeDismissTarget.Original thành SwipeToDismissValue.Default, còn SwipeDismissTarget.Dismissal thành SwipeToDismissValue.Dismissed. Chúng tôi cũng đã di chuyển SwipeToDismissBoxDefaults.BackgroundKeySwipeToDismissBoxDefaults.ContentKey sang SwipeToDismissKeys.Background, SwipeToDismissKeys.Content tương ứng. (I47a36)
  • Chúng tôi đã thêm chế độ chỉ có thể đọc cho Bộ chọn (Picker), đối với các màn hình có nhiều Bộ chọn (Picker), trong đó chỉ có một Bộ chọn (Picker) có thể chỉnh sửa cùng một lúc. Khi Bộ chọn (Picker) ở chế độ chỉ được đọc, nó sẽ hiển thị tuỳ chọn hiện được chọn và một nhãn nếu bạn đã cung cấp tuỳ chọn. (I879de)
  • SwipeToDismissBoxState đã được tái cấu trúc để giới hạn phạm vi từ ExperimentalWearMaterialApi đến Modifier.swipeableSwipeableState, hiện đang được sử dụng nội bộ. SwipeToDismissBoxState hiện có các thành viên currentValue, targetValue, isAnimationRunningsnapTo để hỗ trợ các trường hợp sử dụng phổ biến. Vui lòng cho chúng tôi biết nếu bạn cần cung cấp thêm bất kỳ thuộc tính nào. Đồng thời đã khắc phục hành vi của SwipeableState trong trường hợp độ lệch vuốt nằm trong lỗi làm tròn của liên kết. (I58302)

Sửa lỗi

  • Đơn giản hoá và sửa lỗi mã để phát hiện xem có cuộn được nội dung ScalingLazyColumn hay không (dùng để quyết định xem chúng ta có hiển thị thanh cuộn hay không) (I7bce0)
  • Đã khắc phục lỗi trên Chỉ báo vị trí khi được sử dụng với nhiều trạng thái và chuyển đổi giữa các trạng thái này (I320b5)
  • Chúng tôi đã cập nhật kiểu chữ/phông chữ chủ đề cho tính năng Compose trong Wear OS mặc định để phù hợp với hướng dẫn mới nhất về trải nghiệm người dùng. Lưu ý: display1 (40.sp) và display2 (34.sp) hiện nhỏ hơn giá trị trước đó và nhiều cập nhật nhỏ khác về chiều cao dòng và khoảng cách dòng đã được thực hiện. (Ie3077)
  • Chúng tôi đã thêm tính năng cản trở SwipeToDismissBox để chuyển động đó chỉ diễn ra khi vuốt nhằm đóng và tuyệt đối không di chuyển theo hướng ngược lại. (Ifdfb9)
  • Chúng tôi đã thay đổi một số giá trị tham số mặc định cho các hàm CircularProgressIndicator để phù hợp với hướng dẫn về trải nghiệm người dùng trên Wear Material Design. Đối với phiên bản Spinner/Indeininterminity, kích thước (40-> 24, dp), indicatorColo (primary->onBackground), độ trong suốt của trackColor (30%-> 10%) và chiều rộng nét (4 -> 3 dp) đã được cập nhật. Đối với phiên bản Progress/Determinate, độ trong suốt của trackColor (30%->10%) đã được cập nhật. (I659cc)
  • Chúng tôi đã cập nhật các tham số điều chỉnh theo tỷ lệ mặc định của ScalingLazyColumn cùng dòng với tham số kỹ thuật mới nhất của Wear Material Design. Rõ ràng điều này dẫn đến việc các trang thông tin bắt đầu được điều chỉnh gần hơn với vị trí trung tâm trang, nhưng lại bị giảm tỷ lệ ở cạnh trang so với trước đây. (Ica8f3)
  • Một số điều chỉnh đối với ScalingLazyColumnDefaults.snapFlingBehavior để cải thiện điểm cuối của ảnh động (If3260)

Phiên bản 1.0.0-alpha18

Ngày 9 tháng 3 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha18, androidx.wear.compose:compose-material:1.0.0-alpha18androidx.wear.compose:compose-navigation:1.0.0-alpha18. Phiên bản 1.0.0-alpha18 bao gồm các thay đổi sau.

Thay đổi API

  • Một số điểm cải thiện cho PositionIndicator: ShowResult được đổi tên thành PositionIndicatorVisibility. Một số cải thiện về hiệu suất để tránh các phép tính toán lại khi không cần thiết (Iaed9d)
  • Cập nhật màu sắc đề xuất cho SplitToggleChip. SplitToggleChip's hiện có nền màu đồng nhất khi được đánh dấu hoặc bỏ đánh dấu với màu của ToggleControl là chỉ báo chính để cho biết thành phần đã được đánh dấu hay chưa. Chúng tôi đã thêm một ToggleDefaults.splitToggleChipColors() mới để hỗ trợ bảng phối màu mới. Chúng tôi cũng đã đơn giản hoá các phương thức toggleChipColors() để xoá splitBackgroundOverlayColor (I7e66e)
  • Chúng tôi đã thêm unadjustedSize vào ScalingLazyListItemInfo vì việc tính toán kích thước mục ban đầu bằng cách sử dụng kích thước điều chỉnh theo tỷ lệ và hệ số tỷ lệ sẽ không an toàn do độ chính xác của toán học độ chính xác đơn. (I54657, b/221079441)
  • Thêm HorizontalPageIndicator. Mã này đại diện cho tổng số trang và một trang đã chọn. Có thể là đường thẳng hoặc đường cong, tuỳ thuộc vào hình dạng của thiết bị. Mã này cũng hỗ trợ hình dạng chỉ báo tuỳ chỉnh, giúp xác định cách trình bày trực quan từng chỉ báo. (Iac898)
  • Chúng tôi đã cập nhật PickerState để có thể cập nhật numberOfOptions. Điều này hỗ trợ các trường hợp sử dụng, chẳng hạn như DatePicker, khi số ngày trong tháng thay đổi theo tháng đã chọn. Thông số hàm khởi tạo cho PickerState đã thay đổi thành initialNumberOfOptions cho phù hợp. (Iad066)
  • Ẩn PositionIndicator khi đó là thanh cuộn không thể cuộn. (Id0a7f)
  • Để đảm bảo tính nhất quán với Scaffold, thành phần Hộp thoại toàn màn hình của chúng tôi hiện hiển thị PositionIndicatorVignette. Chúng tôi cũng đang sử dụng ScalingLazyColumn thay vì Column. Điều này có nghĩa là nội dung Hộp thoại hiện đã có trong ScalingLazyListScope (và thường cần được nằm trong mục { /* content */ }). Hộp thoại hỗ trợ các thông số verticalArrangement tương ứng. (Idea13)
  • Chúng tôi đã đổi tên của thuộc tính toggleIcon ToggleChipSplitToggleChip thành toggleControl để phù hợp hơn với Material Design nhằm giúp các nhà thiết kế và nhà phát triển dễ dàng điều hướng trong API. (If5921, b/220129803)
  • Chúng tôi đã thêm mục nhập mới caption3 vào Hệ thống các kiểu hình giao diện Material Wear. Caption3 là một phông chữ nhỏ được sử dụng cho cách viết dài hơn như văn bản pháp luật. (I74b13, b/220128356)

Sửa lỗi

  • Dừng ảnh động chụp nhanh khi chúng tôi ở đó. (Idb69d)
  • Hoạt ảnh hoá thay đổi trong PositionIndicator. (I94cb9)
  • Dựa trên ý kiến phản hồi về giao diện người dùng/trải nghiệm người dùng, chúng tôi đã thay đổi tính năng autoCentering ScalingLazyColumn để cung cấp đủ không gian nhằm đảm bảo người dùng có thể cuộn hoàn toàn các mục có chỉ mục ScalingLazyListState.initialCenterItemIndex trở lên ở giữa khung nhìn. Tính năng này cho phép các nhà phát triển có thể đặt một hoặc hai mục về mục ban đầu ở vị trí trung tâm khiến người dùng không thể cuộn vào giữa. Điều này có nghĩa là ScalingLazyColumn của autoCenter'ing sẽ không thể cuộn trên initialCenterItemIndex/initialCenterItemScrollOffset (I22ee2)
  • Chúng tôi đã thêm một bản minh hoạ cho Bộ chọn ngày và sửa lỗi trong PickerState mà tại đó initiallySelectedOption không được áp dụng cho đến khi Bộ chọn được hiển thị. (Id0d7e)
  • Để giảm tình trạng cắt bớt các mục ScalingLazyColumn rộng hơn trên màn hình tròn, chúng tôi đã tăng khoảng đệm nội dung mặc định theo chiều ngang từ 8 lên 10 dp. (I0d609)
  • Đảm bảo PositionIndicator được hiển thị khi cuộn. (Ied9a2)

Phiên bản 1.0.0-alpha17

Ngày 23 tháng 2 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha17, androidx.wear.compose:compose-material:1.0.0-alpha17androidx.wear.compose:compose-navigation:1.0.0-alpha17. Phiên bản 1.0.0-alpha17 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã thêm tính năng hỗ trợ chụp nhanh mà bạn có thể sử dụng với ScalingLazyColumn. Đặt flingBehavior = ScalingLazyColumnDefaults.flingWithSnapBehavior(state) để bật tính năng hỗ trợ chụp nhanh. (I068d3, b/217377069)
  • Chúng tôi đã thêm các bản minh hoạ cho Bộ chọn dùng để chọn thời gian theo định dạng 24 giờ hoặc 12 giờ. (Ie5552)

Thay đổi API

  • Khắc phục sự cố với phông chữ và kiểu TimeText tuỳ chỉnh trên thiết bị hình vuông (Iea76e)
  • ScalingLazyListLayoutInfo hiện có reverseLayout, viewportSize và các thuộc tính hướng khớp với các thuộc tính đó từ LazyListLayoutInfo (I4f258, b/217917020)
  • Giờ đây, ScalingLazyColumn có một thuộc tính userScrollEnabled khớp với thuộc tính đó từ LazyList (I164d0, b/217912513)
  • Theo mặc định, bộ chọn hiện có độ dốc có màu biến đổi trên đầu và cuối (Iab92a)

Sửa lỗi

  • Chúng tôi đã sửa đổi ScalingLazyColumn để mã này không còn lấp đầy toàn bộ không gian trong thành phần mẹ của nó. Thay vào đó, mã sẽ lấy kích thước từ kích thước của các nội dung của mã. Điều này nhất quán với hoạt động của LazyColumn. Nếu bạn muốn khôi phục hoạt động cũ, hãy chuyển Modifier.fillMaxWidth()/width()/widthIn() vào ScalingLazyColumn (I51bf8)
  • Chúng tôi đã cải thiện thông báo ngoại lệ trong SwipeDismissableNavHost.kt được kích hoạt nếu ngăn xếp lùi điều hướng trống. (I1b1dc)

Phiên bản 1.0.0-alpha16

Ngày 9 tháng 2 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha16, androidx.wear.compose:compose-material:1.0.0-alpha16androidx.wear.compose:compose-navigation:1.0.0-alpha16. Phiên bản 1.0.0-alpha16 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm CircularProgressIndicator. Chỉ báo tiến trình hiển thị thời lượng của quy trình hoặc thời gian chờ không xác định. Hỗ trợ một khoảng trống (vết cắt) cho TimeText hoặc các thành phần khác nếu được sử dụng toàn màn hình. (Iab8da)

Thay đổi API

  • Bộ chọn hiện có thông số flingBehavior. Giá trị mặc định làm cho các bộ chọn điều chỉnh theo tuỳ chọn gần nhất khi cuộn/hất. (I09000)
  • API số nguyên bổ sung cho InlineSlider và Stepper (I1b5d6)

Sửa lỗi

  • Chúng tôi đã thay đổi initialCenterItemIndex mặc định cho ScalingLazyListState từ 0->1. Điều này có nghĩa là trừ khi bị ghi đè trên cấu trúc trạng thái với ScalingLazyListState.rememberScalingLazyListState(initialCenterItemIndex =), mục danh sách thứ hai (chỉ mục == 1) sẽ được đặt ở giữa khung nhìn khi khởi động và mục đầu tiên (chỉ mục == 0) ) sẽ được đặt trước mục đó. Điều này cho phép hiệu ứng hình ảnh mặc định tốt hơn ngay lập tức vì hầu hết khung nhìn sẽ được lấp đầy với các mục danh sách. (I0c623, b/217344252)
  • Chúng tôi đã giảm giá trị mặc định ScalingLazyColumn extraPadding được cung cấp để đảm bảo có nhiều mục trong danh sách được sử dụng (ngay cả khi chúng tôi điều chỉnh tỷ lệ kích thước một số mục trong số đó) từ 10% xuống còn 5%. Điều này sẽ tránh việc soạn các mục danh sách bổ sung có thể không xuất hiện trong khung nhìn. Nếu đang sử dụng scalingParams không chuẩn (ví dụ: tăng tỷ lệ cực cao), nhà phát triển có thể điều chỉnh khoảng đệm bổ sung bằng cách sử dụng viewportVerticalOffsetResolver. (I76be4)
  • Khắc phục vấn đề TimeText trên nhiều dòng trên thiết bị hình vuông (Ibd3fb)
  • Chúng tôi đã sửa đổi ScalingLazyColumn để mã này không còn lấp đầy toàn bộ không gian trong thành phần mẹ của nó. Thay vào đó, mã sẽ lấy kích thước từ kích thước của các nội dung của mã. Điều này phù hợp với hoạt động của LazyColumn. Nếu bạn muốn khôi phục hoạt động cũ, hãy chuyển Modifier.fillMaxSize() vào ScalingLazyColumn – LƯU Ý: Thay đổi này chưa hoàn chỉnh và sẽ được giải quyết trong thay đổi tiếp theo trong bản phát hành alpha tiếp theo. (I3cbfa)

Phiên bản 1.0.0-alpha15

Ngày 26 tháng 1 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha15, androidx.wear.compose:compose-material:1.0.0-alpha15androidx.wear.compose:compose-navigation:1.0.0-alpha15. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.

Thay đổi API

  • Chúng tôi đã thêm thuộc tính mới autoCentering vào ScalingLazyColumn. Khi là giá trị true (mặc định), thuộc tính này sẽ đảm bảo rằng người dùng có thể cuộn tất cả các mục, bao gồm cả mục đầu tiên và cuối cùng để các mục đó có thể hiển thị ở giữa khung nhìn danh sách. Lưu ý rằng nếu sử dụng tính năng tự động căn giữa, bạn có thể muốn đặt khoảng đệm nội dung dọc thành 0.dp. Nếu bạn cung cấp cả tính năng tự động căn giữa và khoảng đệm nội dung dọc, thì cả hai nội dung này đều sẽ có thêm dung lượng lưu trữ trước mục đầu tiên và sau mục cuối cùng trong danh sách, cho phép người dùng cuộn nhiều nội dung hơn nữa. (I2a282, b/214922490)
  • Chúng tôi đã thêm thành phần Dialog cho phép bất kỳ thành phần kết hợp nào kích hoạt hộp thoại toàn màn hình nằm trên nội dung khác. Khi được hiển thị, hộp thoại hỗ trợ vuốt để đóng và hiển thị nội dung của thành phần mẹ ở chế độ nền trong khi thao tác cử chỉ vuốt. Nội dung hộp thoại dự kiến sẽ là Alert hoặc Confirmation (đã đổi tên từ các thành phần trước đó AlertDialogConfirmationDialog) – Alert, ConfirmationDialog đều nằm trong gói androidx.wear.compose.material.dialog. Bạn có thể sử dụng Cảnh báo và Xác nhận làm đích đến điều hướng. Ngoài ra, chúng tôi đã thêm ColumnScope vào thông số Cảnh báo và Xác nhận nếu cần. (Ia9014)
  • Chúng tôi đã xoá onSurfaceVariant2 khỏi Compose cho Màu giao diện WearOS Material và thay thế các mục đích sử dụng trong thư viện bằng onSurfaceVariant. (Icd592)
  • Thêm một phương thức để chương trình chọn một tuỳ chọn trên PickerState, giờ đây, bạn cũng có thể chỉ định tuỳ chọn đã chọn ban đầu khi tạo PickerState. (I92bdf)
  • Chúng tôi đã bổ sung tính năng hỗ trợ để tuỳ chỉnh hoạt động hất của ScalingLazyColumn. (I1ad2e, b/208842968)
  • Chúng tôi đã thêm NavController.currentBackStackEntryAsState() vào thư viện Wear.Compose.Navigation. (If9028, b/212739653)
  • Thêm Modifier.onRotaryScrollEvent()Modifier.onPreRotaryScrollEvent() cho các thiết bị Wear có nút bên xoay. (I18bf5, b/210748686)

Phiên bản 1.0.0-alpha14

Ngày 12 tháng 1 năm 2022

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha14, androidx.wear.compose:compose-material:1.0.0-alpha14androidx.wear.compose:compose-navigation:1.0.0-alpha14. Phiên bản 1.0.0-alpha14 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã thêm một số phương thức vào ScalingLazyListState để cho phép nhà phát triển kiểm soát việc cuộn tới các mục danh sách cụ thể cũng như đặt mục danh sách ban đầu và độ dời.

    Trong lần thay đổi này, chúng tôi cũng đã sửa đổi ScalingLazyList để danh sách này hướng quanh tâm của khung nhìn của ScalingLazyList thay vì vị trí bắt đầu của khung nhìn.

    Một thuộc tính mới anchorType: ScalingLazyListAnchorType = ScalingLazyListAnchorType.ItemCenter đã được thêm vào ScalingLazyList để kiểm soát xem có phải căn giữa (ScalingLazyListAnchorType.ItemCenter) hoặc Edge (ScalingLazyListAnchorType.ItemStart) với đường tâm của khung nhìn hay không.

    Do đó, ScalingLazyListItemInfo.offsetScalingLazyListItemInfo.adjustedOffset đã thay đổi và hiện sẽ phản ánh độ bù trừ của mục đối với cả vị trí của mục danh sách và anchorType của danh sách. Ví dụ: đối với ScalingLazyColumnanchorType của ItemCenter và một mục danh sách được đặt ở vị trí chính giữa trên đường tâm của khung nhìn, độ bù trừ sẽ là 0.

    Các phương thức mới là scrollTo, animatedScrollTo, centerItemIndexcenterItemOffset. (I61b61)

  • Chúng tôi đã thêm một trình xử lý nút quay lại vào SwipeDismissableNavHost để thao tác nhấn vào nút quay lại sẽ chuyển về cấp trước trong hệ thống phân cấp điều hướng. (I5b086, b/210205624)

Phiên bản 1.0.0-alpha13

Ngày 15 tháng 12 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha13, androidx.wear.compose:compose-material:1.0.0-alpha13androidx.wear.compose:compose-navigation:1.0.0-alpha13. Phiên bản 1.0.0-alpha13 bao gồm các thay đổi sau.

Thay đổi API

  • Chúng tôi đã đặt RangeIcons trong nội bộ (được InlineSliderStepper tham chiếu nội bộ). (I927ec)

Sửa lỗi

  • Khắc phục vấn đề trong đó SwipeDismissableNavHost thêm một đích đến vào hệ phân cấp Compose trước khi đạt đến trạng thái Vòng đời CREATED, dẫn đến IllegalStateException. Việc sửa lỗi này là điều kiện tiên quyết để cập nhật phần phụ thuộc trên navigation-compose thành 2.4.0-beta02 và nhiều nơi khác. (I40a2b, b/207328687)

  • Thêm lớp enum Đối tượng có thể vẽ để có các tài nguyên có thể vẽ trong thư viện Wear Compose để không cần truy vấn nữa. Điều này khắc phục lỗi đối tượng có thể vẽ của thư viện bị xoá khi minifyEnabled=true hoặc shrinkResources=true). (Ib2a98)

  • Thêm thử nghiệm cho Stepper trong Wear Compose (I2d03a)

  • Thêm mẫu cho SwipeDismissableNavHost trong Điều hướng Wear Compose. (I85f06)

Phiên bản 1.0.0-alpha12

Ngày 1 tháng 12 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha12, androidx.wear.compose:compose-material:1.0.0-alpha12androidx.wear.compose:compose-navigation:1.0.0-alpha12. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã thêm thành phần Stepper cho phép người dùng lựa chọn trong một phạm vi các giá trị. Stepper là một trình điều khiển toàn màn hình, có các nút tăng và giảm ở trên cùng và dưới cùng và một khe ở giữa (dự kiến sẽ nhận được một Khối hoặc Văn bản). Bạn có thể tuỳ chỉnh các biểu tượng nút nếu cần. (I625fe)

  • Chúng tôi đã bổ sung 2 thành phần kết hợp mới để hiển thị hộp thoại: AlertDialog chờ phản hồi của người dùng, đồng thời hiển thị tiêu đề, biểu tượng, thông báo và a) 2 nút cho các lựa chọn tích cực/tiêu cực đơn giản hoặc b) khối xếp chồng theo chiều dọc hoặc khối bật/tắt để có lựa chọn linh hoạt hơn, ConfirmationDialog hiển thị xác nhận với thời gian chờ. Hộp thoại đơn giản này có các ô cho tiêu đề và biểu tượng (ảnh động). (Ic2cf8)

Thay đổi API

  • Thêm đơn vị (mili giây) vào giá trị thời lượng hộp thoại đề xuất. (I09b48)

Phiên bản 1.0.0-alpha11

Ngày 17 tháng 11 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha11, androidx.wear.compose:compose-material:1.0.0-alpha11androidx.wear.compose:compose-navigation:1.0.0-alpha11. Phiên bản 1.0.0-alpha11 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã thêm một thành phần bộ chọn cho phép người dùng chọn một mục trong danh sách cuộn. Theo mặc định, danh sách các mục có thể chọn được lặp lại 'vô hạn' ở cả hai hướng, để mang lại ấn tượng về một hình trụ xoay từ mặt bên. Hai tính năng sẽ được thêm vào các bản phát hành sau này: chụp nhanh một giá trị sau khi vuốt/hất; thêm một hàm vào PickerState để đặt/cuộn với giá trị hiện tại. (I6461b)

Thay đổi API

  • Thêm ScalingLazyItemScope và một số công cụ sửa đổi mới fillParentMaxSize/fillParentMaxWidth/fillParentMaxHeight để cho phép đổi kích thước các mục trong danh sách dựa trên kích thước của vùng chứa phần thành phần mẹ. Bạn có thể đặt các mục thành lấp đầy toàn bộ hoặc một phân đoạn kích thước thành phần mẹ. Thao tác này sẽ hiển thị chức năng đã có trong LazyRow/Column (I4612f)
  • Thêm tuỳ chọn hỗ trợ cho ScalingLazyColumn để cho phép các mục có khoá. Đồng thời thêm các phương thức tiện lợi để cho phép thêm các mục từ Mảng và Danh sách. (Ic1f89)

Sửa lỗi

  • Ví dụ khác về TimeText (I8cb64)

Phiên bản 1.0.0-alpha10

Ngày 3 tháng 11 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha10, androidx.wear.compose:compose-material:1.0.0-alpha10androidx.wear.compose:compose-navigation: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 một InlineSlider cho Wear Compose. InlineSlider cho phép người dùng lựa chọn trong một phạm vi các giá trị. Phạm vi các lựa chọn được hiển thị dưới dạng thanh, từ giá trị tối thiểu đến tối đa của phạm vi từ đó người dùng có thể chọn một giá trị. (If0148)

  • Hãy xem Compose mới cho Lớp học lập trình WearOS!

Thay đổi API

  • Macrobenchmark hiện có minSdkVersion23. (If2655)

Sửa lỗi

  • Cập nhật cách xử lý quá trình chuyển đổi trong SwipeDismissableNavHost trong một SideEffect (I04994, b/202863359)
  • Cập nhật cách xử lý quá trình chuyển đổi trong SwipeDismissableNavHost (I1cbe0, b/202863359)

Phiên bản 1.0.0-alpha09

Ngày 27 tháng 10 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha09, androidx.wear.compose:compose-material:1.0.0-alpha09androidx.wear.compose:compose-navigation: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 đã ra mắt bản dùng thử cho nhà phát triển với Compose trên Wear OS. Hãy xem bài đăng trên blog của chúng tôi để đánh giá các thành phần kết hợp chính và đường liên kết đến các tài nguyên khác để bắt đầu sử dụng.

Thay đổi API

  • Chúng tôi đã bổ sung tính năng hỗ trợ cho các nhà phát triển để họ có thể tuỳ chỉnh tất cả màu sắc trong giao diện màu sắc Wear Material Design. (I4759b, b/199754668)

Sửa lỗi

  • Thêm các mẫu SwipeToDismissBox vẫn tồn tại ở trạng thái này (Ibaffe)
  • Thêm đường liên kết đến hướng dẫn developer.android.com từ KDocs xho CurvedText, TimeText và SwipeToDismissBox. (I399d4)
  • Giờ đây, SwipeDismissableNavHost sẽ gửi nếu không có đích đến hiện tại (cho biết rằng NavGraph chưa được xây dựng bằng hàm số hiệu dụng wear.compose.navigation.composable ) (I91403)
  • Thêm tài liệu và ví dụ khác về cách sử dụng nguồn thời gian trong TimeText (I4f6f0)

Phiên bản 1.0.0-alpha08

Ngày 13 tháng 10 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha08, androidx.wear.compose:compose-material:1.0.0-alpha08androidx.wear.compose:compose-navigation:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Thay đổi API

  • Chúng tôi đã đổi tên các thuộc tính body của AppCard và TitleCard thành content, đồng thời chuyển chúng vào cuối danh sách thuộc tính để bạn có thể cung cấp các thuộc tính đó dưới dạng một biểu thức lambda tạo vệt. Đồng thời, đổi tên bodyColor thành contentColor để đảm bảo tính nhất quán với tên khe mới. (I57e78)

Sửa lỗi

  • Thêm đường liên kết đến developer.android.com guides từ KDocs cho nút, thẻ, khối, giao diện, chỉ báo vị trí và các thành phần cột tải lười theo tỷ lệ. (I22428)
  • Sửa lỗi WearOS SwipeToDismissBox đôi khi không xử lý các thao tác vuốt. (I9387e)
  • Thêm mẫu cho Button, CompactButton, Chip, CompactChip, AppCard, TitleCard, ToggleButton, ToggleChip, SplitToggleChip (Iddc15)
  • Thêm các thử nghiệm hiệu suất của microbenchmark trên Thẻ, Khối, ToggleChip, TimeText và ScalingLazyColumn. (If2fe9)

Phiên bản 1.0.0-alpha07

Ngày 29 tháng 9 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha07, androidx.wear.compose:compose-material:1.0.0-alpha07androidx.wear.compose:compose-navigation: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 thành phần CurvedText trong Material, một thành phần cho phép các nhà phát triển dễ dàng viết văn bản cong theo đường cong của một vòng tròn (thường ở cạnh màn hình tròn). (I19593)

Thay đổi API

  • Thêm thử nghiệm cho TimeText (Idfead)
  • Chuyển đổi ArcPaddingValues thành một giao diện. (Iecd4c)
  • Thêm ảnh động vào SwipeToDismissBox (I9ad1b)
  • Thêm thông số hasBackground to the SwipeToDismissBox API để có thể tắt cử chỉ vuốt khi không có nội dung nền nào để hiển thị. (I313d8)
  • rememberNavController() hiện có một tập hợp các phiên bản Navigator tuỳ chọn, được thêm vào NavController trả về nhằm hỗ trợ tốt hơn cho các Trình điều hướng tuỳ chọn, chẳng hạn như các Trình điều hướng trong Tài liệu điều hướng đi kèm. (I4619e)
  • Tham chiếu NamedNavArgument từ navigation-common và xoá bản sao từ wear.compose.navigation. (I43af6)

Sửa lỗi

  • Khắc phục quy trình thử nghiệm không chính xác CurvedRow trên các thiết bị nhỏ hơn. (If7941)
  • Khắc phục sự cố nhấp nháy trên CurvedRow khi nội dung cập nhật và đảm bảo đo lường lại hàng cong (Ie4e06)
  • ChipDefaults.gradientBackgroundChipColors() đã được cập nhật phù hợp với các thay đổi về Thông số kỹ thuật trải nghiệm người dùng. Giờ đây, độ dốc bắt đầu bằng MaterialTheme.colors.primary với alpha 32,5% và kết thúc bằng MaterialTheme.colors.surface với alpha @ 0% trên nền Material Theme.colors.Surface @ 75% alpha. (Id1548)
  • Chúng tôi đã cập nhật màu sắc cho ToggleChips khi ở trạng thái đã chọn cho phù hợp với hướng dẫn Thông số kỹ thuật trải nghiệm người dùng của Wear Material Design gần đây nhất. Sau khi chọn ToggleChips, bạn sẽ có đối tượng nút có màu biến đổi tuyến tính (gradient) từ MaterialTheme.color.surface @ 0% alpha, ở trên cùng bên trái, sang MaterialTheme.color.primary @ 32% alpha, ở dưới cùng bên phải, trên nền của MaterialTheme.color.surface @ 75% alpha. Điều này dẫn đến sự khác biệt nhỏ giữa trạng thái được đánh dấu và đã bỏ đánh dấu của ToggleChip. (Idd40b)

Phiên bản 1.0.0-alpha06

Ngày 15 tháng 9 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha06, androidx.wear.compose:compose-material:1.0.0-alpha06androidx.wear.compose:compose-navigation: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 Scaffold là một ứng dụng có thể tổng hợp cấp cao nhất có cấu trúc để xử lý vị trí PositionIndicators (như Cuộn hoặc Âm lượng), một vùng ở đầu màn hình để hiển thị thời gian và trạng thái của ứng dụng, đồng thời cũng hỗ trợ làm mờ nét ảnh để làm mờ màn hình trên cùng và cạnh dưới cho nội dung có thể cuộn. Vùng chính của Scaffold là nơi đặt nội dung ứng dụng. (I5e0bf)
  • Thêm tuỳ chọn triển khai TimeText cho Wear Compose (I5654c)

Thư viện Điều hướng Wear Compose

  • Chúng tôi đã thêm bản phát hành đầu tiên của thư viện Điều hướng Wear Compose. Thư viện này giúp tích hợp giữa các thư viện Điều hướng Wear Compose và Androidx. Công cụ này cung cấp một phương thức đơn giản để điều hướng giữa các hàm có khả năng kết hợp làm các đích đến trong ứng dụng của bạn.

  • Bản phát hành đầu tiên này cung cấp:

    • Một thành phần kết hợp SwipeDismissableNavHost lưu trữ biểu đồ điều hướng và cung cấp thao tác điều hướng ngược qua cử chỉ vuốt
    • Tiện ích mở rộng NavGraphBuilder.composable hỗ trợ tạo biểu đồ điều hướng
    • rememberSwipeDismissableNavController() để cho phép đưa trạng thái lên trên
  • Ví dụ về cách sử dụng khi chúng tôi tạo hai màn hình và điều hướng giữa các màn hình đó:

    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "start"
    ) {
        composable("start") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Button(onClick = { navController.navigate("next") }) {
                    Text("Go")
                }
            }
        }
        composable("next") {
            Column(
                horizontalAlignment = Alignment.CenterHorizontally,
                verticalArrangement = Arrangement.Center,
                modifier = Modifier.fillMaxSize(),
            ) {
                Text("Swipe to go back")
            }
        }
    }
    
  • Điều hướng Wear Compose được gói dưới dạng một thư viện riêng biệt để người dùng không cần cài đặt các ứng dụng WearCompose đơn giản triển khai chức năng điều hướng được cuộn thủ công mà không phụ thuộc vào thư viện Điều hướng Androidx.

Thay đổi API

  • Cập nhật SwipeDismissableNavHost để hỗ trợ rememberSaveable bằng cách đặt thông tin nhận dạng chính cho nền và nội dung (I746fd)
  • Chúng tôi đã thêm một trình chuyển đổi PositionIndicator có thể xử lý LazyListState (I21b88)
  • Cập nhật SwipeToDismissBox để hỗ trợ rememberSaveable (Ie728b)
  • Chúng tôi đã thêm tính năng hỗ trợ reverseLayout vào ScalingLazyColumn. Điều này cho phép đảo ngược hướng cuộn và bố cục (I9e2fc)
  • Ngừng sử dụng performGestureGestureScope. Hai mã lệnh này đã được thay thế bằng performTouchInputTouchInjectionScope. (Ia5f3f, b/190493367)
  • Chúng tôi đã đổi tên VignetteValue thành VignettePosition và VignetteValue.Both thành VignettePosition.TopAndBottom. (I57ad7)
  • Chúng tôi đã đổi tên ScalingLazyColumnState thành ScalingLazyListState, ScalingLazyColumnItemInfo thành ScalingLazyListItemInfo, ScalingLazyColumnLayoutInfo thành ScalingLazyListLayoutInfo và ScalingLazyColumnScope thành ScalingLazyListScope trong trường hợp chúng tôi quyết định thêm một phương thức triển khai ScalingLazyRow trong tương lai. (I22734)

Sửa lỗi

  • Cập nhật tài liệu CompactChip để mô tả những việc sẽ xảy ra nếu không cung cấp cả biểu tượng và nhãn. (I4ba88)
  • Chúng tôi đã thực hiện một số điều chỉnh đối với các thành phần thẻ Wear. (I6b3d0)
    1. Khoảng cách TitleCard giữa Title và Body đã giảm từ 8.dp xuống 2.dp.
    2. Thay đổi phông chữ của tiêu đề TitleCard từ Body thành title3.
    3. Thay đổi đối tượng nút có màu biến đổi tuyến tính (gradient) của nền thẻ để nền có màu tối hơn.

Phiên bản 1.0.0-alpha05

Ngày 1 tháng 9 năm 2021

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

Thay đổi API

  • Đánh dấu ArcPaddingValues là @Stable (I57deb)
  • Giờ đây, ScalingLazyColumnState triển khai giao diện ScrollableState, cho phép các nhà phát triển có quyền truy cập có lập trình để cuộn thành phần. (I47dbc)

Sửa lỗi

  • Chúng tôi đã giảm khoảng cách giữa Biểu tượng và Văn bản trong Chip và ToggleChip để chúng phù hợp với các cập nhật của Thông số kỹ thuật trải nghiệm người dùng. (I83802)

Phiên bản 1.0.0-alpha04

Ngày 18 tháng 8 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha04androidx.wear.compose:compose-material: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

  • Thêm SwipeToDismissBox và công cụ sửa đổi có thể vuốt có thể sử dụng để hỗ trợ cử chỉ vuốt từ trái sang phải để đóng. Mặc dù độc lập với các thành phần điều hướng, nhưng bạn cần dùng thuộc tính này để thoát khỏi một màn hình và chuyển đến màn hình khác. Thêm các thử nghiệm tích hợp vào thao tác vuốt để đóng. (I7bbaa)
  • Chúng tôi đã thêm giao diện ScalingLazyColumnItemInfo và ScalingLazyColumnLayoutInfo vào lớp ScalingLazyColumnState để các nhà phát triển biết được vị trí và kích thước thực tế của các mục trong ScalingLazyColumn sau khi áp dụng tỷ lệ. Chúng tôi cũng đã sửa lỗi về cách tính tỷ lệ khi tính toán khoảng đệm nội dung 'hàng đầu' được áp dụng cho ScalingLazyColumn. (I27c07)

Thay đổi API

  • Thêm lớp CurvedTextStyle để chỉ định các tuỳ chọn kiểu văn bản cong. Tương tự như TextStyle, nhưng hiện chỉ hỗ trợ màu, fontSize và nền. Các tuỳ chọn tạo kiểu khác sẽ được thêm vào trong tương lai. (I96ac3)
  • Chúng tôi đã thêm giao diện ScalingLazyColumnItemInfo và ScalingLazyColumnLayoutInfo vào lớp ScalingLazyColumnState để các nhà phát triển biết được vị trí và kích thước thực tế của các mục trong ScalingLazyColumn sau khi áp dụng tỷ lệ. Chúng tôi cũng đã sửa lỗi về cách tính tỷ lệ khi tính toán khoảng đệm nội dung 'hàng đầu' được áp dụng cho ScalingLazyColumn. (I27c07)
  • Thêm @ExperimentalWearMaterialApi vào SwipeDismissTarget enum, một phần của API SwipeToDismissBox. (I48b5e)

Sửa lỗi

  • Thêm Material thử nghiệm cho SwipeToDismissBox (I9febc)

Phiên bản 1.0.0-alpha03

Ngày 4 tháng 8 năm 2021

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

Thay đổi API

  • Thêm thành phần CurvedText, cho phép các nhà phát triển dễ dàng viết văn bản sau đường cong vòng tròn (thường là ở cạnh màn hình tròn) (Id1267)
  • Chúng tôi đã đổi tên CardDefaults.imageBackgroundPainter() thành CardDefaults.imageWithScrimBackgroundPainter() để làm rõ rằng hình nền có màn nền được vẽ trên đó. (I53206)
  • Thêm thành phần ScalingLazyColumn cung cấp một thành phần danh sách cho Wear Material để mang đến một chế độ xem hình mắt cá với nội dung danh sách giảm kích thước và trong suốt khi chúng hiển thị theo tỷ lệ cạnh của thành phần đó. (I7070c)

Sửa lỗi

  • Chúng tôi đã thay đổi màu mặc định của nội dung appName trong AppCard để đáp ứng bản cập nhật Thông số kỹ thuật trải nghiệm người dùng. Màu mặc định cho appName hiện là MaterialTheme.colors.onSurfaceVariant. Ngoài ra, chúng tôi đã thêm phần mô tả tài liệu về thông số bị thiếu cho khe tiêu đề. (Ic4ad1)

Phiên bản 1.0.0-alpha02

Ngày 21 tháng 7 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha02androidx.wear.compose:compose-material: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

  • Thêm một lớp CurvedRow mới để sắp xếp bố cục các thành phần kết hợp trong một ARC (I29941)
  • Thêm loại thẻ mới để sử dụng trong các ứng dụng (TitleCard), đồng thời thêm tính năng hỗ trợ cho việc sử dụng hình ảnh làm nền cho Thẻ để nhấn mạnh nội dung của thẻ (I53b0f)

Thay đổi API

  • Thêm tính năng chọn hỗ trợ cho căn chỉnh theo bán kính vào CurvedRow (tương tự như cách căn chỉnh dọc trong một hàng) (Id9de5)
  • Thêm một lớp CurvedRow mới để bố trí các thành phần kết hợp trong một ARC (I29941)
  • Thêm loại thẻ mới để sử dụng trong các ứng dụng (TitleCard), đồng thời thêm tính năng hỗ trợ cho việc sử dụng hình ảnh làm nền cho Thẻ để nhấn mạnh nội dung của thẻ (I53b0f)
  • Thêm biểu tượng bật/tắt (hộp kiểm, công tắc và nút chọn) vào ToggleChipDefaults để giúp các nhà phát triển dễ dàng định cấu hình ToggleChip và SplitToggleChips (I7b639)
  • Khoảng đệm nội dung bắt đầu và kết thúc cho Chip đã được cập nhật để nhất quán là 14.dp bất kể Chip đó có biểu tượng hay không (trước đây là 12.dp nếu có biểu tượng và 14.dp nếu không có) (I34c86)

Sửa lỗi

  • Thêm thử nghiệm cho CurvedRow (I93cdb)
  • Nhập các phần phụ thuộc của Wear Compose vào Compose 1.0.0-rc01. (Ie6bc9)
  • Thay đổi việc xử lý hoạt động vẽ hình nền trong Card và Chip để hình ảnh được Cắt thay vì bị kéo giãn nhằm duy trì tỷ lệ hình ảnh. (I29b41)
  • Thêm các bản minh hoạ khác và thử nghiệm tích hợp cho Button và ToggleButton. (5e27ed2)
  • Thêm các thử nghiệm Chip khác để phủ màu nội dung cho imageBackgroundChips (Ia9183)

Phiên bản 1.0.0-alpha01

Ngày 1 tháng 7 năm 2021

Phát hành androidx.wear.compose:compose-foundation:1.0.0-alpha01androidx.wear.compose:compose-material:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 chứa những cam kết này.

Tính năng mới

Wear Compose là một thư viện dựa trên Kotlin, dựa trên Compose, hỗ trợ Wear Material Design, một tiện ích mở rộng của Material Design cho các thiết bị đeo WearOS. Bản phát hành alpha đầu tiên này có các hoạt động triển khai chức năng ban đầu của:

  • Giao diện của Material - định cấu hình màu, kiểu chữ và hình dạng nhất quán giữa các thành phần kết hợp được sử dụng từ thư viện này.
  • Khối, CompactChip – các khối có hình dạng sân vận động và có các biến thể để lấy biểu tượng, nhãn và nội dung nhãn phụ.
  • - ToggleChip, SplitToggleChip - một loại khối chuyên dụng có chứa một khe cho biểu tượng bật/tắt hai trạng thái, chẳng hạn như nút chọn hoặc hộp đánh dấu. Ngoài ra, SplitToggleChip có hai vùng có thể nhấn vào, một vùng có thể nhấp vào và một vùng có thể chuyển đổi.
  • Nút, CompactButton - các nút có hình tròn, có một khe nội dung duy nhất cho một biểu tượng hoặc văn bản tối thiểu (tối đa 3 ký tự).
  • ToggleButton - nút bật hoặc tắt một hành động, với một khe duy nhất cho biểu tượng hoặc văn bản tối thiểu (tối đa 3 ký tự).
  • Thẻ, AppCard – hình chữ nhật có các góc tròn, cung cấp các khe cho nội dung như biểu tượng ứng dụng, thời gian, tên và nội dung.

Các bản phát hành trong tương lai sẽ mở rộng phạm vi hỗ trợ của bộ Tiện ích bổ sung các bộ chọn Wear Material Design, thanh trượt, danh sách, chỉ báo trang, hộp thoại, chỉ báo thao tác cuộn, thông báo nhanh và nhiều tiện ích khác.

Ngoài ra, chúng tôi cũng cung cấp dịch vụ hỗ trợ cho các tính năng khác dành cho thiết bị đeo, chẳng hạn như bố cục và văn bản cong, cũng như thiết lập ban đầu để giúp các nhà phát triển dễ dàng xây dựng ứng dụng/lớp phủ cho Thiết bị đeo.

Wear Compose Material được thiết kế theo nguyên tắc tương tự như Compose Material, mặc dù đối tượng mục tiêu là các thiết bị đeo. Bạn nên sử dụng thư viện Wear Compose Material thay cho thư viện Compose Material khi thiết kế cho thiết bị đeo.

Hai thư viện “Material” nên được xem là loại trừ lẫn nhau và không được kết hợp trong cùng một ứng dụng. Nếu các nhà phát triển thấy họ có sử dụng thư viện Compose Material trong các phần phụ thuộc của họ, thì điều này cho thấy rằng a) có các thành phần bị thiếu trong thư viện Wear Compose Material, vui lòng cho chúng tôi biết nội dung bạn cần hoặc b) bạn đang sử dụng một thành phần mà chúng tôi đề xuất không nên sử dụng trên thiết bị đeo.