WindowManager

Thư viện Jetpack WindowManager cho phép nhà phát triển ứng dụng hỗ trợ các kiểu dáng thiết bị mới cũng như môi trường nhiều cửa sổ. Thư viện này cung cấp một nền tảng API phổ biến cho API phiên bản 14 trở lên. Bản phát hành ban đầu hướng đến thiết bị có thể gập lại, nhưng các phiên bản trong tương lai sẽ mở rộng ra thêm nhiều kiểu màn hình và tính năng cửa sổ.
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 22 tháng 2 năm 2023 1.0.0 - - 1.1.0-alpha06

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

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

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

Groovy

dependencies {
    implementation "androidx.window:window:1.0.0"

    // For Java-friendly APIs to register and unregister callbacks
    implementation "androidx.window:window-java:1.0.0"

    // For RxJava2 integration
    implementation "androidx.window:window-rxjava2:1.0.0"

    // For RxJava3 integration
    implementation "androidx.window:window-rxjava3:1.0.0"

    // For testing
    implementation "androidx.window:window-testing:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.0.0")

    // For Java-friendly APIs to register and unregister callbacks
    implementation("androidx.window:window-java:1.0.0")

    // For RxJava2 integration
    implementation("androidx.window:window-rxjava2:1.0.0")

    // For RxJava3 integration
    implementation("androidx.window:window-rxjava3:1.0.0")

    // For testing
    implementation("androidx.window:window-testing:1.0.0")
}

Ý 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.1

Phiên bản 1.1.0-alpha06

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

Phát hành androidx.window:window-*:1.1.0-alpha06. Phiên bản 1.1.0-alpha06 chứa các cam kết này.

Tính năng mới

  • Hiển thị phiên bản thử nghiệm lấy WindowLayoutInfo từ ngữ cảnh giao diện người dùng.

Các thay đổi về API

  • Thêm splitSupportStatus để cho biết liệu có thể nhúng Hoạt động hay không. (I10024)
  • Đặt API WindowLayoutInfo cho ngữ cảnh giao diện người dùng làm thử nghiệm. (I58ee0)
  • Giới thiệu WindowAreaController và API để bật Chế độ RearDisplay giúp di chuyển cửa sổ hiện tại sang màn hình được căn chỉnh cho phù hợp với máy ảnh sau. (Iffcbf)
  • Cập nhật màu nền mặc định. (I1ac1b)
  • Thêm các tham số SplitAttributes. (I18bdd)
  • Thêm các API cho SplitRule, SplitAttributes, SplitAttributesCalculator. (I92d23)
  • Cải thiện các API xoay quanh maxAspectRatio:
    1. Thay thế alwaysAllow()alwaysDisallow() bằng ALWAYS_ALLOWALWAYS_DISALLOW.
    2. Cập nhật tài liệu về API của @see bằng tài liệu độc lập. (I3057b)
  • Các hàm khởi tạo sau đây bị xoá khỏi API công khai vì các ứng dụng sẽ không gọi những hàm đó.
    • Hàm khởi tạo SplitInfo
    • Hàm khởi tạo ActivityStack (Ide534)
  • Giờ đây, SplitRule sẽ lấy maxAspectRatioInPortrait/Landscape. Hàm này chỉ cho phép phân tách hoạt động khi tỷ lệ khung hình của giới hạn gốc nhỏ hơn hoặc bằng maxAspectRatio được yêu cầu. (Ia5990)
  • Thay đổi RuleController#parseRules thành tĩnh (I785df)
  • Cải thiện các API xoay quanh ActivityEmbedding
    1. Điều chỉnh cách đặt tên API – Sử dụng thao tác thêm/xoá cho nhiều thực thể:
    2. registerRule thay đổi thành addRule
    3. unregisterRule thay đổi thành removeRule
    4. Thay thế getSplitRules bằng getRulesActivityRule không phải là quy tắc phân tách
    5. Thêm RuleController#setRules để đặt một loạt các quy tắc
    6. Trích xuất các API liên quan đến quy tắc từ SplitController sang singleton RuleController. Đó là:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. Trích xuất #isActivityEmbedded từ SplitController sang singleton ActivityEmbeddingController. Đó là:
    14. isActivityEmbedded
    15. Xoá SplitController#initialize. Để đặt quy tắc từ tệp XML, vui lòng sử dụng RuleController#parseRules#setRules. Trước thay đổi này: SplitController.initialize(context, R.xml.static_rules) Sau thay đổi này: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
    16. Chúng tôi không phân biệt các quy tắc tĩnh với quy tắc thời gian chạy nữa. Tuy nhiên, việc gọi kết quả #clearRules sẽ xoá tất cả quy tắc bất kể quy tắc được đăng ký với định nghĩa quy tắc XML tĩnh hay trong thời gian chạy. Để có hành vi cũ của SplitController#clearRegisteredRules, vui lòng gọi RuleController#parseRules kèm theo mã nhận dạng tài nguyên XML và gọi RuleController#setRules để đặt lại các quy tắc đó. Trước thay đổi này: SplitController.getInstance(context).clearRegisteredRules() Sau thay đổi này: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) (Ib3967)
  • Cải thiện API SplitRule:
    1. Lấy kích thước tối thiểu trong DP thay vì pixel cho SplitRule.
    2. Tái cấu trúc cho Trình tạo SplitRule để lấy kích thước tối thiểu ở dạng không bắt buộc. (I95f17)
  • Truyền một Ngữ cảnh để khởi động SplitController (I42549)
  • Đổi tên SplitRule#layoutDir thành #layoutDirectionSplitRule Builder#setLayoutDir thành Builder#setLayoutDirection. (I3f6d1)

Phiên bản 1.1.0-alpha04

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

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

Tính năng mới

  • Hiển thị một phương thức giúp xác định xem ActivityStack có trống cho ActivityEmbedding hay không.
  • Xoá thẻ API thử nghiệm khỏi API ActivityEmbedding.
  • Ẩn hàm khởi tạo ActivityRuleBuilder là cách xây dựng ưu tiên.
  • Thêm một phương thức thử nghiệm để nhận WindowInsets trên WindowMetrics.
  • Cập nhật SplitPlaceholderFinishBehavior để ngăn việc hoàn tất phần giữ chỗ. Việc hoàn tất phần giữ chỗ đã gây ra một số hành vi khó hiểu.

Các thay đổi về API

  • Đặt val isEmpty sang chế độ công khai để thay thế fun isEmpty.
  • Đổi tên các hoạt động của tham số ActivityStack thành activitiesInProcess. (Ia5055)
  • Xoá ActivityFilter#matchesClassNameActivityFilter#matchesClassNameOrWildCard vì chúng gây nhầm lẫn.
  • Thêm ActivityFilter#componentNameActivityFilter#intentAction để giúp phương thức gọi phân biệt các bộ lọc khác nhau (I41f22)
  • Xoá API @Deprecated khỏi API thử nghiệm (I216b3)
  • Xoá @ExperimentalWindowApi cho API nhúng hoạt động (I69ebe)
  • Ẩn hàm khởi tạo ActivityRule, sử dụng Trình tạo. (If4eb6)
  • Thêm API để kiểm tra xem một Hoạt động có thuộc ActivityFilter hay không. (Ia43cf)
  • Cập nhật các tệp API để phản ánh các thay đổi trong lớp WindowMetricsWindowMetricsCalculatorCompat (I667fe)
  • Cập nhật tên lớp và Javadoc cho thuộc tính của ActivityEmbedding (Ia1386)
  • Việc thêm tên thẻ thuộc tính ActivityEmbedding sẽ được dùng trong AndroidManifest.xml (Id1ad4)
  • Thêm API mới: SplitPlaceholderFinishBehaviorSplitPlaceholderRule.finishPrimaryWithPlaceholder, để thay thế cho SplitPlaceholderRule.finishPrimaryWithSecondary hiện tại (API này hiện xác định cách thức hoạt động của các hoạt động liên quan trong quy trình Nhúng hoạt động tại thời điểm hoàn tất hoạt động giữ chỗ). (I64647)

Sửa lỗi

  • Giới thiệu WindowAreaController và API để bật Chế độ RearDisplay giúp di chuyển cửa sổ hiện tại đến màn hình được căn chỉnh cho phù hợp với máy ảnh sau. (I388ab)

Phiên bản 1.1.0-alpha03

Ngày 27 tháng 7 năm 2022

Phát hành androidx.window:window-*: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 các giá trị mặc định cho quy tắc nhúng.

Các thay đổi về API

  • Cập nhật các giá trị mặc định cho thuộc tính quy tắc nhúng. (Ic4d35)

Phiên bản 1.1.0-alpha02

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

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

Tính năng mới

  • Phát hành các thư viện bộ chuyển đổi để hỗ trợ Java và RxJava.

Phiên bản 1.1.0-alpha01

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

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

Tính năng mới

  • Phát hành bộ chuyển đổi để hỗ trợ java và RxJava

Phiên bản 1.1.0-alpha01

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

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

Tính năng mới

  • Khắc phục lỗi các tính năng gấp ngừng phát khi người dùng chuyển một ứng dụng vào chạy trong nền.
  • Mở rộng thử nghiệm trên API ActivityEmbedding.

Các thay đổi về API

  • API công khai để kiểm tra xem có hoạt động nào đang được nhúng hay không. (I39eb7)

Sửa lỗi

  • Thêm API tuỳ chỉnh hành vi hoàn tất cho các vùng chứa trong quá trình chia hoạt động (I1a1e4)
  • Thêm tuỳ chọn cấu hình mới cho quy tắc chia hoạt động. (Iec6af)

Phiên bản 1.0

Phiên bản 1.0.0

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

Phát hành androidx.window:window-*: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

  • Hỗ trợ điện thoại gập qua WindowInfoTrackerFoldingFeature. WindowMetricsCalculator để giúp tính WindowMetrics hiện tại.

Phiên bản 1.0.0-rc01

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

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

Tính năng mới

  • Hỗ trợ cho điện thoại gập với WindowInfoTracker.
  • Thêm các phương thức để tính WindowMetrics hiện tại và tối đa.
  • Thêm các API kiểm thử hỗ trợ.

Phiên bản 1.0.0-beta04

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

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

Tính năng mới

  • Đổi tên WindowInfoRepository thành WindowInfoTracker.
  • Biến Activity thành một phần phụ thuộc phương thức tường minh cho WindowInfoTracker.
  • Thêm một TestRule đơn giản cho WindowsMetricsCalculator để hỗ trợ nhà phát triển sử dụng Robolectric.

Các thay đổi về API

  • Trích xuất tiện ích (I25a5f)
  • Thêm isEmpty trong ActivityStack (I5a4e6)
  • Đổi tên WindowInfoRepository thành WindowInfoTracker.
    • Cập nhật các phần phụ thuộc java/rxjava/testing để khớp. (I0da63)
  • Thêm quy tắc kiểm thử cho một WindowMetricsCalculator đơn giản. (Ibacdb)

Phiên bản 1.0.0-beta03

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

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

Tính năng mới

  • Thêm API Nhúng hoạt động (Activity Embedding) thử nghiệm Phiên bản bố cục ban đầu này cho phép hiển thị hai Hoạt động (Activity) cạnh nhau.

Các thay đổi về API

  • Xoá API currentWindowMetrics vì chúng tôi không thể cung cấp chính xác giá trị. Thay vào đó, vui lòng sử dụng WindowMetricsCalculator (Icda5f)
  • Cập nhật API tiện ích. (Ica92b)
  • Thêm giao diện cho một tính năng mới cho phép nhúng các hoạt động và hiển thị chúng bên cạnh nhau trong cửa sổ tác vụ mẹ. (I5711d)
  • Ẩn hàm khởi tạo cho WindowsMetrics và WindowLayoutInfo, vui lòng chuyển sang sử dụng API kiểm thử. (I5a1b5)
  • Thêm API để tạo đối tượng WindowLayoutInfo giả. (I4a2fd)

Sửa lỗi

Phiên bản 1.0.0-beta02

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

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

Tính năng mới

  • Thêm chú giải thử nghiệm để chú thích API thử nghiệm. (I9f1b6)
  • Thêm phương pháp kiểm thử để tạo FoldingFeature kiểm thử chấp nhận Rect. Việc này sẽ giúp bạn dễ dàng kiểm thử khi sử dụng Robolectric trái ngược với một Activity thực. (Id1cca)

Phiên bản 1.0.0-beta01

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

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

Tính năng mới

  • Xoá các hằng số cũ và khiến FoldingFeature trở thành một giao diện.

Các thay đổi về API

  • Xoá các hằng số cũ và khiến FoldFeature trở thành một giao diện. (I9a2d5)

Sửa lỗi

  • Các thư viện phụ thuộc vào thư viện Test Core được nâng cấp lên phiên bản 1.4.0 và nay hoạt động được trên nền tảng Android phiên bản S. (I88b72, b/189353863)

Phiên bản 1.0.0-alpha10

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

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

Tính năng mới

  • Đổi tên WindowInfoRepo thành WindowInfoRepository và điều chỉnh các lớp/tệp tương ứng.
  • Chuyển đổi chỉ số cửa sổ hiện tại thành một Luồng (Flow) trong WindowsInfoRepository vì giá trị này thay đổi theo thời gian.
  • Đổi tên WindowInfoRepoJavaAdapter thành WindowInfoRepoCallbackAdapter
  • Thêm phương thức hỗ trợ tạo đối tượng kiểm thử FoldingFeature
  • Cập nhật các gói để nhóm các lớp dựa trên tính năng được hỗ trợ.

Các thay đổi về API

  • Đổi tên ActivityExt thành ActivityExtensions Đổi tên Repo thành Repository. (I61a16)
  • Cập nhật các gói cho lớp. (I23ae2)
  • Xoá WindowMetrics khỏi WindowInfoRepo (I24663)
  • Xoá WindowManager và sử dụng WindowInfoRepo
    • Biến WindowBackend thành thuộc tính nội bộ. (I06d9a)
  • Chuyển đổi chỉ số cửa sổ thành Luồng (Flow).
    • Đổi tên trình chuyển đổi java thành WindowInfoRepoCallbackAdapter
    • Xoá callbackFlow để không còn API thử nghiệm nào được sử dụng. (Ia4d15)
  • Thêm phương thức hỗ trợ để tạo tính năng hiển thị kiểm thử.
    • Thay đổi từ occlusionMode thành occlusionType (If4cff)

Sửa lỗi

  • Khắc phục lỗi Proguard trong đó thư viện cốt lõi đang bị xoá.
  • Khắc phục lỗi trong đó WindowLayoutInfo không được phân phối cho người đăng ký khác.
  • Khắc phục lỗi trong đó các thay đổi về cấu hình sẽ không kích hoạt các bản cập nhật tính năng gập.

Phiên bản 1.0.0-alpha09

Ngày 30 tháng 6 năm 2021

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

Tính năng mới

  • Thay đổi từ hằng số nguyên sang giá trị enum không ràng buộc.
  • Thêm một bản kiểm thử để tạo tính năng gấp kiểm thử.

Các thay đổi về API

  • Thêm phương thức hỗ trợ để tạo tính năng hiển thị phép kiểm thử. (I3cf54)
    • Đổi occlusionMode thành occlusionType.

Sửa lỗi

  • Phát ra giá trị ban đầu khi thêm nhiều người dùng sử dụng luồng dữ liệu.

Phiên bản 1.0.0-alpha08

Ngày 16 tháng 6 năm 2021

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

Tính năng mới

  • Phát hành cấu phần phần mềm kiểm thử giúp dễ dàng kiểm thử hơn khi sử dụng WindowInfoRepository. Sử dụng WindowInfoRepository để nhận thông tin về DisplayFeatures và WindowMetrics. (I57f66, Ida620)

Phiên bản 1.0.0-alpha07

Ngày 2 tháng 6 năm 2021

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

Tính năng mới

  • Di chuyển thư viện cửa sổ cốt lõi sang Kotlin. Sẽ sử dụng coroutine và các hàm tạm ngưng để hiển thị dữ liệu không đồng bộ từ giờ trở đi.
  • Thêm WindowInfoRepo làm điểm tương tác chính để nhận WindowMetrics và luồng WindowLayoutInfo.
  • Cấu phần phần mềm window-java mới sẽ hiển thị các API sử dụng được cho Java để đăng ký và huỷ đăng ký các lệnh gọi lại.
  • Các cấu phần phần mềm window-rxjava2window-rxjava3 mới sẽ hiển thị các API được điều chỉnh cho RxJava.

Các thay đổi về API

  • Thêm WindowServices để cung cấp các phần phụ thuộc một cách thống nhất.
    • Thêm API dựa trên coroutine để xử lý thông tin về bố cục cửa sổ. (Iab70f)
  • Di chuyển thư viện trình quản lý cửa sổ cốt lõi sang Kotlin. (Icca34)

Sửa lỗi

  • Thêm lớp dữ liệu mới để thể hiện các điều kiện ràng buộc tính năng. (I6dcd1)

Phiên bản 1.0.0-alpha06

Ngày 5 tháng 5 năm 2021

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

Tính năng mới

  • Chúng tôi đã bắt đầu quá trình chuyển sang Kotlin và sẽ hoàn tất trong bản phát hành tiếp theo.
  • DeviceState đã bị xoá khỏi API công khai, vui lòng sử dụng FoldingFeature.
  • Chúng tôi đã xoá STATE_FLIPPED khỏi trạng thái FoldingFeature vì hiện không được bất kỳ trường hợp sử dụng nào hỗ trợ.
  • Chúng tôi cũng đã xoá những API khác không dùng nữa.

Các thay đổi về API

  • Thêm Kotlin làm phần phụ thuộc.
    • Di chuyển thư viện Core sang Kotlin. (Idd995)
  • Xoá trình tạo DisplayFeature. (I61fa4)
  • Xoá DeviceState khỏi API công khai, hãy dùng FoldingFeature. (Id6079)
  • Xoá lệnh gọi lại trạng thái thiết bị khỏi tiện ích. (I5ea83)
  • Xoá STATE_FLIPPED khỏi FoldingFeature. (I9c4e1)
  • Xoá các phương thức đăng ký không dùng nữa. (Ib381b)

Phiên bản 1.0.0-alpha05

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

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

Tính năng mới

Chúng tôi đã thêm các phương thức thuận tiện vào FoldingFeature để ứng dụng biết được tính năng này có đang chia tách, che khuất và xác định hướng của bản lề hay không. Chúng tôi cũng đang ẩn loại bản lề để

Chúng tôi sẽ xoá các phương thức đọc đồng bộ khỏi WindowManager. Phương thức đọc đồng bộ dễ gặp lỗi do có một tình huống tương tranh ngầm ẩn. Đăng ký trình nghe (event listener) và lệnh gọi lại để nhận thông tin cập nhật trên WindowLayoutInfo.

Các thay đổi về API

  • Thêm các phương thức thuận tiện để xử lý FoldingFeatures (Ie733f)
  • Xoá các phương thức đọc đồng bộ khỏi WindowManager (I96fd4)

Phiên bản 1.0.0-alpha04

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

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

Tính năng mới

  • Khắc phục lỗi không phát WindowLayoutInfo nếu OEM không triển khai. Giờ đây chúng tôi phát ra tín hiệu WIndowLayoutInfo trống.
  • Khắc phục lỗi trạng thái không cập nhật đúng nếu trạng thái bản lề thay đổi khi ứng dụng đang chạy ở chế độ nền. Trạng thái nay đã nhất quán trở lại.
  • Cập nhật các tệp Proguard để bỏ qua cảnh báo khỏi các phần phụ thuộc thời gian chạy.

Sửa lỗi

  • Phát ra tín hiệu giá trị trống khi thiếu thư viện OEM. (Ide935)

Phiên bản 1.0.0-alpha03

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

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

Tính năng mới

  • Phát ra tín hiệu giá trị trống cho WindowLayoutInfo khi triển khai OEM trống. Việc này sẽ giúp bạn dễ dàng sử dụng thư viện trên nhiều thiết bị hơn. Do các API không đồng bộ nên vẫn khuyến khích viết một số mã phòng thủ cho ứng dụng và phát ra tín hiệu giá trị mặc định sau khi hết thời gian chờ. Chúng tôi không đảm bảo về việc triển khai của OEM và giá trị ban đầu có thể bị chậm trễ.

Sửa lỗi

  • Phát ra tín hiệu giá trị trống khi thiếu thư viện OEM. (Ide935)

Phiên bản 1.0.0-alpha02

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

Phát hành androidx.window:window:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm những thay đổi sau.

Tính năng mới

  • Chúng tôi không dùng một số API nữa để giúp đơn giản hoá API và giảm sai sót. Có thể kể đến một số ví dụ đáng chú ý như xoá hoạt động đọc đồng bộ khỏi WindowManager và ngừng sử dụng DeviceState. Các thao tác đọc đồng bộ có thể dẫn đến tình huống tương tranh và giao diện người dùng thể hiện không chính xác.

  • Chúng tôi đã chuyển đổi DisplayFeature thành một giao diện mà các tính năng khác sẽ triển khai trong tương lai. Tính năng đầu tiên là FoldingFeature, tức là đường gập màn hình hoặc bản lề. Tính năng này cũng chứa trạng thái của bản lề thay thế cho DeviceState.

  • WindowMetrics ra mắt trong phiên bản Android 11 cung cấp cho các nhà phát triển tính năng truy vấn chỉ số về một cửa sổ theo cách đơn giản, chẳng hạn như vị trí và kích thước của cửa sổ trên màn hình và phần lồng ghép của hệ thống nào đó. Chúng tôi đã điều chỉnh API cho phiên bản cũ trong bản phát hành này để nhà phát triển có thể tận dụng WindowMetrics và tiếp tục hỗ trợ các phiên bản Android trước đây. Có thể lấy WindowMetrics thông qua WindowManager#getCurrentWindowMetrics() và các API WindowManager#getmaximumWindowMetrics().

Các thay đổi về API

  • Các API không còn được dùng nữa sẽ bị xoá trong phiên bản alpha tiếp theo (Ib7cc4)
  • Cập nhật ExtensionInterface để chấp nhận các tham chiếu tường minh đến thuộc tính Activity. (I07ded)
  • Giới thiệu WindowMetrics API. (I3ccee)
  • Xoá các phương thức đọc đồng bộ khỏi WindowManager (I69983)
  • Bảo vệ gói ExtensionWindowsBackend. (Ied208)

Sửa lỗi

  • Cập nhật các API ExtensionInterface để chấp nhận bối cảnh dạng hình ảnh. (I8e827)

Đóng góp bên ngoài

  • Hợp nhất DeviceState và WindowsLayoutInfo để truy cập dữ liệu dễ dàng hơn. (Id34f4)

Phiên bản 1.0.0-alpha01

Ngày 27 tháng 2 năm 2020

Phát hành androidx.window:window:1.0.0-alpha01androidx.window:window-extensions:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau. Đây là bản phát hành đầu tiên của thư viện Trình quản lý cửa sổ (Window Manager).

Tính năng mới

  • DisplayFeature: API mới này xác định các yếu tố gián đoạn trên bề mặt màn hình phẳng liên tục, chẳng hạn như bản lề hoặc đường gập màn hình
  • DeviceState: API mới này cho biết tư thế hiện tại của điện thoại trong danh sách tư thế đã xác định (ví dụ: CLOSED, OPENED, HALF_OPENED, v.v.)