Hiệu ứng chuyển động trong Compose

Tạo hiệu ứng chuyển động trong các ứng dụng Jetpack Compose để làm phong phú trải nghiệm người dùng.
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 8 tháng 2 năm 2023 1.3.3 - 1.4.0-beta01 -

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ómMô tả
compose.animationTạo hiệu ứng chuyển động trong các ứng dụng Jetpack Compose để làm phong phú trải nghiệm người dùng.
compose.compilerBiế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.foundationViế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.materialXây dựng các giao diện người dùng Compose Jetpack 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.material3Xâ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ó 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.runtimeCá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.uiCá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ữ Google Maven 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.3.3"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.4.2"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.animation:animation:1.3.3")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.4.2"
    }

    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.

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

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-beta01androidx.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-alpha05androidx.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-alpha04androidx.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ên InfiniteTransitionTransition (ví dụ: InfiniteTransition#animateColor) (I56ef7)

Các thay đổi về API

  • Các API InfiniteTransition#TransitionAnimationStateInfiniteTransition#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-alpha03androidx.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ếp withFrameNanos hoặc withFrameMillis 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ạo TestMonotonicFrameClock và hàm nhà máy để chạy mã sau lệnh gọi lại withFrameNanos 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-alpha02androidx.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-alpha01androidx.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.3androidx.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.2androidx.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.1androidx.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.0androidx.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-rc01androidx.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-beta03androidx.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-beta02androidx.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-beta01androidx.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-alpha03androidx.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, animateAsStateAnimatable 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-alpha02androidx.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-alpha01androidx.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.1androidx.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.0androidx.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ợ repeatCountrepeatMode

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-rc03androidx.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-rc02androidx.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-rc01androidx.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-beta03androidx.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-beta02androidx.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-beta01androidx.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-alpha08androidx.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-alpha07androidx.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ợ repeatCountrepeatMode (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-alpha06androidx.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-alpha05androidx.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-alpha04androidx.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-alpha03androidx.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-alpha02androidx.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-alpha01androidx.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ất AnimatedImageVector. (I9c300)

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.1androidx.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ại androidx.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.0androidx.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-rc03androidx.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-rc01androidx.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ất AnimatedImageVector. (I9c300)

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-beta04androidx.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-beta03androidx.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-beta02androidx.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-beta01androidx.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-alpha06androidx.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-alpha05androidx.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ố API AnimatedVisibility đã được ổn định. Không còn thử nghiệm MutableTransitionState.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-alpha04androidx.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-alpha03androidx.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 Kotlin 1.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-alpha02androidx.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-alpha01androidx.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ô-đun androidx.compose.animation:animation-graphics mới. (I60873)

Sửa lỗi

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.5androidx.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.4androidx.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.3androidx.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.2androidx.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.1androidx.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.0androidx.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à AGP 7.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-rc02androidx.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-rc01androidx.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 sang androidx.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-beta09androidx.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ụng ContentTransform 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ụng composeTestRule.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 trong src/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ụng adb 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, SP để 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ớp androidx.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ức fun isPlaced(): Boolean trên LayoutNode có chữ ký isPlaced()Z.

  • Những mẫu này có thể có ký tự đại diện (**, *?) để 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-beta08androidx.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, detectVerticalGesturesdetectHorizontalGestures 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-beta07androidx.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 trong MutableTransitionState. 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ài AnimatedVisibility qua currentStateisIdle.
    • 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-beta06androidx.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-beta05androidx.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-beta04androidx.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-beta03androidx.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-beta02androidx.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-beta01androidx.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ư ButtonModifier.clickable(), hãy sử dụng interactionSource = 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-alpha12androidx.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ụng remember { mutableStateOf(0) }, chúng tôi sẽ xoá thành phần kết hợp savedInstanceState { 0 }. Thay vào đó, bạn nên sử dụng rememberSaveable { 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ới ComposeTestRule. (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.isInfiniteVectorizedAnimationSpec.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-alpha11androidx.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)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-alpha10androidx.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ằng animateAsState() (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-alpha09androidx.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-alpha08androidx.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 sang content, 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ụng Modifier.onGloballyPositioned.
    • Modifier.onDraw đã bị xoá, hãy sử dụng Modifier.onDrawBehind.
    • Modifier.plus đã bị xoá, hãy sử dụng Modifier.then.
    • Color.Unset đã bị xoá, hãy sử dụng Color.Unspecified.
    • Xoá lớp PxBounds, hãy dùng Rect.
    • (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ành RestorableStateProvider (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-alpha07androidx.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-alpha06androidx.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-alpha05androidx.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-alpha04androidx.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-alpha03androidx.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-alpha02androidx.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ế cho runBlocking 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")
        }
    }
    

    (I0a85b, b/161247083)

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-alpha01androidx.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-dev17androidx.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ành PlacementScope.place(), còn PlacementScope.place() trước đó đã được đổi tên thành PlacementScope.placeRelative(). Theo đó, phương thức PlacementScope.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ụng PlacementScope.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ới remember { 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ẫu by 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-dev16androidx.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ột AnimationClockObservable để 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ới ManualAnimationClock 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-dev15androidx.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ạo dispatchOnSubscribe: 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ành runOnIdle (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)
  • runOnIdleComposerunOnUiThread 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ặc by 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ặc setViewContent. Ngừng sử dụng Compose.disposeComposition. Thay vào đó, hãy sử dụng phương thức dispose trên Composition được setContent 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)