Hiệu ứng chuyển động trong Compose
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(Xem tài liệu tham khảo API cho tất cả gói Compose)
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 13 tháng 11 năm 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
Cấu trúc
Compose là sự kết hợp của 7 mã nhận dạng nhóm Maven trong androidx
. Mỗi nhóm chứa một tập con chức năng mục tiêu, và mỗi tập con có một bộ ghi chú phát hành riêng.
Bảng này giải thích các nhóm và đường liên kết đến từng bộ ghi chú phát hành.
Nhóm | Mô tả |
---|---|
compose.animation | Tạo ảnh động trong các ứng dụng Jetpack Compose để làm phong phú trải nghiệm người dùng. |
compose.compiler | Biến đổi các hàm @Composable và hỗ trợ hoạt động tối ưu hoá bằng trình biên dịch bổ trợ Kotlin. |
compose.foundation | Viết ứng dụng Jetpack Compose bằng các khối dựng có sẵn, cũng như mở rộng nền tảng để xây dựng các thành phần của hệ thống thiết kế của riêng bạn. |
compose.material | Xây dựng các giao diện người dùng Jetpack Compose bằng các thành phần Material Design có sẵn. Đây là điểm truy cập cấp cao hơn của Compose, được thiết kế nhằm cung cấp các thành phần theo như mô tả trên trang web www.material.io. |
compose.material3 | Xây dựng giao diện người dùng Jetpack Compose bằng các thành phần Material Design 3, phiên bản cải tiến tiếp theo của Material Design. Material 3 có khả năng tuỳ chỉnh giao diện cập nhật, cũng như các thành phần và tính năng cá nhân hoá Material You, chẳng hạn như màu động. Công cụ này được thiết kế để phù hợp với phong cách đồ hoạ và giao diện người dùng hệ thống mới trên Android 12. |
compose.runtime | Các khối dựng cơ bản cho mô hình lập trình và tính năng quản lý trạng thái của Compose, đồng thời là thời gian chạy cốt lõi để trình biên dịch bổ trợ Compose nhắm đến. |
compose.ui | Các thành phần cơ bản của giao diện người dùng Compose cần thiết để tương tác với thiết bị, bao gồm cả bố cục, bản vẽ và phương thức nhập. |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên Compose, 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.compose.animation:animation:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Để 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.
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.8
Phiên bản 1.8.0-alpha06
Ngày 13 tháng 11 năm 2024
Phát hành androidx.compose.animation:animation-*:1.8.0-alpha06
. Phiên bản 1.8.0-alpha06 bao gồm các thay đổi sau.
Thay đổi về API
- Cập nhật tên tham số
sharedElement
từstate
thànhsharedContentState
để đảm bảo tính nhất quán trên các API phần tử dùng chung. (I5694c, b/375351468) - Bộ API
AnimatedImageVector
hiện đã ổn định. (I7174b, b/261436267)
Phiên bản 1.8.0-alpha05
Ngày 30 tháng 10 năm 2024
Phát hành androidx.compose.animation:animation-*:1.8.0-alpha05
. Phiên bản 1.8.0-alpha05 bao gồm các thay đổi sau.
Tính năng mới
- Tính năng xem trước hiện được hỗ trợ trong
LazyGrid
. Điều này bao gồm việc phân biệt lượt truyền dữ liệu trước khi xem xét với lượt truyền dữ liệu tiếp cận trong thao tác cuộn, thành phần/loại bỏ mục và ảnh động mục, đồng thời sử dụng lượt truyền dữ liệu trước khi xem xét cho nguồn đáng tin cậy để cuộn và mục tiêu ảnh động mục.
Sửa lỗi
- Cập nhật trạng thái nội bộ cho phép biến đổi kích thước của
AnimatedContent
khi hiệu ứng chuyển đổi được tạo lại. Điều này đảm bảo thông tin về kích thước mục tiêu luôn được cập nhật. (b/372512085)
Phiên bản 1.8.0-alpha04
Ngày 16 tháng 10 năm 2024
Phát hành androidx.compose.animation:animation-*:1.8.0-alpha04
. Phiên bản 1.8.0-alpha04 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi khiến một số đường cong chuyển động bị sự cố tại một số phân đoạn thời gian nhất định.
- Khắc phục lỗi gây ra việc căn chỉnh không chính xác cho
Modifier.animateContentSize
trong RTL. (Idae6b, b/372055503)
Phiên bản 1.8.0-alpha03
Ngày 2 tháng 10 năm 2024
Phát hành androidx.compose.animation:animation-*:1.8.0-alpha03
. Phiên bản 1.8.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Cập nhật phiên bản Kotlin lên 1.9 (I1a14c)
Sửa lỗi
- Khắc phục vấn đề trong ảnh động kích thước
AnimatedContent
bằng cách luôn theo dõi và bắt đầu ảnh động từ kích thước hiện tại để đảm bảo tính liên tục.
Phiên bản 1.8.0-alpha02
Ngày 18 tháng 9 năm 2024
Phát hành androidx.compose.animation:animation-*:1.8.0-alpha02
. Phiên bản 1.8.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 1.8.0-alpha01
Ngày 4 tháng 9 năm 2024
Phát hành androidx.compose.animation:animation-*:1.8.0-alpha01
. Phiên bản 1.8.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- API
Modifier.animateBounds
mới để tạo ảnh động thay đổi kích thước và vị trí trong phạm vi xem trước. 94b9394
Thay đổi về API
- Xoá cờ thử nghiệm trên Khung hình chính có Arcs và Splines (89e1199)
Sửa lỗi
- Bỏ qua logic
placeHolderSize
khi không tìm thấy kết quả trùng khớp (77c0160) - Giới hạn thời gian phát trong
AndroidFlingSpline
để ngăn sự cố do thời gian phát tăng không liên tục(9d47587) - Khắc phục lỗi
SharedTransitionScope
không vẽ các mục trong một số điều kiện nhất định (b41077b6)
Đóng góp bên ngoài
- Ngăn đặt hiệu ứng chuyển đổi có thể tua lại
playTime
khi không có hiệu ứng chuyển đổi nào đang chạy bởi Steven Schoen. (c2e6e7e6)
Phiên bản 1.7
Phiên bản 1.7.5
Ngày 30 tháng 10 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.5
. Phiên bản 1.7.5 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi gây ra việc căn chỉnh không chính xác cho
Modifier.animateContentSize
trong RTL. (Idae6b, b/372055503)
Phiên bản 1.7.4
Ngày 16 tháng 10 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.4
. Phiên bản 1.7.4 bao gồm các thay đổi sau.
Phiên bản 1.7.3
Ngày 2 tháng 10 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.3
. Phiên bản 1.7.3 bao gồm các thay đổi sau.
Phiên bản 1.7.2
Ngày 18 tháng 9 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.2
. Phiên bản 1.7.2 bao gồm các thay đổi sau.
Đóng góp bên ngoài
- Ngăn việc đặt hiệu ứng chuyển đổi có thể tua lại
playTime
khi không có hiệu ứng chuyển đổi nào đang chạy. Cảm ơn Steven Schoen! (c2e6e7e6)
Phiên bản 1.7.1
Ngày 10 tháng 9 năm 2024
- Không có thay đổi nào đối với cấu phần phần mềm Android. Xoá cấu phần phần mềm
-desktop
và thêm cấu phần phần mềm-jvmStubs
và-linuxx64Stubs
. Không có mục tiêu nào trong số này được dùng, chúng là phần giữ chỗ để hỗ trợ các nỗ lực của Jetbrains Compose.
Phiên bản 1.7.0
Ngày 4 tháng 9 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0
.
Thay đổi quan trọng kể từ phiên bản 1.6.0
Bạn có thể xem bài đăng trên blog này để biết những thay đổi quan trọng trong phiên bản 1.7.0.
API chuyển đổi phần tử dùng chung mới
- Các API chuyển đổi phần tử dùng chung mới đang chờ bạn sử dụng và phản hồi. Các API thử nghiệm mới này cho phép gắn thẻ bố cục được chia sẻ trên cây bố cục bằng cách sử dụng đối tượng sửa đổi được cung cấp, tạo ra các giới hạn thay đổi suôn sẻ khi một nhóm nội dung được chia sẻ thoát và nhóm nội dung khác vào. (Icb0b9)
scaleInSharedContentToBounds
vàscaleOutSharedContentToBounds
mới để mở rộng quy mô nội dung trongsharedBounds
(I731c1)SharedTransitionScope
thử nghiệm hiện là một giao diện thay vì một lớp. (Iaf856)resizeModes
mới (ScaleToBounds
vàRemeasureToBounds
) đểsharedBounds
chọn giữa việc điều chỉnh theo tỷ lệ và đo lường lại. Các APIscaleIn/OutSharedContentToBounds
trước đây hiện không được dùng nữa. (I0d41a)
Các điểm cải tiến đối với API hiện có:
Modifier.animateContentSize
mới có thêm một tham số để căn chỉnh nội dung tuỳ chỉnh. (I5623a, b/269803907)DeferredTargetAnimation
thử nghiệm mới để tạo ảnh động kích thước, vị trí hoặc bất kỳ mục tiêu nào khác không xác định được trong quá trình tạo bản sao. (I60745)SeekableTransitionState
thay thếsnapTo()
bằngseekTo()
và thêmsnapTo()
để thay đổi trạng thái thành trạng thái đích đến ngay lập tức mà không cần bất kỳ loại ảnh động nào.- Bây giờ, bạn có thể truyền giá trị
periodicBias
(Float) đếnkeyframesWithSpline
. Thao tác này sẽ giúp vận tốc ban đầu và cuối cùng của spline bằng nhau. Hữu ích cho ảnh động lặp lại bằng cách sử dụng spline. Độ lệch cho biết mức độ sửa đổi của mỗi tốc độ (ban đầu và cuối cùng) để đạt được tính chu kỳ. (Ic1e6c, b/292114811)
Các API sau đây đã trở nên ổn định hoặc bị xoá:
AnimatedVisibilityScope.transition
hiện là một API ổn định.Modifier.animateEnterExit(..)
cũng đã được ổn định. (I6c1d1)ApproachLayoutModifierNode
vàModifier.approachLayout
hiện đã ổn định, vớiisMeasurementApproachInProgress()
vàisPlacementApproachInProgress()
mới lần lượt thay thếisMeasurementApproachComplete()
vàisPlacementApproachComplete()
cũ.- Xoá đối tượng sửa đổi
intermediateLayout
không dùng nữa. (I3e91c) - Các API
LookaheadScope
đã được ổn định. (I21507)
Phiên bản 1.7.0-rc01
Ngày 21 tháng 8 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-rc01
. Phiên bản 1.7.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.7.0-beta07
Ngày 7 tháng 8 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta07
. Phiên bản 1.7.0-beta07 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi
SharedTransitionScope
không vẽ các mục lớp phủ trong quá trình chuyển đổi trong một số điều kiện nhất định, thường bao gồm cả việc sử dụng với Navigation. (Id65ab, b/347520198)
Phiên bản 1.7.0-beta06
Ngày 24 tháng 7 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta06
. Phiên bản 1.7.0-beta06 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi rò rỉ trạng thái chuyển đổi
SeekableTransition
bằng cách dọn dẹp đúng cách các quan sát từSnapshotStateObserver
khi chuyển đổi bị loại bỏ. (b9c7182) - Khắc phục các trường hợp hiếm gặp trong đó các hiệu ứng Chuyển đổi con không được đánh dấu hoàn tất đúng cách khi hiệu ứng mẹ hoàn tất. (dc42216)
Phiên bản 1.7.0-beta05
Ngày 10 tháng 7 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta05
. Phiên bản 1.7.0-beta05 bao gồm các thay đổi sau.
Sửa lỗi
- Giờ đây, bạn có thể đọc đúng cách thuộc tính Transition
totalDurationNanos
trongsnapshotFlow
.
Phiên bản 1.7.0-beta04
Ngày 26 tháng 6 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta04
. Phiên bản 1.7.0-beta04 bao gồm các thay đổi sau.
Phiên bản 1.7.0-beta03
Ngày 12 tháng 6 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta03
. Phiên bản 1.7.0-beta03 bao gồm các thay đổi sau.
Phiên bản 1.7.0-beta02
Ngày 29 tháng 5 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta02
. Phiên bản 1.7.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.7.0-beta01
Ngày 14 tháng 5 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-beta01
. Phiên bản 1.7.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
resizeModes
mới (ScaleToBounds
vàRemeasureToBounds
) đểsharedBounds
chọn giữa việc điều chỉnh theo tỷ lệ và đo lường lại. Các APIscaleIn/OutSharedContentToBounds
trước đây hiện không được dùng nữa. (I0d41a)
Đóng góp bên ngoài
SharedTransitionScope
thử nghiệm hiện là một giao diện thay vì một lớp của Steven Schoen. (Iaf856, b/338415048, b/338414702)
Phiên bản 1.7.0-alpha08
Ngày 1 tháng 5 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha08
. Phiên bản 1.7.0-alpha08 bao gồm các thay đổi sau.
Thay đổi về API
- Các API
LookaheadScope
đã được ổn định. (I21507)
Đóng góp bên ngoài
- Xoá thời gian bắt đầu ảnh động sau khi
SeekableTransitionState
tạo ảnh động/ảnh chụp nhanh do Steven Schoen thực hiện (1ca89529)
Phiên bản 1.7.0-alpha07
Ngày 17 tháng 4 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha07
. Phiên bản 1.7.0-alpha07 bao gồm các thay đổi sau.
Tính năng mới
- Các API chuyển đổi phần tử dùng chung mới đang chờ bạn sử dụng và phản hồi. Các API thử nghiệm mới này cho phép gắn thẻ bố cục được chia sẻ trên cây bố cục bằng cách sử dụng đối tượng sửa đổi được cung cấp, tạo ra các giới hạn thay đổi suôn sẻ khi một nhóm nội dung được chia sẻ thoát và nhóm nội dung khác vào. (Icb0b9)
scaleInSharedContentToBounds
vàscaleOutSharedContentToBounds
mới để mở rộng quy mô nội dung trongsharedBounds
(I731c1)
Thay đổi về API
AnimatedVisibilityScope.transition
hiện là một API ổn định.Modifier.animateEnterExit(..)
cũng đã được ổn định. (I6c1d1)ApproachLayoutModifierNode
vàModifier.approachLayout
hiện đã ổn định, vớiisMeasurementApproachInProgress()
vàisPlacementApproachInProgress()
mới lần lượt thay thếisMeasurementApproachComplete()
vàisPlacementApproachComplete()
cũ.- Xoá đối tượng sửa đổi
intermediateLayout
không dùng nữa. (I3e91c) - Bây giờ, bạn có thể truyền giá trị
periodicBias
(Float) đếnkeyframesWithSpline
. Thao tác này sẽ giúp vận tốc ban đầu và cuối cùng của spline bằng nhau. Hữu ích cho ảnh động lặp lại bằng cách sử dụng spline. Độ lệch cho biết mức độ sửa đổi của mỗi tốc độ (ban đầu và cuối cùng) để đạt được tính chu kỳ. (Ic1e6c, b/292114811)
Sửa lỗi
- Khắc phục các đường cong chuyển động quá mức và dưới mức trước đây sẽ được kẹp vào 0..1 (I38747)
Phiên bản 1.7.0-alpha06
Ngày 3 tháng 4 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha06
. Phiên bản 1.7.0-alpha06 bao gồm các thay đổi sau.
Tính năng mới
- Hỗ trợ ảnh động xuất hiện và biến mất của mục đã được thêm vào
LazyColumn
vàLazyRow
. Trước đây, bạn có thể thêm công cụ sửa đổiModifier.animateItemPlacement()
để hỗ trợ ảnh động vị trí (sắp xếp lại). Chúng tôi đã ngừng sử dụng công cụ sửa đổi này và giới thiệu một công cụ sửa đổi không thử nghiệm mới có tên làModifier.animateItem()
. Công cụ này cho phép bạn hỗ trợ cả ba loại ảnh động: xuất hiện (mờ dần), biến mất (mờ dần) và sắp xếp lại. (I2d7f7, b/330152398, b/150812265)
Sửa lỗi
- Cải thiện hiệu suất của API
updateTransition
.
Phiên bản 1.7.0-alpha05
Ngày 20 tháng 3 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha05
. Phiên bản 1.7.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
SeekableTransitionState
thay thếsnapTo()
bằngseekTo()
và thêmsnapTo()
để thay đổi trạng thái thành trạng thái đích đến ngay lập tức mà không cần bất kỳ loại ảnh động nào.
Phiên bản 1.7.0-alpha04
Ngày 6 tháng 3 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha04
. Phiên bản 1.7.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- API
Path.reverse()
mới để đảo ngược hướng của một đường dẫn (I36348)
Phiên bản 1.7.0-alpha03
Ngày 21 tháng 2 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha03
. Phiên bản 1.7.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
Modifier.animateContentSize
mới có thêm một tham số để căn chỉnh nội dung tuỳ chỉnh. (I5623a, b/269803907)DeferredTargetAnimation
thử nghiệm mới để tạo ảnh động kích thước, vị trí hoặc bất kỳ mục tiêu nào khác không xác định được trong quá trình tạo bản sao. (I60745)
Phiên bản 1.7.0-alpha02
Ngày 7 tháng 2 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha02
. Phiên bản 1.7.0-alpha02 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi tương thích cho
KeyframesSpec
. (I2bdf3, b/322214617) - Khắc phục lỗi
Modifier.animateContentSize
không đặt lại đúng cách khi được sử dụng trongLazyList
. (I070512, b/322525716) - Khắc phục
IllegalStateException
trênKeyframesSpec
khi sử dụng dấu thời gian nằm ngoài phạm vi. (I341b8, b/322839811)
Phiên bản 1.7.0-alpha01
Ngày 24 tháng 1 năm 2024
Phát hành androidx.compose.animation:animation-*:1.7.0-alpha01
. Phiên bản 1.7.0-alpha01 bao gồm các thay đổi sau.
Phiên bản 1.6
Phiên bản 1.6.8
Ngày 12 tháng 6 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.8
. Phiên bản 1.6.8 bao gồm các thay đổi sau.
Phiên bản 1.6.7
Ngày 1 tháng 5 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.7
. Phiên bản 1.6.7 bao gồm các thay đổi sau.
Phiên bản 1.6.6
Ngày 17 tháng 4 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.6
. Không có thay đổi nào kể từ bản phát hành trước
Phiên bản 1.6.5
Ngày 3 tháng 4 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.5
. Phiên bản 1.6.5 bao gồm các thay đổi sau.
Phiên bản 1.6.4
Ngày 20 tháng 3 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.4
. Phiên bản 1.6.4 bao gồm các thay đổi sau.
Phiên bản 1.6.3
Ngày 6 tháng 3 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.3
. Phiên bản 1.6.3 bao gồm các thay đổi sau.
Phiên bản 1.6.2
Ngày 21 tháng 2 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.2
. Phiên bản 1.6.2 bao gồm các thay đổi sau.
Phiên bản 1.6.1
Ngày 7 tháng 2 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.1
. Phiên bản 1.6.1 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi tương thích cho
KeyframesSpec
. (I2bdf3, b/322214617)
Phiên bản 1.6.0
Ngày 24 tháng 1 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.0
. Phiên bản 1.6.0 bao gồm các thay đổi sau.
Phiên bản 1.6.0-rc01
Ngày 10 tháng 1 năm 2024
Phát hành androidx.compose.animation:animation-*:1.6.0-rc01
. Phiên bản 1.6.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.6.0-beta03
Ngày 13 tháng 12 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-beta03
. Phiên bản 1.6.0-beta03 bao gồm các thay đổi sau.
Thay đổi về API
- Tạm thời xoá
scaleInToFitContainer
vàscaleOutToFitContainer
khỏiAnimatedContentTransitionScope
vì các hàm này yêu cầu xem trước. Các tính năng này sẽ hoạt động khi tính năng xem trước được bật theo mặc định hoặc được chọn sử dụng trong các bản phát hành sau này.
Phiên bản 1.6.0-beta02
Ngày 29 tháng 11 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-beta02
. Phiên bản 1.6.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.6.0-beta01
Ngày 15 tháng 11 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-beta01
. Phiên bản 1.6.0-beta01 bao gồm các thay đổi sau.
Thay đổi về API
- Đổi tên
ExitTransition.Hold
thànhExitTransition.KeepUntilTransitionsFinished
để rõ ràng hơn. (I1c490) - Giờ đây, bạn có thể sử dụng
keyframesWithSpline
để nội suy bất kỳ giá trị N chiều nào bằng cách sử dụng các đường cong gãy tăng dần. Phương thức này đặc biệt hữu ích khi nội suy các giá trị vị trí nhưOffset
,IntOffset
,DpOffset
. Thêm dưới dạng API thử nghiệm.
Sửa lỗi
- Thêm tính năng hỗ trợ trình kết xuất cho hiệu ứng Chuyển màu quét trong
ArcLine
. (I4d5bb) - Triển khai hàm bằng và mã băm cho
PageSize.Fixed
. (Ie3ede, b/300134276) - Khắc phục vấn đề về khả năng tương thích tệp nhị phân với thay đổi về Phần lồng ghép cửa sổ. (Iee695)
- Xoá lớp lõi Material cho Khối/Nút Material3 vì các điểm chuẩn vi mô cho thấy hiệu suất tốt hơn khi không có lớp này. (I55555)
Phiên bản 1.6.0-alpha08
Ngày 18 tháng 10 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha08
. Phiên bản 1.6.0-alpha08 bao gồm các thay đổi sau.
Thay đổi về API
- Ngừng sử dụng
KeyframesSpecConfig#with
và thay bằngKeyframesSpecConfig#using
để giữ nguyên mẫu trình tạo. (I1d769)
Phiên bản 1.6.0-alpha07
Ngày 4 tháng 10 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha07
. Phiên bản 1.6.0-alpha07 bao gồm các thay đổi sau.
Thay đổi về API
- Các Tabrows cố định và có thể cuộn hiện có các biến thể Chính và Phụ. Các giá trị này liên kết chính xác với màu sắc và hành vi của chỉ báo như được xác định trong Material3.
PrimaryScrollableTabRow
vàSecondaryScrollableTabRow
hiện hiển thị trạng thái cuộn. (Iec8f5, b/260572337)
Phiên bản 1.6.0-alpha06
Ngày 20 tháng 9 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha06
. Phiên bản 1.6.0-alpha06 bao gồm các thay đổi sau.
Phiên bản 1.6.0-alpha05
Ngày 6 tháng 9 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha05
. Phiên bản 1.6.0-alpha05 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
PathEasing
để cho phép cung cấp một đường dẫn tuỳ ý cho một đường cong chuyển động. (Idb4b9)
Phiên bản 1.6.0-alpha04
Ngày 23 tháng 8 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha04
. Phiên bản 1.6.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm
SeekableTransitionState
để cho phép nhà phát triển kiểm soát tiến trình chuyển đổi. (I8e69d)
Phiên bản 1.6.0-alpha03
Ngày 9 tháng 8 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha03
. Phiên bản 1.6.0-alpha03 bao gồm các thay đổi sau.
Thay đổi về API
- Loại chuyển đổi enter/exit (vào/ra) mới điều chỉnh tỷ lệ nội dung dựa trên kích thước của vùng chứa ảnh động trong ảnh động vào và ra. Giao diện và tính năng thú vị của thành phần kết hợp
LookaheadScope
hiện đã ổn định. (Ifb2ce)
Phiên bản 1.6.0-alpha02
Ngày 26 tháng 7 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha02
. Phiên bản 1.6.0-alpha02 bao gồm các thay đổi sau.
Thay đổi về API
ExitTransition.Hold
mới để hiển thị nội dung đi trongAnimatedContent
cho đến khi cả quá trình chuyển đổi vào và ra đều hoàn tất. (I5984f)- Các chú thích bổ sung để chỉ định dữ liệu đầu vào được phép cho các thành phần kết hợp (I51109)
Phiên bản 1.6.0-alpha01
Ngày 21 tháng 6 năm 2023
Phát hành androidx.compose.animation:animation-*:1.6.0-alpha01
. Phiên bản 1.6.0-alpha01 bao gồm các thay đổi sau.
Tính năng mới
- Cho phép
Modifier.animateContentSize
vàAnimatedVisibility
được tích hợp đầy đủ vào hệ thống xem trước bằng cách báo cáo kích thước mục tiêu trong lượt xem trước.
Thay đổi về API
- Thuộc tính mới trong
IntrinsincMeasureScope
và cách triển khai thuộc tính đó (ví dụ:MeasureScope
) để cho biết liệu lượt đo lường hiện tại có phải là lượt đo lường trước hay không. (I7a812)
Sửa lỗi
- Xoá các lượt phân bổ khỏi ảnh động mùa xuân. (Ie9431)
- Thay đổi tên tham số value cho Enum.valueOf (Ia9b89)
- nhiều ngoại lệ được gửi từ enum valueOf (I818fe)
Phiên bản 1.5
Phiên bản 1.5.4
Ngày 18 tháng 10 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.4
. Phiên bản 1.5.4 bao gồm các thay đổi sau.
Phiên bản 1.5.3
Ngày 4 tháng 10 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.3
. Phiên bản này không có thay đổi nào
Phiên bản 1.5.2
Ngày 27 tháng 9 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.2
. Phiên bản 1.5.2 bao gồm các thay đổi sau.
Phiên bản 1.5.1
Ngày 6 tháng 9 năm 2023
Phát hành androidx.compose.foundation:foundation-*:1.5.1
. Phiên bản 1.5.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục các trường văn bản hiển thị bàn phím và có thể chỉnh sửa khi
readOnly
là true. Ngoài ra, khắc phục lỗi bàn phím không hiển thị khireadOnly
được thay đổi từ true thành false trong khi được lấy tiêu điểm. (I34a19, b/246909589)
Phiên bản 1.5.1
Ngày 6 tháng 9 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.1
. Phiên bản 1.5.1 bao gồm các thay đổi sau.
Phiên bản 1.5.0
Ngày 9 tháng 8 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0
. Phiên bản 1.5.0 bao gồm các thay đổi sau.
Phiên bản 1.5.0-rc01
Ngày 26 tháng 7 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-rc01
. Phiên bản 1.5.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
Khắc phục vấn đề khi gọi
.value
trên một loại trạng thái gốc (nhưMutableIntState
) sẽ báo cáo cảnh báo tìm lỗi mã nguồn với một bản sửa lỗi không hợp lệ. Giờ đây, quy trình kiểm tra sẽ đề xuất di chuyển sang tài sản chính xác. (Iba953, b/287279257)Bạn có thể sử dụng tính năng kiểm tra không bắt buộc để đề xuất di chuyển các lệnh gọi
mutableStateOf()
sang các loại chuyên biệt tương ứng cho các đối tượng gốc. Mã nhận dạng tìm lỗi mã nguồn của ứng dụng này làAutoboxingStateCreation
. Trước đây, quy trình kiểm tra này được bật theo mặc định cho tất cả dự án. Để xem cảnh báo này trong trình chỉnh sửa của Android Studio và kết quả tìm lỗi mã nguồn của dự án, hãy thay đổi mức độ nghiêm trọng của cảnh báo từ thông tin thành cảnh báo (hoặc cao hơn) bằng cách khai báowarning "AutoboxingStateCreation"
bên trong cấu hìnhbuild.gradle
hoặcbuild.gradle.kts
của mô-đun như minh hoạ (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Phiên bản 1.5.0-beta03
Ngày 28 tháng 6 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-beta03
. Phiên bản 1.5.0-beta03 bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta02
Ngày 7 tháng 6 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-beta02
. Phiên bản 1.5.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.5.0-beta01
Ngày 24 tháng 5 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-beta01
. Phiên bản beta 1.5.0 bao gồm các thay đổi sau.
Thay đổi về API
- Xoá các lượt phân bổ trong quá trình kết hợp lại, ảnh động màu và
AndroidComposeView
(Ib2bfa)
Sửa lỗi
- Xoá các lượt phân bổ khỏi ảnh động có hiệu ứng lò xo (Ie9431)
Phiên bản 1.5.0-alpha04
Ngày 10 tháng 5 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-alpha04
. Phiên bản 1.5.0-alpha04 bao gồm các thay đổi sau.
Thay đổi về API
ContentKey
hiện được hỗ trợ trongAnimatedContent
để cho phép kiểm soát nhiều hơn thời điểm chuyển đổi. (Ic069b)
Phiên bản 1.5.0-alpha03
Ngày 19 tháng 4 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-alpha03
. Phiên bản 1.5.0-alpha03 bao gồm các thay đổi sau.
Tính năng mới
- Hành vi mặc định mới cho
SubcomposeLayout
trongLookaheadScope
. Phương thức này cho phépSubcomposeLayouts
không có các khe có điều kiện (ví dụ:TabRow
,Scaffold
,BoxWithConstraints
, v.v.) hoạt động tốt với ảnh động xem trước.
Thay đổi về API
intermediateMeasurePolicy
mặc định mới sử dụng lại chính sách đo lường từ lượt truyền có tính toán trước cho phép các loại phụSubcomposeLayout
không có khe có điều kiện nhưScaffold
,TabRow
vàBoxWithConstraints
hoạt động với tính năng tính toán trước theo mặc định. (Id84c8)- Đổi tên infix fun thành
togetherWith
để kết hợp các hiệu ứng chuyển đổi vào và thoát.AnimatedContentScope
mới làm trình thu nhận cho hàm lambda nội dung. (Ic39ae)
Phiên bản 1.5.0-alpha02
Ngày 5 tháng 4 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-alpha02
. Phiên bản 1.5.0-alpha02 bao gồm các thay đổi sau.
Tính năng mới
- API thử nghiệm mới để hỗ trợ tính năng xem trước trong
SubcomposeLayout
. Điều này sẽ cho phépSubcomposeLayout
hoạt động đúng cách trongLookaheadScope
. Chúng tôi sẽ sớm hỗ trợ nhiều tính năng hơn cho các loại phụ cụ thể củaSubcomposeLayout
.
Thay đổi về API
- API
SubcomposeLayout
mới sử dụng thêm một chính sách đo lường trung gian để xử lý logic đo lường/bố cục trong các ảnh động dựa trên tính năng xem trước. (I017d3)
Phiên bản 1.5.0-alpha01
Ngày 22 tháng 3 năm 2023
Phát hành androidx.compose.animation:animation-*:1.5.0-alpha01
. Phiên bản 1.5.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Các API
AnimatedContent
hiện đã ổn địnhAnimatedContentScope
đã được đổi tên thànhAnimatedContentTransitionScope
.scaleIn
vàscaleOut
hiện là các API ổn định. (Iaf54e)
Phiên bản 1.4
Phiên bản 1.4.3
Ngày 3 tháng 5 năm 2023
Phát hành androidx.compose.animation:animation:1.4.3
, androidx.compose.animation:animation-core:1.4.3
và androidx.compose.animation:animation-graphics:1.4.3
mà không có thay đổi nào (chỉ tăng phiên bản).
Phiên bản 1.4.2
Ngày 19 tháng 4 năm 2023
Phát hành androidx.compose.animation:animation:1.4.2
, androidx.compose.animation:animation-core:1.4.2
và androidx.compose.animation:animation-graphics:1.4.2
mà không có sự thay đổi nào. Phiên bản 1.4.2 bao gồm các thay đổi sau.
Phiên bản 1.4.1
Ngày 5 tháng 4 năm 2023
Phát hành androidx.compose.animation:animation:1.4.1
, androidx.compose.animation:animation-core:1.4.1
và androidx.compose.animation:animation-graphics:1.4.1
mà không có sự thay đổi nào. Phiên bản 1.4.1 bao gồm các thay đổi sau.
Phiên bản 1.4.0
Ngày 22 tháng 3 năm 2023
Phát hành androidx.compose.animation:animation:1.4.0
, androidx.compose.animation:animation-core:1.4.0
và androidx.compose.animation:animation-graphics:1.4.0
. Phiên bản 1.4.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.3.0
- Hỗ trợ nhãn công cụ trong r
ememberInfiniteTransition
và mọi hàm mở rộng trênInfiniteTransition
và Transition (ví dụ:InfiniteTransition#animateColor
) (I56ef7)
Phiên bản 1.4.0-rc01
Ngày 8 tháng 3 năm 2023
Phát hành androidx.compose.animation:animation:1.4.0-rc01
, androidx.compose.animation:animation-core:1.4.0-rc01
và androidx.compose.animation:animation-graphics:1.4.0-rc01
mà không có sự thay đổi nào. Phiên bản 1.4.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-beta02
Ngày 22 tháng 2 năm 2023
Phát hành androidx.compose.animation:animation:1.4.0-beta02
, androidx.compose.animation:animation-core:1.4.0-beta02
và androidx.compose.animation:animation-graphics:1.4.0-beta02
mà không có sự thay đổi nào. Phiên bản 1.4.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.4.0-beta01
Ngày 8 tháng 2 năm 2023
Phát hành androidx.compose.animation:animation:1.4.0-beta01
, androidx.compose.animation:animation-core:1.4.0-beta01
và androidx.compose.animation:animation-graphics:1.4.0-beta01
mà không có sự thay đổi nào. Phiên bản 1.4.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.4.0-alpha05
Ngày 25 tháng 1 năm 2023
Phát hành androidx.compose.animation:animation:1.4.0-alpha05
, androidx.compose.animation:animation-core:1.4.0-alpha05
và androidx.compose.animation:animation-graphics:1.4.0-alpha05
. Phiên bản 1.4.0-alpha05 bao gồm các thay đổi sau.
Các thay đổi
- Không có thay đổi nào trong thư viện hiệu ứng chuyển động kể từ bản phát hành alpha gần đây nhất, chỉ tăng số phiên bản
Phiên bản 1.4.0-alpha04
Ngày 11 tháng 1 năm 2023
Phát hành androidx.compose.animation:animation:1.4.0-alpha04
, androidx.compose.animation:animation-core:1.4.0-alpha04
và androidx.compose.animation:animation-graphics:1.4.0-alpha04
. Phiên bản 1.4.0-alpha04 bao gồm các thay đổi sau.
Tính năng mới
- Hỗ trợ nhãn công cụ trong
rememberInfiniteTransition
và mọi hàm mở rộng trênInfiniteTransition
vàTransition
(ví dụ:InfiniteTransition#animateColor
) (I56ef7)
Các thay đổi về API
- Các API
InfiniteTransition#TransitionAnimationState
vàInfiniteTransition#animations
hiện ở chế độ công khai. (I36682)
Phiên bản 1.4.0-alpha03
Ngày 7 tháng 12 năm 2022
Phát hành androidx.compose.animation:animation:1.4.0-alpha03
, androidx.compose.animation:animation-core:1.4.0-alpha03
và androidx.compose.animation:animation-graphics:1.4.0-alpha03
. Phiên bản 1.4.0-alpha03 bao gồm các thay đổi sau.
Các thay đổi về API
- Trong các bài kiểm thử giao diện người dùng sử dụng quy tắc Compose, các lệnh tiếp tục trong quá trình gọi lại
withFrameNanos
sẽ không được gửi đi cho đến khi tất cả các lệnh gọi lại khung đã chạy xong. Điều này phù hợp với hành vi của Compose khi chạy bình thường. Tuy nhiên, bài kiểm thử dựa trên hành vi cũ có thể không thành công. Điều này chỉ ảnh hưởng đến mã gọi trực tiếpwithFrameNanos
hoặcwithFrameMillis
và có logic bên ngoài lệnh gọi lại được truyền đến các hàm mà có thể cần được di chuyển bên trong lệnh gọi lại. Xem những thay đổi về hoạt động kiểm thử hiệu ứng chuyển động trong CL này để biết ví dụ. - Thêm tham số
onPerformTraversals: (Long) -> Unit
(không bắt buộc) vào hàm khởi tạoTestMonotonicFrameClock
và hàm nhà máy để chạy mã sau lệnh gọi lạiwithFrameNanos
nhưng trước khi tiếp tục coroutine của phương thức gọi. (Idb413, b/254115946, b/222093277, b/255802670) - Tham số mới trong
AnimatedContent
cho nhãn công cụ (Iebe2d)
Phiên bản 1.4.0-alpha02
Ngày 9 tháng 11 năm 2022
Phát hành androidx.compose.animation:animation:1.4.0-alpha02
, androidx.compose.animation:animation-core:1.4.0-alpha02
và androidx.compose.animation:animation-graphics:1.4.0-alpha02
. Phiên bản 1.4.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm
ToolingState
để giúp công cụ thay đổi trạng thái nội bộ của Thành phần kết hợp (Ie6614)
Phiên bản 1.4.0-alpha01
Ngày 24 tháng 10 năm 2022
Phát hành androidx.compose.animation:animation:1.4.0-alpha01
, androidx.compose.animation:animation-core:1.4.0-alpha01
và androidx.compose.animation:animation-graphics:1.4.0-alpha01
. Phiên bản 1.4.0-alpha01 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi hiệu ứng chuyển động gián đoạn không chính xác trong AnimatedContent (b/238662479)
Phiên bản 1.3
Phiên bản 1.3.3
Ngày 11 tháng 1 năm 2023
Phát hành androidx.compose.animation:animation:1.3.3
, androidx.compose.animation:animation-core:1.3.3
và androidx.compose.animation:animation-graphics:1.3.3
. Phiên bản 1.3.3 bao gồm các thay đổi sau.
- Không có thay đổi nào kể từ phiên bản 1.3.2.
Phiên bản 1.3.2
Ngày 7 tháng 12 năm 2022
Phát hành androidx.compose.animation:animation:1.3.2
, androidx.compose.animation:animation-core:1.3.2
và androidx.compose.animation:animation-graphics:1.3.2
. Phiên bản 1.3.2 bao gồm các thay đổi sau.
Sửa lỗi
- Cập nhật để hỗ trợ androidx.compose.ui 1.3.2
Phiên bản 1.3.1
Ngày 9 tháng 11 năm 2022
Phát hành androidx.compose.animation:animation:1.3.1
, androidx.compose.animation:animation-core:1.3.1
và androidx.compose.animation:animation-graphics:1.3.1
. Phiên bản 1.3.1 bao gồm các thay đổi sau.
Phiên bản 1.3.0
Ngày 24 tháng 10 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0
, androidx.compose.animation:animation-core:1.3.0
và androidx.compose.animation:animation-graphics:1.3.0
. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
- Bộ hàm gia tốc mới được điều chỉnh cho ổn định
Phiên bản 1.3.0-rc01
Ngày 5 tháng 10 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-rc01
, androidx.compose.animation:animation-core:1.3.0-rc01
và androidx.compose.animation:animation-graphics:1.3.0-rc01
. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-beta03
Ngày 21 tháng 9 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-beta03
, androidx.compose.animation:animation-core:1.3.0-beta03
và androidx.compose.animation:animation-graphics:1.3.0-beta03
. Phiên bản 1.3.0-beta03 bao gồm các thay đổi sau.
- Không có thay đổi nào kể từ phiên bản 1.3.0-beta02.
Phiên bản 1.3.0-beta02
Ngày 7 tháng 9 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-beta02
, androidx.compose.animation:animation-core:1.3.0-beta02
và androidx.compose.animation:animation-graphics:1.3.0-beta02
. Phiên bản 1.3.0-beta02 bao gồm các thay đổi sau.
- Xoá Kotlin.experimental khỏi các tuỳ chọn trình biên dịch do không được dùng nữa
Phiên bản 1.3.0-beta01
Ngày 24 tháng 8 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-beta01
, androidx.compose.animation:animation-core:1.3.0-beta01
và androidx.compose.animation:animation-graphics:1.3.0-beta01
. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-alpha03
Ngày 10 tháng 8 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-alpha03
, androidx.compose.animation:animation-core:1.3.0-alpha03
và androidx.compose.animation:animation-graphics:1.3.0-alpha03
. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.
Các thay đổi về API
- Tham số mới trong
Crossfade
,animateAsState
vàAnimatable
cho nhãn công cụ (Iac08a) - Thêm hàm
atFraction
để xác định khung hình chính tại một thời điểm thay vì trong một khoảng thời gian cụ thể. (I20c76, b/232059455)
Phiên bản 1.3.0-alpha02
Ngày 27 tháng 7 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-alpha02
, androidx.compose.animation:animation-core:1.3.0-alpha02
và androidx.compose.animation:animation-graphics:1.3.0-alpha02
. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 1.3.0-alpha01
Ngày 29 tháng 6 năm 2022
Phát hành androidx.compose.animation:animation:1.3.0-alpha01
, androidx.compose.animation:animation-core:1.3.0-alpha01
và androidx.compose.animation:animation-graphics:1.3.0-alpha01
. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
LookaheadLayout
mới hỗ trợ lượt truyền có tính toán trước rồi mới đưa ra bố cục/phép đo lường thực tế. Điều này cho phép tính toán trước bố cục khi bố cục thay đổi, trong khi cho phép dùng bố cục/phép đo lường sau khi tính toán để dùng kích thước/vị trí đã tính toán trước để tạo kích thước và vị trí hướng tới mục tiêu.SubcomposeLayouts
hiện chưa được hỗ trợ nhưng sẽ có trong bản phát hành sắp tới. (I477f5)
Phiên bản 1.2
Phiên bản 1.2.1
Ngày 10 tháng 8 năm 2022
Phát hành androidx.compose.animation:animation:1.2.1
, androidx.compose.animation:animation-core:1.2.1
và androidx.compose.animation:animation-graphics:1.2.1
. Phiên bản 1.2.1 bao gồm các thay đổi sau.
Phiên bản 1.2.0
Ngày 27 tháng 7 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0
, androidx.compose.animation:animation-core:1.2.0
và androidx.compose.animation:animation-graphics:1.2.0
. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Thay đổi quan trọng kể từ phiên bản 1.1.0
- Hiệu ứng chuyển động trong Compose hiện đã hỗ trợ chế độ cài đặt "Tỷ lệ thời lượng của trình tạo hiệu ứng chuyển động" trong phần Tuỳ chọn cho nhà phát triển.
- Nhiều lựa chọn gồm các đường cong gia tốc thử nghiệm mới.
AnimatedImageVector
hiện hỗ trợrepeatCount
vàrepeatMode
Phiên bản 1.2.0-rc03
Ngày 29 tháng 6 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-rc03
, androidx.compose.animation:animation-core:1.2.0-rc03
và androidx.compose.animation:animation-graphics:1.2.0-rc03
. Phiên bản 1.2.0-rc03 bao gồm các thay đổi sau.
- Không có thay đổi nào kể từ phiên bản 1.2.0-rc02.
Phiên bản 1.2.0-rc02
Ngày 22 tháng 6 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-rc02
, androidx.compose.animation:animation-core:1.2.0-rc02
và androidx.compose.animation:animation-graphics:1.2.0-rc02
. Phiên bản 1.2.0-rc02 bao gồm các thay đổi sau.
Sửa lỗi
- Xoá chú thích
ExperimentalEasingApi
trên hàm Gia tốc (Ied441)
Phiên bản 1.2.0-rc01
Ngày 15 tháng 6 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-rc01
, androidx.compose.animation:animation-core:1.2.0-rc01
và androidx.compose.animation:animation-graphics:1.2.0-rc01
. Phiên bản 1.2.0-rc01 bao gồm các thay đổi sau.
Các thay đổi về API
- Các giao diện trong thư viện Compose hiện được xây dựng bằng phương thức giao diện mặc định jdk8 (I5bcf1)
Phiên bản 1.2.0-beta03
Ngày 1 tháng 6 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-beta03
, androidx.compose.animation:animation-core:1.2.0-beta03
và androidx.compose.animation:animation-graphics:1.2.0-beta03
. Phiên bản 1.2.0-beta03 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm đường cong gia tốc thử nghiệm cho hiệu ứng chuyển động (I64a38)
Phiên bản 1.2.0-beta02
Ngày 18 tháng 5 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-beta02
, androidx.compose.animation:animation-core:1.2.0-beta02
và androidx.compose.animation:animation-graphics:1.2.0-beta02
. Phiên bản 1.2.0-beta02 bao gồm các thay đổi sau.
Phiên bản 1.2.0-beta01
Ngày 11 tháng 5 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-beta01
, androidx.compose.animation:animation-core:1.2.0-beta01
và androidx.compose.animation:animation-graphics:1.2.0-beta01
. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
- Đây là bản phát hành beta 1.2 đầu tiên! Không có thay đổi nào kể từ bản phát hành alpha gần đây nhất.
Phiên bản 1.2.0-alpha08
Ngày 20 tháng 4 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha08
, androidx.compose.animation:animation-core:1.2.0-alpha08
và androidx.compose.animation:animation-graphics:1.2.0-alpha08
. Phiên bản 1.2.0-alpha08 bao gồm các thay đổi sau.
Phiên bản 1.2.0-alpha07
Ngày 6 tháng 4 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha07
, androidx.compose.animation:animation-core:1.2.0-alpha07
và androidx.compose.animation:animation-graphics:1.2.0-alpha07
. Phiên bản 1.2.0-alpha07 bao gồm các thay đổi sau.
Các thay đổi về API
AnimatedImageVector
hiện hỗ trợrepeatCount
vàrepeatMode
(Ia3e75, b/199304067)
Phiên bản 1.2.0-alpha06
Ngày 23 tháng 3 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha06
, androidx.compose.animation:animation-core:1.2.0-alpha06
và androidx.compose.animation:animation-graphics:1.2.0-alpha06
. Phiên bản 1.2.0-alpha06 bao gồm các thay đổi sau.
Các thay đổi về API
- Cập nhật số liệu phân tích cú pháp vectơ vẽ được để hỗ trợ tính năng tự động phản chiếu nhằm lật nội dung của
VectorPainter
nếu hướng bố cục hiện tại là phải sang trái (RTL). (I79cd9, b/185760237)
Sửa lỗi
- Cập nhật các API Đồ họa vectơ để sử dụng chú giải thành phần kết hợp thích hợp
@VectorComposable
thay vì@UiComposable
(I942bc)
Phiên bản 1.2.0-alpha05
Ngày 9 tháng 3 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha05
, androidx.compose.animation:animation-core:1.2.0-alpha05
và androidx.compose.animation:animation-graphics:1.2.0-alpha05
. Phiên bản 1.2.0-alpha05 bao gồm các thay đổi sau.
Các thay đổi về API
- Thật tuyệt! Hiệu ứng chuyển động trong Compose hiện đã hỗ trợ chế độ cài đặt "Tỷ lệ thời lượng của trình tạo hiệu ứng chuyển động" trong Tuỳ chọn cho nhà phát triển. (I5a4fc, b/161675988)
Phiên bản 1.2.0-alpha04
Ngày 23 tháng 2 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha04
, androidx.compose.animation:animation-core:1.2.0-alpha04
và androidx.compose.animation:animation-graphics:1.2.0-alpha04
. Phiên bản 1.2.0-alpha04 bao gồm các thay đổi sau.
Phiên bản 1.2.0-alpha03
Ngày 9 tháng 2 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha03
, androidx.compose.animation:animation-core:1.2.0-alpha03
và androidx.compose.animation:animation-graphics:1.2.0-alpha03
. Phiên bản 1.2.0-alpha03 bao gồm các thay đổi sau.
Phiên bản 1.2.0-alpha02
Ngày 26 tháng 1 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha02
, androidx.compose.animation:animation-core:1.2.0-alpha02
và androidx.compose.animation:animation-graphics:1.2.0-alpha02
. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.
Phiên bản 1.2.0-alpha01
Ngày 12 tháng 1 năm 2022
Phát hành androidx.compose.animation:animation:1.2.0-alpha01
, androidx.compose.animation:animation-core:1.2.0-alpha01
và androidx.compose.animation:animation-graphics:1.2.0-alpha01
. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
- Sử dụng
AnimatedImageVector.animatedVectorResource
thay vìanimatedVectorResource
để tải tệp tài nguyên<animated-vector>
.- Sử dụng
rememberAnimatedVectorResource
thay vìAnimatedImageVector#painterFor
để kết xuấtAnimatedImageVector
. (I9c300)
- Sử dụng
Sửa lỗi
- Thêm các phương thức toString vào Animatable và AnimationResult. (Icd3a6)
Thông tin cập nhật về phần phụ thuộc
- Hiện phụ thuộc vào Kotlin
1.6.10
.
Phiên bản 1.1
Phiên bản 1.1.1
Ngày 23 tháng 2 năm 2022
Phát hành androidx.compose.animation:animation:1.1.1
, androidx.compose.animation:animation-core:1.1.1
và androidx.compose.animation:animation-graphics:1.1.1
. Phiên bản 1.1.1 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa
NullPointerException
tạiandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - Khắc phục sự cố do nội dung trong bảng nhớ tạm gây ra khi đọc từ bảng nhớ tạm trên Android. (I06020, b/197769306)
- Sửa RTL ở
LazyVerticalGrid
(aosp/1931080, b/207510535)
Phiên bản 1.1.0
Ngày 9 tháng 2 năm 2022
Phát hành androidx.compose.animation:animation:1.1.0
, androidx.compose.animation:animation-core:1.1.0
và androidx.compose.animation:animation-graphics: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ợ ổn định cho hiệu ứng Cuộn quá mức của Android 12
- Những cải tiến đối với kích thước đích chạm
- Lưu ý rằng, đối với phiên bản Compose 1.0, các thành phần Material sẽ mở rộng không gian bố cục để đáp ứng các nguyên tắc hỗ trợ tiếp cận của Material cho kích thước đích chạm. Ví dụ: đích chạm Button (Nút) sẽ mở rộng tới kích thước tối thiểu 48 x 48 dp, ngay cả khi bạn đặt kích thước nhỏ hơn cho Nút. Nhờ vậy, Compose Material được điều chỉnh phù hợp với hành vi tương ứng của các Thành phần Material Design, tạo ra hành vi nhất quán khi kết hợp Khung hiển thị và Compose. Sự thay đổi này cũng đảm bảo rằng khi bạn tạo giao diện người dùng bằng các thành phần Compose Material, những yêu cầu tối thiểu về hỗ trợ tiếp cận đích chạm sẽ được đáp ứng.
- Hỗ trợ ổn định cho Dải điều hướng (Navigation Rail)
- Ổn định một số API thử nghiệm trước đây
- Hỗ trợ các phiên bản Kotlin mới hơn
Phiên bản 1.1.0-rc03
Ngày 26 tháng 1 năm 2022
Phát hành androidx.compose.animation:animation:1.1.0-rc03
, androidx.compose.animation:animation-core:1.1.0-rc03
và androidx.compose.animation:animation-graphics:1.1.0-rc03
. Phiên bản 1.1.0-rc03 bao gồm các thay đổi sau.
Sửa lỗi
- Cập nhật để hỗ trợ Compose Material 1.1.0-rc03
Phiên bản 1.1.0-rc01
Ngày 15 tháng 12 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-rc01
và androidx.compose.animation:animation-core:1.1.0-rc01
. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
Các thay đổi về API
- Sử dụng
AnimatedImageVector.animatedVectorResource
thay vìanimatedVectorResource
để tải tệp tài nguyên<animated-vector>
.- Sử dụng
rememberAnimatedVectorResource
thay vìAnimatedImageVector#painterFor
để kết xuấtAnimatedImageVector
. (I9c300)
- Sử dụng
Phiên bản 1.1.0-beta04
Ngày 1 tháng 12 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-beta04
, androidx.compose.animation:animation-core:1.1.0-beta04
và androidx.compose.animation:animation-graphics:1.1.0-beta04
. Phiên bản 1.1.0-beta04 bao gồm các thay đổi sau.
Tính năng mới
- Cập nhật để tương thích với
1.6.0
Kotlin
Phiên bản 1.1.0-beta03
Ngày 17 tháng 11 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-beta03
, androidx.compose.animation:animation-core:1.1.0-beta03
và androidx.compose.animation:animation-graphics:1.1.0-beta03
. Phiên bản 1.1.0-beta03 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm đối tượng sửa đổi mới Modifier.onPlaced cho phép theo dõi việc thay đổi vị trí. Do đó, có thể sửa đổi thêm mức chênh lệch của đối tượng sửa đổi con dựa trên sự thay đổi về vị trí có thể quan sát được. (I558fd)
Hỗ trợ contentKey trong Crossfade. ContentKey được dùng để kiểm tra sự cân bằng của hệ thống hiệu ứng chuyển động. Do đó, bạn có thể đạt được sự khác biệt tuỳ chỉnh về trạng thái bằng cách chỉ định contentKey phù hợp với nhiều trạng thái.
ContentKey cũng sẽ được dùng làm khoá để lưu và khôi phục nội dung. (I2e055, b/197907070)
Phiên bản 1.1.0-beta02
Ngày 3 tháng 11 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-beta02
, androidx.compose.animation:animation-core:1.1.0-beta02
và androidx.compose.animation:animation-graphics:1.1.0-beta02
. Phiên bản 1.1.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Các API hiệu ứng chuyển động mới để hỗ trợ công cụ. Cụ thể, các API này cho phép công cụ kiểm tra hiệu ứng chuyển động và cấu hình của chúng trong một Transitions. (I4116e)
Phiên bản 1.1.0-beta01
Ngày 27 tháng 10 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-beta01
, androidx.compose.animation:animation-core:1.1.0-beta01
và androidx.compose.animation:animation-graphics:1.1.0-beta01
. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
Các thay đổi về API
- Các API hiệu ứng chuyển động mới để hỗ trợ công cụ. Cụ thể, các API này cho phép công cụ kiểm tra hiệu ứng chuyển động và cấu hình của chúng trong một Transitions. (I4116e)
Phiên bản 1.1.0-alpha06
Ngày 13 tháng 10 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-alpha06
, androidx.compose.animation:animation-core:1.1.0-alpha06
và androidx.compose.animation:animation-graphics:1.1.0-alpha06
. Phiên bản 1.1.0-alpha06 bao gồm các thay đổi sau.
Phiên bản 1.1.0-alpha05
Ngày 29 tháng 9 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-alpha05
, androidx.compose.animation:animation-core:1.1.0-alpha05
và androidx.compose.animation:animation-graphics:1.1.0-alpha05
. Phiên bản 1.1.0-alpha05 bao gồm các thay đổi sau.
Các thay đổi về API
EnterTransition
,ExitTransition
và một số APIAnimatedVisibility
đã được ổn định. Không còn thử nghiệmMutableTransitionState.isIdle
. (I5072d)Thay đổi có thể gây lỗi: lambda trong các nhà máy (factory) Enter/ExitSwitch đã được chuyển sang vị trí cuối cùng trong danh sách tham số. (I5072d)
Phiên bản 1.1.0-alpha04
Ngày 15 tháng 9 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-alpha04
, androidx.compose.animation:animation-core:1.1.0-alpha04
và androidx.compose.animation:animation-graphics:1.1.0-alpha04
. Phiên bản 1.1.0-alpha04 bao gồm các thay đổi sau.
Phiên bản 1.1.0-alpha03
Ngày 1 tháng 9 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-alpha03
, androidx.compose.animation:animation-core:1.1.0-alpha03
và androidx.compose.animation:animation-graphics: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
- Cập nhật
1.1.0-alpha03
của Compose để phụ thuộc vào Kotlin1.5.30
. (I74545)
Phiên bản 1.1.0-alpha02
Ngày 18 tháng 8 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-alpha02
, androidx.compose.animation:animation-core:1.1.0-alpha02
và androidx.compose.animation:animation-graphics:1.1.0-alpha02
. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về API
- StartOffset hiện được hỗ trợ trong repeatable và infiniteRepeatable, như một cách để trì hoãn thời gian bắt đầu hoặc tua nhanh hiệu ứng chuyển động trước khi hiệu ứng chuyển động bắt đầu. Mức bù trừ bắt đầu này sẽ không được lặp lại (Ic679f, b/195079908)
- Chuyển đổi Enter/Exit mới cho quy mô. Loại chuyển đổi này có thể được dùng kết hợp với các loại Enter/ExitTransitions khác. (I372da, b/191325593)
Phiên bản 1.1.0-alpha01
Ngày 4 tháng 8 năm 2021
Phát hành androidx.compose.animation:animation:1.1.0-alpha01
, androidx.compose.animation:animation-core:1.1.0-alpha01
và androidx.compose.animation:animation-graphics:1.1.0-alpha01
. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.
Các thay đổi về API
AnimatedImageVector
và các API liên quan hiện nằm trong mô-đunandroidx.compose.animation:animation-graphics
mới. (I60873)
Sửa lỗi
- Di chuyển
InfiniteAnimationPolicy
sang :compose:ui (I5eb09, b/160602714)
Phiên bản 1.0
Phiên bản 1.0.5
Ngày 3 tháng 11 năm 2021
Phát hành androidx.compose.animation:animation:1.0.5
và androidx.compose.animation:animation-core:1.0.5
. Phiên bản 1.0.5 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố theo dõi các thực thể derivedStateOf. (aosp/1792247)
Phiên bản 1.0.4
Ngày 13 tháng 10 năm 2021
Phát hành androidx.compose.animation:animation:1.0.4
và androidx.compose.animation:animation-core:1.0.4
. Phiên bản 1.0.4 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
- Cập nhật để phụ thuộc vào Kotlin
1.5.31
Phiên bản 1.0.3
Ngày 29 tháng 9 năm 2021
Phát hành androidx.compose.animation:animation:1.0.3
và androidx.compose.animation:animation-core:1.0.3
. Phiên bản 1.0.3 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
- Cập nhật để phụ thuộc vào Kotlin
1.5.30
Phiên bản 1.0.2
Ngày 1 tháng 9 năm 2021
Phát hành androidx.compose.animation:animation:1.0.2
và androidx.compose.animation:animation-core:1.0.2
. Phiên bản 1.0.2 bao gồm các thay đổi sau.
Cập nhật để hỗ trợ bản phát hành Compose 1.0.2
. Compose 1.0.2
vẫn tương thích với Kotlin 1.5.21
.
Phiên bản 1.0.1
Ngày 4 tháng 8 năm 2021
Phát hành androidx.compose.animation:animation:1.0.1
và androidx.compose.animation:animation-core:1.0.1
. Phiên bản 1.0.1 bao gồm các thay đổi sau.
Thông tin cập nhật về phần phụ thuộc
- Cập nhật để phụ thuộc vào Kotlin
1.5.21
.
Phiên bản 1.0.0
Ngày 28 tháng 7 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0
và androidx.compose.animation:animation-core: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
Đây là bản phát hành chính thức đầu tiên của ứng dụng Compose. Vui lòng xem blog về Bản phát hành Compose chính thức để biết thêm thông tin chi tiết!
Lỗi đã biết
Nếu đang sử dụng Android Studio Bumblebee Canary 4 hoặc AGP
7.1.0-alpha04
/7.1.0-alpha05
, bạn có thể gặp sự cố sau đây:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Để khắc phục, hãy tạm thời tăng giá trị minSdkVersion lên 24 trở lên trong tệp
build.gradle
. Sự cố này sẽ được khắc phục trong phiên bản tiếp theo của Android Studio Bumblebee và AGP7.1
. (b/194289155)
Phiên bản 1.0.0-rc02
Ngày 14 tháng 7 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-rc02
và androidx.compose.animation:animation-core:1.0.0-rc02
. Phiên bản 1.0.0-rc02 bao gồm các thay đổi sau.
Phiên bản 1.0.0-rc01
Ngày 1 tháng 7 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-rc01
và androidx.compose.animation:animation-core:1.0.0-rc01
. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.
Sửa lỗi
- Di chuyển
InfiniteAnimationPolicy
sangandroidx.compose.ui:ui
(I5eb09, b/160602714)
Phiên bản 1.0.0-beta09
Ngày 16 tháng 6 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta09
và androidx.compose.animation:animation-core:1.0.0-beta09
. Phiên bản 1.0.0-beta09 bao gồm các thay đổi sau.
Các thay đổi về API
- Thành phần kết hợp (composable)
AnimatedContent
mới. Cấu trúc này quản lý thay đổi nội dung bằng cách sử dụngContentTransform
có thể tuỳ chỉnh khi nhập nội dung mục tiêu mới và xoá nội dung ban đầu. Bạn có thể sử dụng nhiều cách kết hợp các tuỳ chọn cách chuyển tiếp vào/ra để tạo giao diện và cảm quan tuỳ chỉnh. Trong quá trình chuyển tiếp nội dung,AnimatedContent
sẽ tự động thay đổi kích thước của nội dung sao cho phù hợp với nội dung đến. (I2c3df) - Xoá
ManualFrameClock
. Nếu bạn cần kiểm soát hiệu ứng chuyển động, hãy sử dụngcomposeTestRule.mainClock
. (I3c3e8, b/189951065)
Bổ sung quy tắc hồ sơ
Bản phát hành này bổ sung các quy tắc hồ sơ cho những mô-đun Compose sau (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Quy tắc hồ sơ là gì?
Quy tắc hồ sơ cho thư viện được chỉ định trong tệp văn bản
baseline-prof.txt
nằm trongsrc/main
hoặc thư mục tương đương. Tệp này chỉ định quy tắc trên mỗi dòng, trong đó quy tắc trong trường hợp này là mẫu để khớp với phương thức hoặc lớp trong thư viện. Cú pháp cho các quy tắc này là tập mẹ của định dạng hồ sơ ART mà con người có thể đọc được, được dùng khi sử dụngadb shell profman --dump-classes-and-methods ...
. Các quy tắc này dùng một trong hai biểu mẫu để nhắm mục tiêu vào phương thức hoặc lớp.Quy tắc phương thức sẽ có mẫu sau:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Và quy tắc lớp sẽ có mẫu sau:
<CLASS_DESCRIPTOR>
Ở đây,
<FLAGS>
là một hoặc nhiều ký tự trong số các ký tựH
,S
vàP
để cho biết có cần gắn cờ "Hot", "Startup" hoặc "Post Startup" cho phương thức này hay không.<CLASS_DESCRIPTOR>
là phần mô tả cho lớp chứa phương thức được nhắm mục tiêu. Ví dụ: lớpandroidx.compose.runtime.SlotTable
sẽ có phần mô tả làLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
là chữ ký của phương thức và bao gồm tên, loại thông số và loại dữ liệu trả về của phương thức. Ví dụ: phương thứcfun isPlaced(): Boolean
trênLayoutNode
có chữ kýisPlaced()Z
.Những mẫu này có thể có ký tự đại diện (
**
,*
và?
) để có một quy tắc duy nhất bao gồm nhiều lớp hoặc phương thức.
Những quy tắc này có chức năng gì?
Phương thức có cờ
H
cho biết rằng phương thức này là một phương thức "khởi động nóng" và phải được biên dịch trước.Phương thức có cờ
S
cho biết đây là phương thức được gọi khi khởi động và phải được biên dịch trước khi thực thi để tránh chi phí biên dịch và diễn giải phương thức này tại thời điểm khởi động.Phương thức có cờ
P
cho biết đây là phương thức được gọi sau khi khởi động.Một lớp có trong tệp này cho biết rằng lớp này được dùng trong khi khởi động và cần được phân bổ trước trong vùng nhớ khối xếp để tránh chi phí tải lớp.
Cơ chế này hoạt động như thế nào?
- Thư viện có thể xác định những quy tắc sẽ được đóng gói trong cấu phần phần mềm AAR. Khi một ứng dụng được tạo bao gồm các cấu phần phần mềm này, các quy tắc này được hợp nhất với nhau và các quy tắc hợp nhất được dùng để tạo ra một hồ sơ ART nhị phân nhỏ gọn dành riêng cho ứng dụng. Sau đó, ART có thể tận dụng hồ sơ này khi ứng dụng được cài đặt 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 của ứng dụng, đặc biệt là lần chạy đầu tiên. Lưu ý rằng việc này sẽ không ảnh hưởng đến các ứng dụng có thể gỡ lỗi.
Phiên bản 1.0.0-beta08
Ngày 2 tháng 6 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta08
và androidx.compose.animation:animation-core:1.0.0-beta08
. Phiên bản 1.0.0-beta08 bao gồm các thay đổi sau.
Sửa lỗi
- Hiện tại,
detectDragGesures
,detectVerticalGestures
vàdetectHorizontalGestures
sẽ tự động thay đổi vị trí, không cần gọi change.consumePositionChange trong lệnh gọi lại onDrag (I42fc4, b/185096350), b/187320697) - Thay đổi
Modifier.onGloballyPositioned()
để báo cáo các toạ độ của đối tượng sửa đổi này trong chuỗi đối tượng sửa đổi, chứ không phải là toạ độ bố cục sau khi áp dụng tất cả các đối tượng sửa đổi. Tức là thứ tự của các công cụ sửa đổi hiện đang ảnh hưởng đến những toạ độ sẽ được báo cáo. (Ieb67d, b/177926591)
Phiên bản 1.0.0-beta07
Ngày 18 tháng 5 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta07
và androidx.compose.animation:animation-core:1.0.0-beta07
. Phiên bản 1.0.0-beta07 bao gồm các thay đổi sau.
Các thay đổi về API
- API
AnimatedVisibility
mới hỗ trợ chế độ hiển thị sẽ được chỉ định trongMutableTransitionState
. Việc này cũng cho phép quan sát các trạng thái hiệu ứng chuyển động bên ngoàiAnimatedVisibility
quacurrentState
vàisIdle
.- Hỗ trợ chuyển đổi tệp con mới trong Transition
- Hỗ trợ hiệu ứng chuyển động chuyển tiếp ra/vào tuỳ chỉnh trong AnimatedVisibility bằng cách sử dụng AnimationScope.transition
- Phương thức sửa đổi animateEnterExit mới có thể được truy cập qua tất cả tệp con của AnimatedVisibility
- Ngừng sử dụng API AnimatedVisibility sử dụng tham số
initiallyVisible
(I702f3)
Phiên bản 1.0.0-beta06
Ngày 5 tháng 5 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta06
và androidx.compose.animation:animation-core:1.0.0-beta06
. Phiên bản 1.0.0-beta06 bao gồm các thay đổi sau.
Phiên bản 1.0.0-beta05
Ngày 21 tháng 4 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta05
và androidx.compose.animation:animation-core:1.0.0-beta05
. Phiên bản 1.0.0-beta05 bao gồm các thay đổi sau.
Sửa lỗi
- Các tệp AndroidManifest của ui-test-manifest và ui-tooling-data hiện tương thích với Android 12 (I6f9de, b/184718994)
Phiên bản 1.0.0-beta04
Ngày 7 tháng 4 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta04
và androidx.compose.animation:animation-core:1.0.0-beta04
. Phiên bản 1.0.0-beta04 bao gồm các thay đổi sau.
Các thay đổi về API
- Các phiên bản công khai của
RowScope
,ColumnScope
,BoxScope
,BoxWithConstraintsScope
đã bị xoá. (I4e83e, b/181869067)
Phiên bản 1.0.0-beta03
Ngày 24 tháng 3 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta03
và androidx.compose.animation:animation-core:1.0.0-beta03
. Phiên bản 1.0.0-beta03 bao gồm các thay đổi sau.
Phiên bản 1.0.0-beta02
Ngày 10 tháng 3 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta02
và androidx.compose.animation:animation-core:1.0.0-beta02
. Phiên bản 1.0.0-beta02 bao gồm các thay đổi sau.
Sửa lỗi
- Thực thi các hạn chế về việc sử dụng công khai API thử nghiệm (I6aa29, b/174531520)
Phiên bản 1.0.0-beta01
Ngày 24 tháng 2 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-beta01
và androidx.compose.animation:animation-core:1.0.0-beta01
. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.
Đây là bản phát hành đầu tiên của Compose 1.0.0 Beta.
Các thay đổi về API
InteractionState
đã được thay thế bằng[Mutable]InteractionSource
- Giao diện chịu trách nhiệm phát / thu thập các sự kiện tương tác.
- Thay vì truyền
interactionState = remember { InteractionState() }
vào các thành phần nhưButton
vàModifier.clickable()
, hãy sử dụnginteractionSource = remember { MutableInteractionSource() }
. - Thay vì
Interaction.Pressed in interactionState
, bạn nên dùng các hàm mở rộng trên InteractionSource, chẳng hạn như InteractionSource.collectIsPressedAsState(). - Đối với các trường hợp sử dụng phức tạp, bạn có thể sử dụng InteractionSource.interactions để quan sát luồng tương tác. Hãy xem tài liệu và ví dụ về InteractionSource để biết thêm thông tin.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Các gói của phương thức smoothScrollBy và scrollBy đã thay đổi thành
androidx.compose.foundation.gestures.*
(I3f7c1, b/175294473) - Đã đổi tên công cụ sửa đổi kích thước. Modifier.width/height/size được đổi tên thành requiredWidth/requiredHeight/requiredSize Modifier.preferredWidth/preferredHeight/preferredSize được đổi tên thành width/height/size. (I5b414)
- Orientation (Hướng) đã được chuyển đến gói nền tảng. Chuyển VelocirtTracker từ ui.gesture sang ui.input.pointer. (Iff4a8, b/175294473)
- Xoá AnimationClockObservable và các lớp con. Xoá AnimatedFloat. (Icde52, b/177457083)
- Modifier.draggable hiện chấp nhận DraggableState thay cho một biểu thức lambda đơn giản. Bạn có thể tạo trạng thái thông qua
rememberDraggableState { delta -> }
để nhận được hành vi tương tự trước đây (Ica70f, b/175294473) - Xoá các API animate, animatedValue, AnimatedValue (If27bc, b/177457083)
- Xoá AnimationEndReason.Interrupted. CancellationException sẽ được gửi ra nếu hiệu ứng chuyển động bị gián đoạn. (I2cbbc, b/179695417)
- Xoá API TargetAnimation. (If47d1, b/177457083)
Phiên bản 1.0.0-alpha12
Ngày 10 tháng 2 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-alpha12
và androidx.compose.animation:animation-core:1.0.0-alpha12
. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.
Các thay đổi về API
Modifier.pointerInput
hiện yêu cầu các khoá nhớ cho biết thời điểm coroutine phát hiện con trỏ sẽ khởi động lại cho các phần phụ thuộc mới. (I849cd)- Đổi tên Bounds thành DpRect (I4b32a)
- Hợp nhất tên tham số cho AnimationSpec thành animationSpec trên hệ thống hiệu ứng chuyển động. Đồng thời, ràng buộc Enter/ExitTransition chấp nhận FiniteAnimationSpec. (Ie47c5, b/177457083)
- Animatable.snapTo và Animatable.stop hiện là các hàm tạm ngưng (If4288)
- Tương tự như cách trước đây chúng tôi đã xoá thành phần kết hợp
state { 0 }
và hiện khuyến khích sử dụngremember { mutableStateOf(0) }
, chúng tôi sẽ xoá thành phần kết hợpsavedInstanceState { 0 }
. Thay vào đó, bạn nên sử dụngrememberSaveable { mutableStateOf(0) }
. Thao tác này sẽ tự động lưu và khôi phục nếu bạn có thể lưu trữ loại được dùng trong MutableState trong Gói. Nếu trước đó bạn đã truyền đi một đối tượng trình lưu tuỳ chỉnh, thì bây giờ bạn cần sử dụng một nạp chồng mới của rememberSaveable có tham sốstateSaver
. Cách sử dụng sẽ có dạng như sau:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
(Ib4c26, b/177338004) - Chữ ký của phương thức Crossfade được cập nhật để nhất quán hơn với phần còn lại của hệ thống hiệu ứng chuyển động. (Ib05ed, b/177457083)
- rememberSavedInstanceState() đổi tên thành rememberSaveable() và chuyển sang gói androidx.compose.runtime.saveable. (I1366e, b/177338004)
- RestorableStateHolder đổi tên thành SaveableStateHolder và chuyển sang gói androidx.compose.runtime.saveable. Phương thức bên trong RestorableStateProvider đổi tên thành SaveableStateProvider. Loại chung đã được xoá, vì vậy, bạn có thể chỉ cần đặt Any làm khoá. Chú thích thử nghiệm không còn cần thiết nữa. (I0902e, b/174598702)
- Cập nhật Modifier.animateContentSize API để nhất quán với phần còn lại của hệ thống hiệu ứng chuyển động. (I0bf75, b/177457083)
- Hiện ngừng sử dụng AnimatedValue/Float. Thay vào đó, hãy sử dụng Animatable. (I71345, b/177457083)
- Ngừng sử dụng tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter và pressIndicaitonGestureFilter. Thay vào đó, hãy sử dụng Modifier.clickable hoặc Modifier.pointerInput với hàm detectTapGestures. (I6baf9, b/175294473)
- Giới thiệu thành phần ngữ cảnh coroutine
InfiniteAnimationPolicy
sẽ được áp dụng trong hiệu ứng chuyển động vô hạn. Theo mặc định, không có chính sách nào được cài đặt, trừ phi chạy thử nghiệm vớiComposeTestRule
. (I50ec4, b/151940543) - Xoá phương thức giải cấu trúc và copy() khỏi một số lớp mà chúng ít khi được sử dụng. (I26702, b/178659281)
- Thời gian phát trong hiệu ứng chuyển động hiện được hợp nhất tới nano giây (If776a)
- Hiện ngừng sử dụng cấu phần phần mềm compose:runtime-dispatch. Giờ đây, bạn có thể tìm thấy compose:runtime và AndroidUiDispatcher trong compose:ui. (Ib5c36)
- Thêm
Animation.isInfinite
vàVectorizedAnimationSpec.isInfinite
để báo hiệu nếu hiệu ứng chuyển động là vô hạn hay không. Việc này có thể được dùng trong quá trình triển khai hiệu ứng chuyển động để có cách xử lý đặc biệt cho các hiệu ứng chuyển động như vậy. Ví dụ: bạn có thể hiển thị một thông báo "thời gian còn lại" đặc biệt hoặc huỷ một hiệu ứng chuyển động trong quá trình kiểm thử để tránh phải chờ trạng thái rảnh vô thời hạn. (Iebb05, b/151940543) - Sử dụng loại Long thay vì Uptime làm loại thời gian hiệu ứng chuyển động (Ie3aa7, b/177420019)
Phiên bản 1.0.0-alpha11
Ngày 28 tháng 1 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-alpha11
và androidx.compose.animation:animation-core:1.0.0-alpha11
. Phiên bản 1.0.0-alpha11 bao gồm các thay đổi sau.
Các thay đổi về API
- Ngừng sử dụng cách chuyển tiếp TransitionDefinition-based (I0ac57)
- Một trường nhãn được thêm vào Transition và các hiệu ứng động để hiển thị chúng trong các công cụ (I619fb)
- animateAsState hiện là animateFooAsState, trong đó Foo là loại của biến được tạo hiệu ứng động, ví dụ: Float, Dp, Offset, v.v. (Ie7e25)
- InfiniteTransition mới chạy vô số các hiệu ứng chuyển động con. (I1da81)
- Thay đổi giao diện tham số trạng thái Material để có các hàm @Composable trả về
State<T>
. Thêm Animatable.asState() để giúp chuyển đổi một Animatable thành một State dễ dàng hơn. Đồng thời thay đổi animateElevation thành phần mở rộng tạm ngưng trên Animatable. (If613c)
Sửa lỗi
- Ngừng sử dụng onCommit, onDispose và onActive, thay vào đó là SideEffect API và DisposableEffect API (If760e)
- Trạng thái ban đầu trong updateTransition hiện đã được hỗ trợ (Ifd51d)
- Thêm tham số mô tả nội dung vào Image (Hình ảnh) và Icon (Biểu tượng). Tham số này được dùng để cung cấp thông tin mô tả cho các dịch vụ hỗ trợ tiếp cận (I2ac4c)
- Hiện ngừng sử dụng invalidate và compositionReference(), thay vào đó lần lượt là currentRecomposeScope và rememberCompositionReference. (I583a8)
- Thay thế Duration (Thời lượng) và Uptime (Thời gian hoạt động) bằng Long milliseconds (thời gian dài mili giây) và bước này sẽ xoá phần phụ thuộc của phương thức nhập con trỏ vào các lớp đó. (Ia33b2, b/175142755, b/177420019)
- Hiện có thể tạo các chức năng có thể nhấn, có thể chuyển đổi và có thể chọn bên ngoài cấu trúc (I0a130, b/172938345, b/175294473)
- Gia tốc đã được thay đổi thành giao diện chức năng (Ib14e5)
- Phương thức nhà máy mới của
items(count: Int)
cho phạm vi của LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
vàitemsIndexed(items: List)
hiện là các hàm mở rộng nên bạn phải nhập thủ công các hàm đó khi sử dụng. Các nạp chồng mở rộng mới cho Arrays: items(items: Array) và itemsIndexed(Array) (I803fc, b/175562574) - Tận dụng TestCoroutineDispatcher trong thử nghiệm (I532b6)
- Xoá PointerInputData và sửa đổi PointerInputChange để cung cấp cho tất cả các trường của PointerInputData. Nội bộ hoá PointerInputEvent và PointerInputEventData vì chúng không được sử dụng trong bất kỳ API công khai nào. (Ifff97, b/175142755)
Phiên bản 1.0.0-alpha10
Ngày 13 tháng 1 năm 2021
Phát hành androidx.compose.animation:animation:1.0.0-alpha10
và androidx.compose.animation:animation-core:1.0.0-alpha10
. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.
Các thay đổi về API
- Sửa đổi Velocity (Vận tốc) để có các thành phần và phép toán. (Ib0447)
- Đổi tên
@ExperimentalTesting
thành@ExperimentalTestApi
để nhất quán với các chú giải api thử nghiệm tương tự (Ia4502, b/171464963) - Đổi tên Position thành DpOffset và xoá getDistance() (Ib2dfd)
- Xoá api công khai Any.identityHashCode() (I025d7)
Sửa lỗi
- API
Animatable
dựa trên coroutine mới đảm bảo tính loại trừ lẫn nhau giữa các hiệu ứng chuyển động. DecayAnimationSpec mới để hỗ trợ hiệu ứng chuyển động phân rã đa chiều (I820f2, b/168014930) - Thay thế
animate()
bằnganimateAsState()
(trả vềState<T>
thay vìT
). Việc này tạo ra hiệu suất cao hơn do phạm vi vô hiệu hoá có thể được thu hẹp đến vị trí mà giá trị Trạng thái được đọc. (Ib179e)
Phiên bản 1.0.0-alpha09
Ngày 16 tháng 12 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha09
và androidx.compose.animation:animation-core:1.0.0-alpha09
. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.
Các thay đổi về API
- Chuyển Dp.VectorConverter, Position.VectorConverter, v.v. sang animation-core và ngừng sử dụng VectorConveter cũ (If0c4b)
- Chúng tôi đã ra mắt một bộ API Transition hoàn toàn mới, giúp bạn dễ dàng sử dụng và hỗ trợ các hiệu ứng chuyển động được thêm và các mục tiêu hiệu ứng chuyển động được tính toán một cách sinh động. Những API này được đánh dấu đang thử nghiệm để dễ dàng phân biệt với API TransitionDefinition-based. (Ia7fe3)
Sửa lỗi
- Biểu thức lambda trong công cụ sửa đổi độ chênh lệch hiện trả về kết quả IntOffset thay vì Float. (Ic9ee5, b/174137212, b/174146755)
- Ngừng sử dụng LazyColumnFor, LazyRowFor, LazyColumnForIndexed và LazyRowForIndexed. Thay vào đó, hãy sử dụng LazyColumn và LazyRow (I5b48c)
- Để tạm ngưng các API nhập con trỏ, đổi tên HandlePointerInputScope thành AwaitPointerEventScope và handlePointerInput() thành awaitPointerEventScope(). (Idf0a1, b/175142755)
- Hàm infiniteRepeatable mới dùng để tạo một InfiniteRepeatableSpec (I668e5)
- Xoá chú thích ExperimentalPointerInput (Ia7a24)
Phiên bản 1.0.0-alpha08
Ngày 2 tháng 12 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha08
và androidx.compose.animation:animation-core:1.0.0-alpha08
. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.
Các thay đổi về API
- Thêm mục kiểm tra tìm lỗi mã nguồn cho việc đặt tên và đặt tham số lambda của thành phần kết hợp, để kiểm tra tính nhất quán với nguyên tắc của Compose.
Ngoài ra, chúng tôi cũng đã di chuyển một số API sử dụng
children
dưới dạng tên cho lambda theo sau sangcontent
, theo hướng dẫn và mục kiểm tra tìm lỗi mã nguồn. (Iec48e) - Xoá các API nay không được dùng nữa:
Modifier.onPositioned
đã bị xoá, hãy sử dụngModifier.onGloballyPositioned
.Modifier.onDraw
đã bị xoá, hãy sử dụngModifier.onDrawBehind
.Modifier.plus
đã bị xoá, hãy sử dụngModifier.then
.Color.Unset
đã bị xoá, hãy sử dụngColor.Unspecified
.- Xoá lớp
PxBounds
, hãy dùngRect
. - (Ie9d02, b/172562222)
- Tạm thời thêm tuỳ chọn để cho phép điều khiển TestAnimationClock bằng MonotonicFrameClock (I1403b, b/173402197)
Sửa lỗi
- Đổi tên Modifier.drawLayer thành Modifier.graphicsLayer. Đồng thời cập nhật các lớp liên quan lên GraphicsLayer theo ý kiến phản hồi của hội đồng API. (I0bd29, b/173834241)
- Thêm API Modifier.scale/rotate để thuận tiện hơn cho drawLayer.
- Đổi tên Modifier.drawOpacity thành Modifier.alpha
- Đổi tên Modifier.drawShadow thành Modifier.shadow (I264ca, b/173208140)
- Đặt các trường thời gian hoạt động và vị trí của PointerInputData ở dạng không rỗng. (Id468a)
- Đổi tên phương thức sửa đổi offsetPx thành offset Công cụ này hiện đang sử dụng các thông số lambda thay vì Trạng thái. (Ic3021, b/173594846)
- Các API mới để chạy hiệu ứng chuyển động trong coroutine (Ied662)
- Ngừng sử dụng các Ambient được đặt tên với hậu tố là
Ambient
và thay thế chúng bằng các thuộc tính mới có tiền tố là Ambient, tuân theo các nguyên tắc khác về API Compose và Ambient. (I33440) - Tính năng kiểm soát thời gian trong chương trình kiểm thử (TestAnimationClock và cách sử dụng) đang được thử nghiệm (I6ef86, b/171378521)
- Xoá mô đun ui-test cũ và các mã giả lập của nó (I3a7cb)
- Hàm
RestorableStateHolder.withRestorableState
đã được đổi tên thànhRestorableStateProvider
(I66640) - Cập nhật và đưa giao diện Căn chỉnh (Alignment) đi vào hoạt động. (I46a07, b/172311734)
Phiên bản 1.0.0-alpha07
Ngày 11 tháng 11 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha07
và androidx.compose.animation:animation-core:1.0.0-alpha07
. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.
Sửa lỗi
- Ngừng sử dụng AmbientTextStyle, ProvideTextStyle và AmbientContentColor nền tảng. Thay vào đó, hãy sử dụng các phiên bản mới có trong thư viện Material. Đối với các ứng dụng không dùng Material, bạn nên chuyển sang tạo các Ambient chủ đề cụ thể cho hệ thống mình tự thiết kế để có thể sử dụng trong các thành phần của riêng mình. (I74acc, b/172067770)
- Ngừng sử dụng foundation.Text và thay thế bằng material.Text. Đối với một API văn bản cơ bản, không có quy cách bắt buộc và không sử dụng giá trị nào từ một giao diện. Hãy xem androidx.compose.foundation.BasicText. (If64cb)
- MeasureResult được xoá khỏi MeasureScope. (Ibf96d, b/171184002)
- Một số biểu tượng liên quan đến bố cục được chuyển từ androidx.compose.ui sang androidx.compose.layout.ui. (I0fa98, b/170475424)
Phiên bản 1.0.0-alpha06
Ngày 28 tháng 10 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha06
và androidx.compose.animation:animation-core:1.0.0-alpha06
. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.
Các thay đổi về API
- Bật tính năng chuyển đổi trong ComposeTestRule; xoá tuỳ chọn để bật con trỏ nhấp nháy từ ComposeTestRule. (If0de3)
Phiên bản 1.0.0-alpha05
Ngày 14 tháng 10 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha05
và androidx.compose.animation:animation-core:1.0.0-alpha05
. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.
Các thay đổi về API
- Giao diện và các lớp con mới của Hiệu ứng chuyển động (Animation): Các lớp này lưu trữ các điều kiện bắt đầu và kết thúc cho hiệu ứng chuyển động, do đó, chúng chỉ cho phép truy vấn giá trị và vận tốc thông qua thời gian chạy (Ie95bd, b/163329867)
Sửa lỗi
- Đổi tên OnPositionedModifier thành OnGloballyPositionedModifier và đổi tên onPositioned() thành onGloballyPositioned(). (I587e8, b/169083903)
Ngừng sử dụng các API contentColor() và currentTextStyle(), thay thế lần lượt bằng Ambient AmbientContentColor và AmbientTextStyle. Bạn có thể truy cập giá trị hiện tại bằng cách sử dụng
.current
trên thuộc tính môi trường xung quanh, giống như với bất kỳ môi trường xung quanh nào khác. Chúng tôi thực hiện thay đổi này để đảm bảo tính nhất quán và tránh có nhiều cách để thực hiện cùng một việc. Ngoài ra, đổi tên một số thuộc tính không gian xung quanh để mô tả rõ hơn mục đích của các thuộc tính này như sau:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Phiên bản 1.0.0-alpha04
Ngày 1 tháng 10 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha04
và androidx.compose.animation:animation-core:1.0.0-alpha04
. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.
Các thay đổi về API
- Chú giải rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled và textInputServiceFactory với @VisibleForTesting, tạo cho chúng API nội bộ và ẩn các kdoc (I554eb, b/168308412)
Sửa lỗi
- Cập nhật nhiều API Đồ hoạ
- Cập nhật các API biến đổi tỷ lệ và xoay vòng để sử dụng một tham số Offset duy nhất nhằm biểu thị toạ độ trục thay cho các tham số nổi riêng biệt của các toạ độ x/y trong DrawScope và DrawTransform
- Xoá phương thức Rect.expandToInclude và Rect.join
- Cập nhật tài liệu về Bán kính để hiển thị hình bầu dục ngoài hình elip
- Thêm tài liệu để cho biết hàm khởi tạo công khai cho lớp Radius (Bán kính) cùng dòng sẽ không được gọi trực tiếp, thay vào đó các đối tượng Radius (Bán kính) cần được khởi tạo thông qua hàm khởi tạo hàm
- Xoá các RoundRect API để truy vấn topRight, bottomRight, bottomCenter, v.v.
- Ngừng sử dụng Rect.shift thay vào đó là Rect.translate
- Xoá các API RoundRect.grow và Rect.shrink
- Đổi tên RoundRect.outerRect thành Rect.boundingRect
- Xoá các phương thức RoundRect.middleRect/tallMiddleRect/wideMiddleRect và Rect.isStadium
- Đổi tên RoundRect.longestSide thành RoundRect.maxDimension
- Đổi tên RoundRect.shortestSide thành RoundRect.minDimension
- Thay đổi RoundRect.center thành một thuộc tính thay vì một hàm
- Cập nhật hàm khởi tạo RoundRect để sử dụng các thuộc tính Radius (Bán kính) thay vì các tham số riêng lẻ cho giá trị bán kính x/y
- Xoá các API kích thước giả định đó là một hình chữ nhật với gốc tại điểm 0,0
- Thêm một API phá huỷ vào Radius
- Di chuyển nhiều hàm tiện ích mở rộng RoundRect để trở thành thuộc tính thay thế
- (I8f5c7, b/168762961)
- Ngừng sử dụng foundation.Box. Thay vào đó hãy dùng foundation.layout.Box. (Ie5950, b/167680279)
- Stack đã được đổi tên thành Box Box đã tồn tại trước đây sẽ không được dùng nữa, thay vào đó là Box mới trong compose.foundation.layout. Hành vi của Hộp (Box) mới là các thành phần con xếp chồng lên nhau khi có nhiều thành phần con. Điều này khác với Box trước có hành vi tương tự như Cột (Column). (I94893, b/167680279)
- Ngừng sử dụng các tham số trang trí Hộp (Box). Nếu bạn muốn có nội dung trang trí/khoảng đệm trên hộp, hãy sử dụng Đối tượng sửa đổi (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- Chúng tôi đã chặn tính năng nhập tĩnh nội dung của phạm vi bố cục (ví dụ: alignWithSiblings trong RowScope). Một phương án thay thế phạm vi rõ ràng nên được sử dụng:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Phiên bản 1.0.0-alpha03
Ngày 16 tháng 9 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha03
và androidx.compose.animation:animation-core:1.0.0-alpha03
. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.
Sửa lỗi
- Việc sử dụng trọng lực được đổi tên nhất quán để căn chỉnh hoặc định vị trí trong các API bố cục. (I2421a, b/164077038)
Phiên bản 1.0.0-alpha02
Ngày 2 tháng 9 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha02
và androidx.compose.animation:animation-core:1.0.0-alpha02
. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.
Các thay đổi về API
Thêm
ManualFrameClock.hasAwaiters
để xem có sự kiện nào đang chờ một khung từ đồng hồ đó hay không;runWithManualClock
thay thế chorunBlocking
khi chạy các bài kiểm thử cần dùng một ManualFrameClock;TestUiDispatcher.Main
giúp dễ dàng truy cập vào trình điều phối chính cho giao diện người dùng trong các bài kiểm thử của bạn.Ví dụ:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Sửa lỗi
Ngừng sử dụng onPreCommit; onCommit hiện có hành vi của onPreCommit.
onCommit và onActive hiện chạy trong cùng một khung choreographer mà những thay đổi cấu trúc được xác nhận (commit) ở trong thay vì ở đầu khung choreographer tiếp theo. (I70403)
Phiên bản 1.0.0-alpha01
Ngày 26 tháng 8 năm 2020
Phát hành androidx.compose.animation:animation:1.0.0-alpha01
và androidx.compose.animation:animation-core:1.0.0-alpha01
. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.
Phiên bản 0.1.0-dev
Phiên bản 0.1.0-dev17
Ngày 19 tháng 8 năm 2020
Phát hành androidx.compose.animation:animation:0.1.0-dev17
và androidx.compose.animation:animation-core:0.1.0-dev17
. Phiên bản 0.1.0-dev17 bao gồm các thay đổi sau.
Tính năng mới
Các thay đổi về API
- Offset trở thành lớp nội dòng (Iaec70)
- IntOffset hiện là lớp nội dòng (Iac0bf)
- IntSize hiện là lớp nội dòng (I2bf42)
Thành phần kết hợp AnimatedVisibilty tạo hiệu ứng chuyển động cho sự xuất hiện và biến mất của nội dung con.
Đưa EnterTransition và ExitTransition vào để làm việc với thành phần kết hợp AnimatedVisibilty nhằm cung cấp 3 loại hiệu ứng chuyển động xuất hiện và biến mất: làm mờ, trượt và phóng to/thu nhỏ nội dung. Bạn có thể kết hợp các loại hiệu ứng chuyển động khác nhau để có giao diện và cảm nhận riêng biệt. (Idda11)
Ngừng sử dụng PxBounds và thay bằng Rect. Đã cập nhật tất cả các cách sử dụng của PxBounds bằng hình chữ nhật và thêm các chú thích không dùng nữa/thay thế phù hợp để hỗ trợ quá trình di chuyển (I37038, b/162627058)
Sửa lỗi
PlacementScope.placeAbsolute()
đã được đổi tên thànhPlacementScope.place()
, cònPlacementScope.place()
trước đó đã được đổi tên thànhPlacementScope.placeRelative()
. Theo đó, phương thứcPlacementScope.place()
sẽ không tự động phản chiếu vị trí theo ngữ cảnh từ phải sang trái nữa. Nếu muốn, hãy sử dụngPlacementScope.placeRelative()
thay thế. (I873ac, b/162916675)- Ngừng sử dụng thành phần kết hợp
state { ... }
và thay bằng các lệnh gọi rõ ràng tớiremember { mutableStateOf(...) }
để đảm bảo sự rõ ràng. Điều này làm giảm giao diện API tổng thể và số lượng khái niệm để quản lý trạng thái, đồng thời khớp với mẫuby mutableStateOf()
theo uỷ quyền thuộc tính của lớp. (Ia5727)
Phiên bản 0.1.0-dev16
Ngày 5 háng 8 năm 2020
Phát hành androidx.compose.animation:animation:0.1.0-dev16
và androidx.compose.animation:animation-core:0.1.0-dev16
. Phiên bản 0.1.0-dev16 bao gồm các thay đổi sau.
Các thay đổi về API
- Các trình chuyển đổi vectơ được tích hợp sẵn dùng để chuyển đổi các đơn vị tích hợp hiện có thể truy cập được thông qua
Foo.VectorConverter
. Ví dụ:Dp.VectorConverter
,Color.VectorConverter
,Float.VectorConverter
, v.v. (I3e273) - Hỗ trợ trình nghe cuối trong
Modifier.animateContentSize()
để khi sự kiện thay đổi kích thước hiệu ứng chuyển động kết thúc, trình nghe sẽ được thông báo cùng với kích thước bắt đầu/kết thúc của hiệu ứng chuyển động. (I277b2) - Phương thức sửa đổi animateContentSize mới, hoạt hoá sự thay đổi kích thước bố cục của phương thức sửa đổi con. (Ieffdc)
Thêm
MonotonicFrameAnimationClock
cho phép bạn sử dụng MonotonicFrameClock như là mộtAnimationClockObservable
để làm cầu nối giữa các đồng hồ và API dựa trên coroutine mới mà vẫn sử dụng các đồng hồ dựa trên lệnh gọi lại cũ.MonotonicFrameClock
tương đương vớiManualAnimationClock
hiện làManualFrameClock
. (I111c7, b/161247083)
Sửa lỗi
- Các API dành cho hỗ trợ từ phải sang trái đã được cập nhật. Thêm LayoutDirectionAmbient dùng để đọc và thay đổi hướng bố cục. Xoá Modifier.rtl và Modifier.ltr. (I080b3)
- Yêu cầu chỉ định rõ loại T cho transitionDefinition. (I1aded)
- Gói foundation.shape.corner được làm phẳng thành foundation.share (I46491, b/161887429)
- Ngừng sử dụng Modifier.plus và thay vào đó là Modifier.then. "Then" có tín hiệu rõ ràng hơn về thứ tự, đồng thời nghiêm cấm nhập
Modifier.padding().background() + anotherModifier
, khiến cho chuỗi bị phá vỡ và khó đọc hơn (Iedd58, b/161529964) - Đổi tên Modifier.drawBackground thành Modifier.background (I13677)
Phiên bản 0.1.0-dev15
Ngày 22 tháng 7 năm 2020
Phát hành androidx.compose.animation:animation:0.1.0-dev15
và androidx.compose.animation:animation-core:0.1.0-dev15
. Phiên bản 0.1.0-dev15 bao gồm các thay đổi sau.
Cập nhật phần phụ thuộc
- Để sử dụng phiên bản
0.1.0-dev15
của Compose, bạn cần cập nhật các phần phụ thuộc theo đoạn mã mới xuất hiện trong phần Khai báo phần phụ thuộc bên trên.
Các thay đổi về API
- Thay đổi Transition API để trả về một TransitionState thay vì truyền TransitionState vào các thành phần con. Điều này giúp API nhất quán hơn với các API animate(). (I24e38)
- Thêm tham số sửa đổi cho Crossfade (I87cfe, b/159706180)
- Sử dụng AnimationSpec thay vì AnimationBuilder trong các API cấp cao nhất để làm rõ khái niệm về thông số kỹ thuật của hiệu ứng chuyển động tĩnh
- Cải thiện DSL chuyển tiếp bằng cách xoá yêu cầu lambda cho việc tạo AnimationSpecs, chẳng hạn như tween, spring. Thay vào đó, chúng trực tiếp lấy các tham số của hàm khởi tạo.
- Cải thiện khả năng dễ sử dụng của AnimationSpec khi mở các hàm khởi tạo thay vì dựa vào các trình tạo
- Thay đổi thời lượng và độ trễ cho KeyFrames và Tween thành Int. Việc này sẽ loại bỏ các sự thay đổi loại không cần thiết và nén chồng phương thức (để hỗ trợ cả Long và Int). (Ica0b4)
- Thay thế việc sử dụng IntPx bằng Int. Thay thế IntPxPosition bằng IntOffset. Thay thế IntPxSize bằng IntSize. (Ib7b44)
- Để thống nhất số lượng lớp được dùng để biểu thị thông tin kích thước, chuẩn hoá mức sử dụng lớp Size (Kích thước) thay vì PxSize. Điều này mang lại lợi ích của một lớp cùng dòng nhằm tận dụng giá trị độ dài để gói 2 giá trị độ chính xác đơn đại diện cho chiều rộng và chiều cao được biểu thị dưới dạng độ chính xác đơn. (Ic0191)
- Để thống nhất số lượng lớp đại diện cho thông tin vị trí, hãy chuẩn hoá việc sử dụng lớp Offset thay vì PxPosition. Điều này mang lại lợi ích của một lớp cùng dòng nhằm tận dụng giá trị độ dài để gói 2 giá trị độ chính xác đơn đại diện cho độ dời x và y được biểu thị dưới dạng giá trị độ chính xác đơn. (I3ad98)
- Thay thế việc sử dụng lớp Px trong nhiều lớp Compose như một phần của nỗ lực tái cấu trúc lớn để chỉ dựa vào Dp và các loại dữ liệu nguyên thuỷ cho các tham số pixel (I086f4)
- Thêm hỗ trợ animate() cho Dp, Px, Size, Position, Bounds, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds, và AnimationVector (Ib7518)
- Crossfade hiện chấp nhận tham số tuỳ chỉnh AnimationBuilder để cho phép định cấu hình hiệu ứng chuyển động (I6d6e0)
- Thay thế tất cả thuộc tính Color (Màu) có thể nhận giá trị rỗng trong API bằng các thuộc tính không nhận giá trị rỗng và sử dụng Color.Unset thay cho giá trị rỗng (Iabaa7)
- Xoá lớp ValueHolder. Tái cấu trúc các lớp AnimatedValue, AnimatedFloat để trừu tượng hoá trường giá trị của hiệu ứng chuyển động, nhờ đó, các lớp con có thể xem cập nhật giá trị.
- Thêm lớp mô hình cho AnimatedValue, AnimatedFloat, v.v.
- Thêm một bộ API @Composable trọng lượng nhẹ để tạo hiệu ứng chuyển động giữa các giá trị. (I79530)
- Các thay đổi có thể gây ra lỗi cho API môi trường xung quanh. Hãy xem nhật ký và tài liệu
Ambient<T>
để biết thông tin chi tiết (I4c7ee, b/143769776) - Chế độ lặp lại mới: Đảo ngược. Chế độ này đảo ngược chế độ lặp lại trước đó khi hiệu ứng chuyển động lặp lại trong RepeatableSpec hoặc VectorizedRepeatableSpec. (Ibe0f5)
- Các bổ sung API cho ManualAnimationClock
hasObservers: Boolean
và tham số hàm khởi tạodispatchOnSubscribe: Boolean
(Iaa134) - Thêm các API để nhận các giới hạn tối thiểu/tối đa trong AnimatedFloat (Icd9cc)
Sửa lỗi
runOnIdleCompose
đã được đổi tên thànhrunOnIdle
(I83607)- Đổi tên một số API kiểm thử để mang tính trực quan hơn. Tất cả các API findXYZ được đổi tên thành onNodeXYZ. Tất cả các API doXYZ được đổi tên thành performXYZ. (I7f164)
- Giới thiệu API hiệu ứng chuyển động không có trạng thái cấp thấp. Các API này (I63bf7)
- Thành phần kết hợp Recompose này không còn là một bản tóm tắt hữu ích nữa. Hầu hết quá trình kết hợp lại sẽ xảy ra do số lần gán MutableState. Đối với những dữ liệu khác, bạn nên dùng hàm
invalidate
để kích hoạt quá trình tái cấu trúc phạm vi hiện tại. (Ifc992) - Thay thế việc sử dụng lớp Px trong nhiều lớp Compose như một phần của nỗ lực tái cấu trúc lớn để chỉ dựa vào Dp và các loại dữ liệu nguyên thuỷ cho các tham số pixel. Xoá toàn bộ lớp Px (I3ff33)
- Thay thế việc sử dụng lớp Px trong nhiều lớp kết hợp như một phần của nỗ lực tái cấu trúc lớn để chỉ dựa vào các loại gốc và Dp cho các tham số pixel (Id3434)
- Crossfade hiện có thể hoạt động với giá trị rỗng dưới dạng giá trị ban đầu (Iad6a4, b/155947711)
- Thay thế việc sử dụng lớp Px trong nhiều lớp kết hợp như một phần của nỗ lực tái cấu trúc lớn để chỉ dựa vào các loại gốc và Dp cho các tham số pixel (I19d02)
- Thống nhất việc triển khai CanvasScope để chỉ có DrawScope và ContentDrawScope Đổi tên CanvasScope thành DrawScope. Cập nhật DrawScope để triển khai giao diện Mật độ (Density) và cung cấp LayoutDirection. Xoá lớp con DrawScope trong ContentDrawScope. Cập nhật Painter và PainterModifier để ngừng duy trì thuộc tính RTL vì DrawScope đã cung cấp thuộc tính này nên không cần cung cấp theo cách thủ công (I1798e)
- Cập nhật các API Compose lên cấp cao hơn để hiển thị CanvasScope thay cho Canvas. Việc này giúp người sử dụng không cần phải duy trì các đối tượng Paint của họ. Đối với những người sử dụng vẫn yêu cầu quyền truy cập vào Canvas, họ có thể dùng phương thức mở rộng drawCanvas. Phương thức này cung cấp một lệnh gọi lại để tạo ra một lệnh vẽ cho Canvas cơ bản. (I80afd)
- Thêm các tham số verticalGravity và horizontalGravity vào Row (Hàng) và Column (Cột) tương ứng. (I7dc5a)
- mô-đun ui-text được đổi tên thành ui-text-core (I57dec)
- Cải thiện API DrawModifier:
- Tạo phạm vi của trình thu nhận cho draw() ContentDrawScope
- Xoá mọi tham số trên draw()
- DrawScope có giao diện giống như CanvasScope cũ
- ContentDrawScope có phương thức drawContent() (Ibaced, b/152919067)
runOnIdleCompose
vàrunOnUiThread
hiện là các hàm chung chứ không phải phương thức trên ComposeTestRule. (Icbe8f)- Chuyển các toán tử uỷ quyền thuộc tính [Mutable]State sang phần mở rộng để hỗ trợ tính năng tối ưu hoá uỷ quyền thuộc tính Kotlin 1.4. Phương thức gọi phải thêm mục nhập để tiếp tục sử dụng
by state { ... }
hoặcby mutableStateOf(...)
. (I5312c) - Ngừng sử dụng ColoredRect. Thay vào đó, hãy sử dụng
Box(Modifier.preferredSize(width, height).drawBackground(color))
. (I499fa, b/152753731) - Thay thế Đối tượng sửa đổi cùng với toán tử bằng các hàm mở rộng factory (nhà máy) (I225e4)
- Ngừng sử dụng thành phần kết hợp Trung tâm (Center). Bạn có thể thay thế cấu trúc này bằng đối tượng sửa đổi LayoutSize.Fill + LayoutAlign.Center, hoặc với một trong các thành phần kết hợp Box hoặc Stack với các đối tượng sửa đổi thích hợp (Idf5e0)
- Đổi tên LayoutFlexible thành LayoutWeight. Đổi tên thông số chặt chẽ để điền. (If4738)
- Thay thế hàm có khả năng kết hợp Opacity thành đối tượng sửa đổi drawOpacity. (I5fb62)
- Các bài kiểm thử sử dụng AndroidComposeTestRule hiện cung cấp một đồng hồ hiệu ứng chuyển động ở gốc thành phần cho phép tạm dừng, tiếp tục và nâng cao theo cách thủ công. (Id54c5)
- Hỗ trợ hướng từ phải sang trái trong đối tượng sửa đổi LayoutPadding (I9e8da)
- Hợp nhất Density và DensityScope thành một giao diện. Bạn hiện có thể sử dụng DensityAmbient.current thay vì ambientDensity(). Sử dụng with(density) thay cho withDensity(density) (I11cb1)
- Thêm phương thức sao chép vào các loại lớp nội tuyến khác nhau, bao gồm:
- Chênh lệch
- Kích thước
- Bán kính
- Chuyển động
- TransformOrigin
- Ngừng sử dụng phương thức đối tượng đi kèm Size.copy, thay thế bằng phương thức sao chép thực thể (Ife290, b/159905651)
- androidx.compose.ViewComposer được chuyển sang androidx.ui.node.UiComposer
androidx.compose.Emittable đã được xoá. Nội dung này dư thừa so với ComponentNode. Xoá androidx.compose.ViewAdapters. Chúng không còn là trường hợp sử dụng được hỗ trợ.
Ngừng sử dụng Compose.composeInto. Thay vào đó, hãy sử dụng
setContent
hoặcsetViewContent
. Ngừng sử dụng Compose.disposeComposition. Thay vào đó, hãy sử dụng phương thứcdispose
trênComposition
đượcsetContent
trả về. Chuyển androidx.compose.Compose.subcomposeInto sang androidx.ui.core.subcomposeInto. Đổi tên ComponentNode#emitInsertAt thành ComponentNode#insertAt. Đổi tên ComponentNode#emitRemoveAt thành ComponentNode#removeAt. Đổi tên ComponentNode#emitMode thành ComponentNode#move (Idef00)