ผู้จัดการหน้าต่าง
androidx.window
androidx.window.core
androidx.window.embedding
androidx.window.layout
androidx.window.testing .layout
อัปเดตล่าสุด | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
4 กันยายน 2024 | 1.3.0 | - | - | 1.4.0-alpha02 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน WindowManager คุณต้องเพิ่มที่เก็บ Google Maven ไปยัง โปรเจ็กต์ของคุณ อ่านแล้ว ที่เก็บ Maven ของ Google สำหรับข้อมูลเพิ่มเติม
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับ
ในแอปหรือโมดูล
ดึงดูด
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูที่ ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนที่จะสร้างใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา เพื่อดูข้อมูลเพิ่มเติม
เวอร์ชัน 1.4
เวอร์ชัน 1.4.0-alpha02
4 กันยายน 2024
ปล่อย androidx.window:window-*:1.4.0-alpha02
แล้ว เวอร์ชัน 1.4.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เพิ่มการรองรับ WindowSizeClass
ที่กำหนดเอง
- เปิดเครื่องมือสร้างสำหรับ
WindowSizeClass
เพื่อให้นักพัฒนาซอฟต์แวร์ใช้ตัวสร้างได้ - เพิ่มวิธียูทิลิตี
isAtLeast
เพื่อให้นักพัฒนาซอฟต์แวร์ประมวลผลช่วงของค่าWindowSizeClass
ได้ - เพิ่มฟังก์ชันส่วนขยายใน
Set<WindowSizeClass>
เพื่อคำนวณผลลัพธ์ที่ตรงที่สุดจากชุด - เพิ่มค่าคงที่สำหรับเบรกพอยท์ที่ Android แนะนำ
- เพิ่มชุดเบรกพอยท์ที่สอดคล้องกับเบรกพอยท์ที่ Android แนะนำ
การเปลี่ยนแปลง API
- อัปเดตชื่อเมธอดขอบเขตสำหรับ
WindowSizeClass
(If89a6) - อัปเดต
WindowSizeClass
API เพื่อรองรับการเพิ่มค่าเบรกพอยท์ใหม่ในอนาคต เราจะใช้ขอบเขตล่างแทนขอบเขตสัมบูรณ์ และแนะนำให้นักพัฒนาแอปใช้การตรวจสอบขอบเขตล่างเมื่อประมวลผลWindowSizeClass
เราจะเลิกใช้งานWindowWidthSizeClass
และWindowHeightSizeClass
ที่มีอยู่เนื่องจากจะไม่มีการพัฒนาเพิ่มเติม (I014ce)
เวอร์ชัน 1.4.0-alpha01
7 สิงหาคม 2024
ปล่อย androidx.window:window-*:1.4.0-alpha01
แล้ว เวอร์ชัน 1.4.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ActivityStack Pinning ทำให้แอปปักหมุดเนื้อหาในคอนเทนเนอร์หนึ่งและแยกการนำทางออกจากอีกคอนเทนเนอร์หนึ่งได้
- ตัวแบ่งแบบอินเทอร์แอกทีฟทำให้แอปแสดงตัวแบ่งคงที่หรือลากได้ระหว่าง 2 กิจกรรมในงานนำเสนอแบบแยกได้
- การลดแสงกล่องโต้ตอบแบบเต็มหน้าจออนุญาตให้แอประบุพื้นที่หรี่แสงของกล่องโต้ตอบ โดยจะหรี่แสงทั้งหน้าต่างงานหรือหรี่เฉพาะคอนเทนเนอร์ที่แสดงกล่องโต้ตอบ
- การเรียกกลับข้อมูลหน้าต่างกิจกรรมที่ฝังอนุญาตให้แอปได้รับการอัปเดตของหน้าต่างกิจกรรมที่ฝังอยู่อย่างต่อเนื่อง
- การฝังพื้นหลังภาพเคลื่อนไหวทำให้แอปสามารถระบุพื้นหลังของภาพเคลื่อนไหว ซึ่งจะปรับปรุงคุณภาพภาพเคลื่อนไหวของการเปลี่ยนเมื่อใช้
ActivityEmbedding
- การจัดการสแต็กกิจกรรมที่ได้รับการปรับปรุงช่วยให้แอปควบคุม
ActivityStacks
ได้มากขึ้นเมื่อใช้ActivityEmbedding
ซึ่งรวมถึงสิ่งต่อไปนี้ - กำลังเปิดกิจกรรมใน
ActivityStack
ที่ระบุ - เรียน
ActivityStack
จบ
การเปลี่ยนแปลง API
API ใหม่
WindowInfoTracker#supportedPostures
:- API ที่ระบุว่าอุปกรณ์รองรับโหมด TableTop สำหรับอุปกรณ์แบบพับได้หรือไม่ เพิ่ม WindowAreaSessionDisplayer#getWindow
เพิ่ม API เพื่อรองรับการปักหมุด
ActivityStack
:SplitPinRule
ชั้นเรียนSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
เพิ่ม API เพื่อเปิดใช้และกำหนดค่าตัวแบ่งแบบอินเทอร์แอกทีฟ
DividerAttributes
ชั้นเรียนSplitAttributes.Builder#setDividerAttributes
เพิ่ม API เพื่อตั้งค่า
EmbeddingConfiguration
และDimAreaBehavior
สำหรับกล่องโต้ตอบEmbeddingConfiguration
ชั้นเรียนDimAreaBehavior
ชั้นเรียนActivityEmbeddingController#setEmbeddingConfiguration
เพิ่ม API เพื่อรับข้อมูลอัปเดตเกี่ยวกับหน้าต่างกิจกรรมที่ฝัง
EmbeddedActivityWindowInfo
ชั้นเรียนActivityEmbeddingController#embeddedActivityWindowInfo
เพิ่ม API เพื่อตั้งค่าพื้นหลังของภาพเคลื่อนไหวที่ฝัง
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
เพิ่ม API เพื่อดำเนินการ
ActivityStacks
ให้เสร็จสิ้นActivityEmbeddingController#finishActivityStacks
เพิ่ม API เพื่อตั้งค่าการเปิด
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
API ต่อไปนี้มีความเสถียรและไม่อยู่ในช่วงทดลองอีกต่อไป
ActivityEmbeddingController#invalidateVisibleActivityStacks
(ย้ายจาก SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
เพิ่ม API สำหรับ 1.4 (I56774)
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องบนอุปกรณ์บางอย่างที่ระบบจะส่งคืน UNAVAILABLE แทนที่จะเป็น "ACTIVE" เมื่อเซสชันกำลังดำเนินอยู่
- ยกเลิกการรองรับ
transferActivityToWindowArea
ในอุปกรณ์ที่มีvendorApiLevel
เป็น 2 เนื่องจากการรองรับ API ไม่เสถียร - แนะนำ API เพื่อเปิดใช้เส้นแบ่งแบบลากไปยังโหมดเต็มหน้าจอกิจกรรมแบบฝังได้ (I645c9)
- อนุญาตให้แอปปิดใช้ภาพเคลื่อนไหว
ActivityEmbedding
ผ่านพารามิเตอร์ภาพเคลื่อนไหวสำหรับSplitAttributes
(Idc01a) - นำการระบุการเข้าถึง API ของแพลตฟอร์มใหม่ออกด้วยตนเอง เนื่องจากการดำเนินการนี้จะเกิดขึ้นโดยอัตโนมัติผ่านการสร้างแบบจำลอง API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับบิลด์ทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ไคลเอ็นต์ที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 หรือใหม่กว่า ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (Ia60e0, b/345472586)
- อนุญาตให้ส่วนขยายรับพารามิเตอร์ภาพเคลื่อนไหวสำหรับ
SplitAttributes
เพื่อให้อุปกรณ์ใช้สำหรับการเปลี่ยนภาพเคลื่อนไหวได้ (Iede00) - ซ่อน API การซ้อนทับ (Ic4251)
- แนะนำ API เพื่อกำหนดค่าตัวแบ่งแบบคงที่หรือแบบลากได้สำหรับการแยก (Ia7a78)
- เพิ่มความหนาแน่นใน
WindowMetrics
(Id6723) แล้ว - เพิ่ม API เพื่อรับ
SupportedPostures
(If557a) - นำ
setLaunchingActivityStack
ออกจาก API ทดลอง (I191cf) - แนะนำ
ActivityEmbeddingController#embeddedActivityWindowInfo
(I24312) - เลิกใช้งาน
#getToken
และเพิ่ม#getActivityStackToken
(Ie0471) - แนะนำอะแดปเตอร์ Callback สำหรับ
embeddedActivityWindowInfo
Flow API (Ida77f) - เพิ่มอะแดปเตอร์ Callback สำหรับOverlayInfoflow API (I7264f)
- แนะนำ
WindowSdkExtensionsRule
เพื่อลบล้างextensionsVersion
สำหรับการทดสอบ (Ifb928) - - ย้ายข้อมูล
#setLaunchingActivityStack
ไปยังแพ็กเกจเพื่อให้สอดคล้องกับการใช้งานActivityOptionsCompat
- ผู้ใช้ควรส่ง
activityOptions.toBundle
แทนActvityOptions
- นำ
#setLaunchingActivityStack(Activity)
ออก ผู้ใช้ควรย้ายข้อมูลเพื่อใช้ActivityEmbeddingController#getActivityStac(Activity)
เพื่อรับActivityStack
และส่งActivityStack
ไปยัง#setLaunchingActivityStack
(Ie0ccc)
- ผู้ใช้ควรส่ง
- - แนะนำ
ActivityStack.Token
และSpltInfo.Token
เป็นตัวระบุเพื่อสื่อสารระหว่าง WM Jetpack และส่วนขยาย- เลิกใช้งาน/แทนที่ API เพื่อรับ/ส่งคืนโทเค็นแทน IBinder (I12b24)
- - แนะนำ
ActivityEmbeddingController#invalidateVisibleActivityStacks
- นํา
SplitController#invalidateTopVisibleSplitAttributes
ออก เนื่องจากฟีเจอร์นี้รวมเป็น#invalidateVisibleActivityStacks
(I02ef5)
- นํา
- - การเพิ่ม API เพื่อกำหนดการกำหนดค่าการฝัง (I59a4a)
- - กำลังเพิ่ม PIN/เลิกปักหมุด API
ActivityStack
androidx.Window
ด้านบน- กำลังอัปเดตแอปเดโมเพื่ออนุญาตการปักหมุด/เลิกปักหมุด
ActivityStack
ด้านบน (I24dd3)
- กำลังอัปเดตแอปเดโมเพื่ออนุญาตการปักหมุด/เลิกปักหมุด
- เพิ่ม
#finishActivityStacks
และActivityEmbeddingOptions
อีกครั้ง (Ic1ab3) - นำ API ที่ไม่เสถียรออก (Ibc534, b/302380585)
เวอร์ชัน 1.3
เวอร์ชัน 1.3.0
29 พฤษภาคม 2024
ปล่อย androidx.window:window-*:1.3.0
แล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0
- การรองรับ Kotlin Multiplatform สำหรับ Window Size Class
เวอร์ชัน 1.3.0-rc01
14 พฤษภาคม 2024
WindowManager
Jetpack 1.3 รองรับ Kotlin Multiplatform สำหรับฟีเจอร์ WindowSizeClass
และการแก้ไขข้อบกพร่องหลายรายการ
ปล่อย androidx.window:window-*:1.3.0-rc01
แล้ว เวอร์ชัน 1.3.0-rc01 มีคอมมิตเหล่านี้
เวอร์ชัน 1.3.0-beta02
1 พฤษภาคม 2024
ปล่อย androidx.window:window-*:1.3.0-beta02
แล้ว เวอร์ชัน 1.3.0-beta02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ยกเลิกการรองรับการสร้างและใช้
WindowSizeClass
ที่กำหนดเอง (รหัส1143)
แก้ไขข้อบกพร่อง
- แก้ไข
KotlinReflectionInternalError
ที่เกิดจาก Proguard ที่ลบบางไฟล์ในการใช้งานอุปกรณ์บางอย่าง (I01b02)
เวอร์ชัน 1.3.0-beta01
3 เมษายน 2024
ปล่อย androidx.window:window-*:1.3.0-beta01
แล้ว เวอร์ชัน 1.3.0-beta01 มีคอมมิตเหล่านี้
เวอร์ชัน 1.3.0-alpha03
6 มีนาคม 2024
ปล่อย androidx.window:window-*:1.3.0-alpha03
แล้ว เวอร์ชัน 1.3.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แยก
WindowSizeClassUtil
เป็นวิธีที่เจาะจงมากขึ้น (Ie9292) - กู้คืน
WindowSizeClass#compute
(I21355, b/324293374)
แก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องที่บริบทที่ระบุไม่ได้รับการแยกอย่างถูกต้อง (94d10ce , b/318787482)
เวอร์ชัน 1.3.0-alpha02
7 กุมภาพันธ์ 2024
ปล่อย androidx.window:window-*:1.3.0-alpha02
แล้ว เวอร์ชัน 1.3.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การอัปเดตพื้นผิว API ของ Window Size Class API เพื่อปรับปรุงความยืดหยุ่นให้กับนักพัฒนาซอฟต์แวร์ที่ต้องการใช้คลาสขนาดของตนเอง
การเปลี่ยนแปลง API
- เพิ่มการจำกัดความสูงในตัวเลือกความกว้าง (I23393)
- เพิ่มฟังก์ชันยูทิลิตีสำหรับการเลือก
WindowSizeClass
จากชุด เพิ่มฟังก์ชันการให้คะแนนแบบทดลองเพื่อให้นักพัฒนาแอปเขียนตัวเลือกของตัวเองได้ เพิ่มฟังก์ชันส่วนขยายตัวเลือกเพื่อเลือกWindowSizeClass
ที่กว้างที่สุดภายในขอบเขตที่กำหนด (I0c944) - เปิดตัวสร้าง
WindowSizeClass
เพื่อให้สามารถเพิ่มเบรกพอยท์ที่กำหนดเอง (Ic1ff3) - เพิ่มฟังก์ชันความสะดวกเพื่อสร้างคลาสขนาดจากความกว้าง ความสูง และความหนาแน่น (If67f4)
แก้ไขข้อบกพร่อง
- แก้ไขข้อยกเว้นเมื่อตัดค่าจำนวนลอยตัวเป็น 0 (272ffac)
เวอร์ชัน 1.3.0-alpha01
15 พฤศจิกายน 2023
ปล่อย androidx.window:window-*:1.3.0-alpha01
แล้ว เวอร์ชัน 1.3.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- ตอนนี้การทดสอบ API สำหรับการสร้าง
FoldingFeature
มีความเสถียรแล้ว - ตอนนี้การทดสอบ API สําหรับการตั้งค่า
ActivityEmbedding
ปลอมมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลฟีเจอร์แบบพับเป็นพารามิเตอร์UiContext
- แสดงเวอร์ชันส่วนขยายในอุปกรณ์
- ค่าคงที่
WindowProperties
สำหรับการลบล้างผู้ใช้ต่อแอป:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
— แจ้ง ระบบที่แอปเลือกไม่ใช้ความเข้ากันได้กับสัดส่วนภาพที่แสดงต่อผู้ใช้ ลบล้างPROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
— แจ้ง ระบบที่แอปเลือกไม่ใช้ตัวเลือกแบบเต็มหน้าจอของผู้ใช้ การตั้งค่าการลบล้างความเข้ากันได้ของสัดส่วนภาพ
เวอร์ชัน 1.2
เวอร์ชัน 1.2.0
15 พฤศจิกายน 2023
ปล่อย androidx.window:window-*:1.2.0
แล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- ตอนนี้การทดสอบ API สำหรับการสร้าง
FoldingFeature
มีความเสถียรแล้ว - ตอนนี้การทดสอบ API สําหรับการตั้งค่า
ActivityEmbedding
ปลอมมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลฟีเจอร์แบบพับเป็นพารามิเตอร์UiContext
- แสดงเวอร์ชันส่วนขยายในอุปกรณ์
เวอร์ชัน 1.2.0-rc01
1 พฤศจิกายน 2023
ปล่อย androidx.window:window-*:1.2.0-rc01
แล้ว เวอร์ชัน 1.2.0-rc01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- ตอนนี้การทดสอบ API สำหรับการสร้าง
FoldingFeature
มีความเสถียรแล้ว - ตอนนี้การทดสอบ API สําหรับการตั้งค่า
ActivityEmbedding
ปลอมมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลฟีเจอร์แบบพับเป็นพารามิเตอร์UiContext
- แสดงเวอร์ชันส่วนขยายในอุปกรณ์
เวอร์ชัน 1.2.0-beta04
18 ตุลาคม 2023
ปล่อย androidx.window:window-*:1.2.0-beta04
แล้ว เวอร์ชัน 1.2.0-beta04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ API ที่ไม่เสถียรออก (Ibc534, b/302380585)
เวอร์ชัน 1.2.0-beta03
20 กันยายน 2023
ปล่อย androidx.window:window-*:1.2.0-beta03
แล้ว เวอร์ชัน 1.2.0-beta03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มการตรวจสอบ
RequiresApi
รายการสำหรับ API ที่ต้องใช้ส่วนขยายเวอร์ชันที่เจาะจงเพื่อให้ทำงานได้อย่างถูกต้อง - เพิ่ม API เพื่อแสดงเวอร์ชันส่วนขยายในอุปกรณ์
การเปลี่ยนแปลง API
- ใส่คำอธิบายประกอบเวอร์ชันส่วนขยาย SDK หน้าต่างที่จำเป็นใน API สาธารณะ
- นำ
isXXXSupported
ออกจากคอมโพเนนต์การฝังกิจกรรม (Ie3dae)
- นำ
- แนะนำ
WindowSdkExtensions
เพื่อรายงานเวอร์ชันของส่วนขยายในอุปกรณ์- แนะนำ
RequiresWindowSdkExtension
เพื่อใส่คำอธิบายประกอบเวอร์ชันส่วนขยายขั้นต่ำที่ต้องใช้ (I05fd4)
- แนะนำ
- ทําให้
WindowAreaInfo#getCapability
เป็นค่าว่างไม่ได้ (I17048)
เวอร์ชัน 1.2.0-beta01
26 กรกฎาคม 2023
ปล่อย androidx.window:window-*:1.2.0-beta01
แล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดง API หน้าต่างทดลองสำหรับการเข้าถึงหน้าจอด้านหลัง
- ตอนนี้การทดสอบ API สำหรับการสร้าง
FoldingFeature
มีความเสถียรแล้ว - ตอนนี้การทดสอบ API สําหรับการตั้งค่า
ActivityEmbedding
ปลอมมีความเสถียรแล้ว - ตอนนี้
WindowLayoutInfoPublisherRule
จะรายงานการลบล้างเมื่อได้รับค่าจากUiContext
WindowInfoTracker
รายงานข้อมูลฟีเจอร์แบบพับเป็นพารามิเตอร์UiContext
การเปลี่ยนแปลง API
- ระบุว่า
WindowArea
API เป็น API รุ่นทดลองเพื่ออนุญาตให้มีการเปลี่ยนแปลง API ต่อสำหรับรุ่นที่มีความเสถียรในเวอร์ชัน 1.3 (I857f5) - อัปเดตไฟล์ API เพื่อให้มีคำอธิบายประกอบสำหรับการระงับความเข้ากันได้ (I8e87a, b/287516207)
เวอร์ชัน 1.2.0-alpha03
21 มิถุนายน 2023
ปล่อย androidx.window:window-*:1.2.0-alpha03
แล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- นำ API ที่เลิกใช้งานแล้วออกจากแพลตฟอร์ม API
- เพิ่ม API เพื่อรองรับจอแสดงผลพร้อมกัน
- เพิ่มพร็อพเพอร์ตี้เพื่อเลือกไม่ใช้การลบล้างการปรับขนาดที่บังคับ
- เพิ่มพร็อพเพอร์ตี้เพื่อเลือกไม่ใช้การลบล้างสัดส่วนภาพขั้นต่ำ
- ปรับให้
ActivityEmbeddingRule
คงที่เพื่อรองรับการทดสอบ 1 หน่วยเกี่ยวกับการฝังกิจกรรม
การเปลี่ยนแปลง API
แก้ไขข้อบกพร่อง
- การเพิ่มพร็อพเพอร์ตี้ความเข้ากันได้ของการเลือกไม่ใช้สำหรับการลบล้างการปรับขนาดแบบบังคับ (Ie7ab1)
- นํา
SESSION_STATE_CONTENT_INVISIBLE
ออกจากอินเทอร์เฟซส่วนขยาย (I6ed19) - ปรับให้
ActivityEmbeddingRule
คงที่เพื่อรองรับการทดสอบ 1 หน่วยเกี่ยวกับการฝังกิจกรรม (I8d6b6) - การเพิ่มคุณสมบัติการปฏิบัติตามข้อกำหนดของการเลือกไม่ใช้สำหรับการลบล้างสัดส่วนภาพขั้นต่ำ (I66390)
- นำ WindowArea API ที่เลิกใช้งานแล้ว (Ieb67c) ออก
- เปลี่ยนชื่อพร็อพเพอร์ตี้ลูปคำขอการวางแนวเป็น
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
(Ie2fbd) - อัปเดตชื่อคงที่ของเซสชันพื้นที่หน้าต่าง (I83675)
- การเพิ่มพร็อพเพอร์ตี้ความเข้ากันได้ของการเลือกไม่ใช้ที่ละเว้นลูปคำขอการวางแนวเมื่อตรวจพบ (I0a7a2)
- เพิ่ม
WindowAreaComponent#STATUS_ACTIVE
เพื่อแสดงว่าฟีเจอร์นี้ทำงานอยู่แล้ว (I62bc3) - เพิ่ม API ของ
RearDisplayPresentationMode
(I0401c) - นำ API สีพื้นหลังออกเพื่อให้เสถียร (I34c3e)
- ซ่อน API พื้นที่หน้าต่าง (I39de0)
- เพิ่มเมธอดเพื่อลบล้าง
SplitInfo
ในSplitController
เพิ่มวิธีทดสอบเพื่อสร้างการแสดงผลสำหรับSplitInfo
และActivityStack
(Icd69f) - กำหนดให้ใช้แท็กหรือไม่ก็ได้สำหรับ
ActivityRule.Builder
(Ib0b44) - นำ
RatioSplitType
,ExpandContainersSplit
และHingeSplitType
ออก เป็นSplitType
แล้ว- แทนที่
#splitEqually()
,#expandContainers()
และ#splitByHinge
เป็นค่าคงที่SplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
และSPLIT_TYPE_HINGE
- นำฟังก์ชันนี้ออกเพื่อตั้งค่าประเภทสำรองของประเภทบานพับ หากไม่สามารถใช้ประเภทการแยกบานพับเนื่องจากสถานะอุปกรณ์หรือหน้าต่างปัจจุบัน ระบบจะใช้ประเภทการแยกดังกล่าวแทนเพื่อแบ่งคอนเทนเนอร์งานระดับบนสุดเท่าๆ กัน ใช้
SplitController#setSplitAttributesCalculator
เพื่อปรับแต่งประเภทการแยกวิดีโอสำรอง (Ifcc59)
- แทนที่
- เลิกใช้งาน
add
/removeSplitCallback
- ย้าย
add
/removeSplitCallback
ไปที่SplitControllerCallbackAdapter
- เพิ่มการสนับสนุน
Flow
เพื่อรับรายการSplitInfo
(I7f1b6)
- ย้าย
- เพิ่มกฎทดสอบสำหรับ
ActivityEmbeddingController
(I42e9b) - กำลังเปลี่ยนชื่อ
ActivityOptionsCompat
เป็นActivityEmbeddingOptions
(I89301) - เพิ่ม
splitSupportStatus
เพื่อระบุว่าการฝังกิจกรรมพร้อมใช้งานหรือไม่ (I10024) - แนะนำ
SplitAttributes.BackgroundColor
เพื่อให้แสดงค่าDEFAULT
ได้ดียิ่งขึ้น ชี้แจงว่าระบบไม่สนับสนุนสีพื้นหลังของภาพเคลื่อนไหวที่ไม่ทึบแสง ดังนั้นสีที่ไม่ทึบแสงจะถือว่าเป็นสีเริ่มต้น ซึ่งหมายความว่าจะใช้สีพื้นหลังของหน้าต่างธีมปัจจุบัน (Ic6b95) - แทนที่
alwaysAllow()
และalwaysDisallow()
ด้วยALWAYS_ALLOW
และALWAYS_DISALLOW
(I3057B) - เพิ่ม API สำหรับ
SplitRule
,SplitAttributes
,SplitAttributesCalculator
(I92d23) - เพิ่ม
TestActivityStack
เพื่อสร้างActivityStack
สำหรับการทดสอบ- เพิ่ม
TestSplitInfo
เพื่อสร้างSplitInfo
สำหรับการทดสอบ (I8e779)
- เพิ่ม
- เพิ่มวิธีสร้าง
SplitAttributesCalculatorParams
ปลอมเพื่อให้นักพัฒนาแอปยืนยันSplitAttributesCalculator
ที่ปรับแต่งของตน (Id4a6e) - เพิ่ม
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
และWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
(I66c7f)
เวอร์ชัน 1.2.0-alpha02
7 มิถุนายน 2023
ปล่อย androidx.window:window-*:1.2.0-alpha02
แล้ว เวอร์ชัน 1.2.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดต API การทดสอบให้มีค่าคงที่สำหรับฟีเจอร์การพับที่ไม่ได้ระบุไว้
- การลบล้างด้วย
WindowLayoutInfoPublishRule
จะลบล้างค่าทั้งหมดของwindowLayoutInfo
รวมถึง API ที่อิงตามบริบท
การเปลี่ยนแปลง API
- เพิ่มค่าคงที่สำหรับฟีเจอร์การพับตรงกลางที่ไม่ได้ระบุ (I7530C)
แก้ไขข้อบกพร่อง
- อัปเดต
WindowLayoutInfoPublishRule
เพื่อรองรับการลบล้างที่อิงตามWindowLayoutInfo
ที่อิงตามContext
(I2037a)
เวอร์ชัน 1.2.0-alpha01
24 พฤษภาคม 2023
ปล่อย androidx.window:window-*:1.2.0-alpha01
แล้ว เวอร์ชัน 1.2.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
ปรับไม่ให้ API การทดสอบทำงานได้อย่างราบรื่นในการฝังกิจกรรมและ WindowLayoutInfoTracker
ActivityEmbeddingRule
ได้รับการโปรโมตเป็นเวอร์ชันเสถียร
WindowMetricsCalculatorRule
ได้รับการโปรโมตเป็นเวอร์ชันเสถียร
ระบบได้เลื่อนระดับฟังก์ชันยูทิลิตีที่สร้าง FoldingFeature
สำหรับการทดสอบเป็น "เสถียร" แล้ว
การเปลี่ยนแปลง API
- ปรับให้
ActivityEmbeddingRule
คงที่เพื่อรองรับการทดสอบ 1 หน่วยเกี่ยวกับการฝังกิจกรรม (I8d6b6) WindowMetrisCalculatorTestRule
คงที่ซึ่งอนุญาตให้ใช้เมตริก Stub สำหรับการทดสอบ JVM ได้ เราขอแนะนำให้ใช้โปรแกรมจำลองเพื่อให้ได้ผลลัพธ์ที่แม่นยำ- ปรับให้ API การทดสอบเสถียรสำหรับ
WindowLayoutInfo
เพื่อรองรับการทดสอบ JVM (Ie036e) - เพิ่ม
IntRange
สำหรับการทดสอบการพับค่า (I69f7d)
เวอร์ชัน 1.1
เวอร์ชัน 1.1.0
7 มิถุนายน 2023
ปล่อย androidx.window:window-*:1.1.0
แล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.0.0
การฝังกิจกรรม
- เพิ่ม
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
เป็นพร็อพเพอร์ตี้บูลีนของแท็ก<application>
ในไฟล์ Manifest ของแอป - เลิกใช้งาน
isSplitSupported
และแทนที่ด้วยsplitSupportStatus
เพื่อแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสาเหตุที่ใช้ฟีเจอร์การแยกไม่ได้ - เพิ่มคลาสที่ซ้อนกันของ
SplitController.SplitSupportStatus
เพื่อระบุค่าคงที่สถานะสำหรับพร็อพเพอร์ตี้splitSupportStatus
- เปลี่ยนโครงสร้างภายในโค้ด
SplitController
เป็นหลายโมดูลแล้ว:- โมดูล
ActivityEmbeddingController
สำหรับ API ที่เกี่ยวข้องActivity
หรือActivityStack
- ย้าย
isActivityEmbedded
จากSplitController
ไปที่ActivityEmbeddingController
- โมดูล
RuleController
สำหรับการดำเนินการที่เกี่ยวข้องEmbeddingRule
: - นำ API
SplitController
รายการออกแล้ว: clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- API ที่เพิ่ม
RuleController
รายการ: addRule()
— เพิ่มกฎหรืออัปเดตกฎที่มีแท็กเดียวกันremoveRule()
— นำกฎออกจากการรวบรวมกฎที่ลงทะเบียนsetRules()
— สร้างชุดกฎclearRules()
— นำกฎทั้งหมดที่ลงทะเบียนออกparseRules()
— แยกวิเคราะห์กฎจากคำจำกัดความกฎ XML
- โมดูล
- โมดูลทั้งหมดต้องมีบริบทเพื่อเริ่มต้นโดยใช้เมธอด
#getInstance()
ซึ่งรวมถึงActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- เพิ่มคลาส
EmbeddingAspectRatio
เพื่อกำหนดค่าคงที่พฤติกรรมแบบ Enum ที่เกี่ยวข้องกับสัดส่วนภาพในการแสดงผล - เพิ่มคลาส
SplitAttributes
เพื่อกำหนดเลย์เอาต์การแยกแล้ว - เพิ่มฟังก์ชันเครื่องคำนวณ
SplitAttributes
ในSplitController
เพื่อปรับแต่งเลย์เอาต์แบบแยก:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
เพื่อตรวจสอบว่าอุปกรณ์รองรับ API ของSplitAttributesCalculator
หรือไม่
- เพิ่มช่อง
EmbeddingRule#tag
แล้ว - การอัปเดต API ใน
SplitRule
:- เพิ่ม
defaultSplitAttributes
แล้ว — กำหนดเลย์เอาต์การแยกเริ่มต้นของการแยก แทนที่splitRatio
และlayoutDirection
- เพิ่มการแปลของคุณสมบัติ XML
splitRatio
และsplitLayoutDirection
ในdefaultSplitAttributes
- เปลี่ยนการกำหนดขนาดขั้นต่ำไปใช้ความหนาแน่นของพิกเซลอิสระ (dp) แทนพิกเซลแล้ว
- เพิ่ม
minHeightDp
ซึ่งมีค่าเริ่มต้น 600dp - เปลี่ยน
minWidth
เป็นminWidthDp
โดยมีค่าเริ่มต้นเป็น 600 dp - เปลี่ยน
minSmallestWidth
เป็นminSmallestWidthDp
โดยมีค่าเริ่มต้นเป็น 600 dp - เพิ่ม
maxAspectRatioInHorizontal
ด้วยค่าเริ่มต้นALWAYS_ALLOW
- เพิ่ม
maxAspectRatioInPortrait
ด้วยค่าเริ่มต้น 1.4 - กำหนดคลาสที่ซ้อนกันของ
FinishBehavior
เพื่อแทนที่ค่าคงที่ลักษณะการทำงานให้เสร็จสิ้น - ใช้การเปลี่ยนแปลงพร็อพเพอร์ตี้กับคลาส
SplitPairRule
และSplitPlaceholderRule
ของเครื่องมือสร้างที่ซ้อนกัน
- เพิ่ม
- แทนที่
SplitInfo#getSplitRatio()
ด้วยSplitInfo#getSplitAttributes()
เพื่อให้ข้อมูลเพิ่มเติมที่เกี่ยวข้องกับการแบ่งแล้ว
เลย์เอาต์หน้าต่าง
- เพิ่มการรองรับบริบท UI ที่ไม่มีกิจกรรมรุ่นทดลองใน
WindowInfoTracker
- เพิ่มบริบท UI การไม่ใช้งานรุ่นทดลองไปยัง
WindowMetricsCalculator
แล้ว
ขั้นตอนการย้ายข้อมูล
- หากต้องการเปิดใช้การฝังกิจกรรมเพื่อแสดงกิจกรรมแบบแยกส่วน แอปต้องเพิ่มพร็อพเพอร์ตี้
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
ลงในแท็ก<application>
ของไฟล์ Manifest ดังนี้xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
วิธีนี้จะช่วยให้ระบบเพิ่มประสิทธิภาพลักษณะการแบ่งฝั่งของแอปพลิเคชันได้ล่วงหน้า - อัตราส่วน
SplitInfo
- ตรวจสอบว่าการแบ่งปัจจุบันซ้อนกันหรือไม่ โดยทำดังนี้
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- ตรวจสอบอัตราส่วนปัจจุบัน ดังนี้
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- ตรวจสอบว่าการแบ่งปัจจุบันซ้อนกันหรือไม่ โดยทำดังนี้
- การย้ายข้อมูล SplitController
SplitController.getInstance()
เปลี่ยนเป็นSplitController.getInstance(Context)
SplitController.initialize(Context, @ResId int)
เปลี่ยนเป็นRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
SplitController.getInstance().isActivityEmbedded(Activity)
เปลี่ยนเป็นActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
SplitController.getInstance().registerRule(rule)
เปลี่ยนเป็นRuleController.getInstance(Context).addRule(rule)
SplitController.getInstance().unregisterRule(rule)
เปลี่ยนเป็นRuleController.getInstance(Context).removeRule(rule)
SplitController.getInstance().clearRegisteredRules()
เปลี่ยนเป็นRuleController.getInstance(Context).clearRules()
SplitController.getInstance().getSplitRules()
เปลี่ยนเป็นRuleController.getInstance(Context).getRules()
- การย้ายข้อมูลพร็อพเพอร์ตี้
SplitRule
รายการ:- ขณะนี้
minWidth
และminSmallestWidth
ใช้หน่วย dp แทนพิกเซล แอปใช้การโทรต่อไปนี้ได้kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
หรือหารminWith
เป็นพิกเซลด้วยdisplayMetrics#density
- ขณะนี้
- ต้องย้ายข้อมูลคงที่ลักษณะการทำงานให้เสร็จสิ้นเป็นค่าคงที่คลาสที่เหมือน enum
FinishBehavior
:FINISH_NEVER
เปลี่ยนเป็นFinishBehavior.NEVER
FINISH_ALWAYS
เปลี่ยนเป็นFinishBehavior.ALWAYS
FINISH_ADJACENT
เปลี่ยนเป็นFinishBehavior.ADJACENT
- ต้องย้ายทิศทางของเลย์เอาต์ไปยัง
SplitAttributes.LayoutDirection
:ltr
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
rtl
เปลี่ยนเป็นSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
locale
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LOCALE
- ต้องย้ายข้อมูล
splitRatio
ไปยังSplitAttributes.SplitType.ratio(splitRatio)
- การย้ายข้อมูล
SplitPairRule.Builder
รายการ:- เปลี่ยน
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
รายการเป็น วันที่kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
และsetSplitRatio(ratio)
เปลี่ยนเป็นkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
และsetFinishSecondaryWithPrimary
ใช้ค่าคงที่ที่เหมือน enumFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกหน้าจอในอุปกรณ์แนวตั้ง
- เปลี่ยน
- การย้ายข้อมูล
SplitPlaceholder.Builder
รายการ:- มีเฉพาะพารามิเตอร์
filters
และplaceholderIntent
ส่วนพร็อพเพอร์ตี้อื่นๆ จะย้ายไปที่ตัวตั้งค่า ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitPairRule.Builder" setFinishPrimaryWithPlaceholder
ใช้ค่าคงที่ที่เหมือน enumFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"setLayoutDirection(layoutDirection)
และsetSplitRatio(ratio)
เปลี่ยนเป็น:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกหน้าจอในอุปกรณ์แนวตั้ง
- มีเฉพาะพารามิเตอร์
เวอร์ชัน 1.1.0-rc01
10 พฤษภาคม 2023
ปล่อย androidx.window:window-*:1.1.0-rc01
แล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่
ActivityEmbedding
เป็น API ที่เสถียร - การแก้ไขข้อบกพร่องหลายรายการ
เวอร์ชัน 1.1.0-beta02
5 เมษายน 2023
ปล่อย androidx.window:window-*:1.1.0-beta02
แล้ว เวอร์ชัน 1.1.0-beta02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การแก้ไขภายในและการล้างข้อมูล
เวอร์ชัน 1.1.0-beta01
22 มีนาคม 2023
ปล่อย androidx.window:window-*:1.1.0-beta01
แล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้
การฝังกิจกรรม
- เพิ่ม
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
เป็นพร็อพเพอร์ตี้บูลีนของแท็ก<application>
ในไฟล์ Manifest ของแอป - เลิกใช้งาน
isSplitSupported
และแทนที่ด้วยsplitSupportStatus
เพื่อแสดงข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสาเหตุที่ใช้ฟีเจอร์การแยกไม่ได้ - เพิ่มคลาสที่ซ้อนกันของ
SplitController.SplitSupportStatus
เพื่อระบุค่าคงที่สถานะสำหรับพร็อพเพอร์ตี้splitSupportStatus
- เปลี่ยนโครงสร้างภายในโค้ด
SplitController
เป็นหลายโมดูลแล้ว:- โมดูล
ActivityEmbeddingController
สำหรับ API ที่เกี่ยวข้องActivity
หรือActivityStack
- ย้าย
isActivityEmbedded
จากSplitController
ไปที่ActivityEmbeddingController
- โมดูล
RuleController
สำหรับการดำเนินการที่เกี่ยวข้องEmbeddingRule
: - นำ API
SplitController
รายการออกแล้ว:clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
- API ที่เพิ่ม
RuleController
รายการ:addRule()
— เพิ่มกฎหรืออัปเดตกฎที่มีแท็กเดียวกันremoveRule()
— นำกฎออกจากการรวบรวมกฎที่ลงทะเบียนsetRules()
— สร้างชุดกฎclearRules()
— นำกฎทั้งหมดที่ลงทะเบียนออก- `parseRules() — แยกวิเคราะห์กฎจากคำจำกัดความกฎ XML
- โมดูล
- โมดูลทั้งหมดต้องมีบริบทเพื่อเริ่มต้นโดยใช้เมธอด
#getInstance()
ซึ่งรวมถึงActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- เพิ่มคลาส
EmbeddingAspectRatio
เพื่อกำหนดค่าคงที่พฤติกรรมแบบ Enum ที่เกี่ยวข้องกับสัดส่วนภาพในการแสดงผล - เพิ่มคลาส
SplitAttributes
เพื่อกำหนดเลย์เอาต์การแยกแล้ว - เพิ่มฟังก์ชันเครื่องคำนวณ
SplitAttributes
ในSplitController
เพื่อปรับแต่งเลย์เอาต์แบบแยก:setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
เพื่อตรวจสอบว่าอุปกรณ์รองรับ SplitAttributesCalculator API หรือไม่
- เพิ่มช่อง
EmbeddingRule#tag
แล้ว - การอัปเดต API ใน
SplitRule
:- เพิ่ม
defaultSplitAttributes
แล้ว — กำหนดเลย์เอาต์การแยกเริ่มต้นของการแยก แทนที่splitRatio
และlayoutDirection
- เพิ่มการแปลของคุณสมบัติ XML
splitRatio
และsplitLayoutDirection
ในdefaultSplitAttributes
- เปลี่ยนการกำหนดขนาดขั้นต่ำไปใช้ความหนาแน่นของพิกเซลอิสระ (dp) แทนพิกเซลแล้ว
- เพิ่ม
minHeightDp
ซึ่งมีค่าเริ่มต้น 600dp - เปลี่ยน
minWidth
เป็นminWidthDp
โดยมีค่าเริ่มต้นเป็น 600 dp - เปลี่ยน
minSmallestWidth
เป็นminSmallestWidthDp
โดยมีค่าเริ่มต้นเป็น 600 dp - เพิ่ม
maxAspectRatioInHorizontal
ด้วยค่าเริ่มต้นALWAYS_ALLOW
- เพิ่ม
maxAspectRatioInPortrait
ด้วยค่าเริ่มต้น1.4
- กำหนดคลาสที่ซ้อนกันของ
FinishBehavior
เพื่อแทนที่ค่าคงที่ลักษณะการทำงานให้เสร็จสิ้น - ใช้การเปลี่ยนแปลงพร็อพเพอร์ตี้กับคลาส
Builder
ที่ฝังของSplitPairRule
และSplitPlaceholderRule
แล้ว
- เพิ่ม
- แทนที่
SplitInfo#getSplitRatio()
ด้วยSplitInfo#getSplitAttributes()
เพื่อให้ข้อมูลเพิ่มเติมที่เกี่ยวข้องกับการแบ่งแล้ว
เลย์เอาต์หน้าต่าง
- เพิ่มการรองรับบริบท UI ที่ไม่มีกิจกรรมลงใน
WindowInfoTracker
แล้ว - เพิ่มบริบท UI การไม่ใช้งานลงใน
WindowMetricsCalculator
แล้ว
ขั้นตอนการย้ายข้อมูล
- หากต้องการเปิดใช้การฝังกิจกรรมเพื่อแสดงกิจกรรมแบบแยกส่วน แอปต้องเพิ่มพร็อพเพอร์ตี้
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
ลงในแท็ก<application>
ของไฟล์ Manifest ดังนี้xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
วิธีนี้จะช่วยให้ระบบเพิ่มประสิทธิภาพลักษณะการแบ่งฝั่งของแอปพลิเคชันได้ล่วงหน้า - อัตราส่วน
SplitInfo
- ตรวจสอบว่าการแบ่งปัจจุบันซ้อนกันหรือไม่ โดยทำดังนี้
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- ตรวจสอบอัตราส่วนปัจจุบัน ดังนี้
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- ตรวจสอบว่าการแบ่งปัจจุบันซ้อนกันหรือไม่ โดยทำดังนี้
- การย้ายข้อมูล
SplitController
รายการ:SplitController.getInstance()
เปลี่ยนเป็นSplitController.getInstance(Context)
- เปลี่ยน
SplitController.initialize(Context, @ResId int)
รายการเป็นRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
SplitController.getInstance().isActivityEmbedded(Activity)
เปลี่ยนเป็นActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
SplitController.getInstance().registerRule(rule)
เปลี่ยนเป็นRuleController.getInstance(Context).addRule(rule)
SplitController.getInstance().unregisterRule(rule)
เปลี่ยนเป็นRuleController.getInstance(Context).removeRule(rule)
SplitController.getInstance().clearRegisteredRules()
เปลี่ยนเป็นRuleController.getInstance(Context).clearRules()
SplitController.getInstance().getSplitRules()
เปลี่ยนเป็นRuleController.getInstance(Context).getRules()
- การย้ายข้อมูลพร็อพเพอร์ตี้
SplitRule
รายการ:- ขณะนี้
minWidth
และminSmallestWidth
ใช้หน่วย dp แทนพิกเซล แอปใช้การโทรต่อไปนี้ได้kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
หรือหารminWith
เป็นพิกเซลด้วยdisplayMetrics#density
- ขณะนี้
- ต้องย้ายข้อมูลคงที่ลักษณะการทำงานให้เสร็จสิ้นเป็นค่าคงที่คลาสที่เหมือน enum
FinishBehavior
:FINISH_NEVER
เปลี่ยนเป็นFinishBehavior.NEVER
FINISH_ALWAYS
เปลี่ยนเป็นFinishBehavior.ALWAYS
FINISH_ADJACENT
เปลี่ยนเป็นFinishBehavior.ADJACENT
- ต้องย้ายทิศทางของเลย์เอาต์ไปยัง
SplitAttributes.LayoutDirection
:ltr
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
rtl
เปลี่ยนเป็นSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
locale
เปลี่ยนเป็นSplitAttributes.LayoutDirection.LOCALE
- ต้องย้ายข้อมูล
splitRatio
ไปยังSplitAttributes.SplitType.ratio(splitRatio)
- การย้ายข้อมูล
SplitPairRule.Builder
รายการ:- เปลี่ยน
SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
รายการเป็น วันที่kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
และsetSplitRatio(ratio)
เปลี่ยนเป็นkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
และsetFinishSecondaryWithPrimary
ใช้ค่าคงที่ที่เหมือน enumFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกหน้าจอในอุปกรณ์แนวตั้ง
- เปลี่ยน
- การย้ายข้อมูล
SplitPlaceholder.Builder
รายการ:- มีเฉพาะพารามิเตอร์
filters
และplaceholderIntent
ส่วนพร็อพเพอร์ตี้อื่นๆ จะย้ายไปที่ตัวตั้งค่า ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitPairRule.Builder" setFinishPrimaryWithPlaceholder
ใช้ค่าคงที่ที่เหมือน enumFinishBehavior
ดูรายละเอียดได้ที่ "การย้ายข้อมูล SplitRule"setLayoutDirection(layoutDirection)
และsetSplitRatio(ratio)
เปลี่ยนเป็น:kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- ใช้
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
เพื่อแสดงการแยกหน้าจอในอุปกรณ์แนวตั้ง
- มีเฉพาะพารามิเตอร์
เวอร์ชัน 1.1.0-alpha06
22 กุมภาพันธ์ 2023
ปล่อย androidx.window:window-*:1.1.0-alpha06
แล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดงเวอร์ชันทดลองของการรับ
WindowLayoutInfo
จากบริบท UI
การเปลี่ยนแปลง API
- เพิ่ม
splitSupportStatus
เพื่อระบุว่าการฝังกิจกรรมพร้อมใช้งานหรือไม่ (I10024) - กำหนดให้ API บริบท UI
WindowLayoutInfo
เป็นเวอร์ชันทดลอง (I58ee0) - เริ่มใช้
WindowAreaController
และ API เพื่อเปิดใช้โหมดRearDisplay
เพื่อย้ายหน้าต่างปัจจุบันไปยังจอแสดงผลที่สอดคล้องกับกล้องหลัง (Iffcbf) - อัปเดตสีพื้นหลังเริ่มต้น (I1ac1b)
- เพิ่มพารามิเตอร์
SplitAttributes
รายการ (I18bdd) - เพิ่ม API สำหรับ
SplitRule
,SplitAttributes
,SplitAttributesCalculator
(I92d23) - ปรับปรุง API รอบๆ
maxAspectRatio
:- แทนที่
alwaysAllow()
และalwaysDisallow()
ด้วยALWAYS_ALLOW
และALWAYS_DISALLOW
- อัปเดตเอกสารประกอบ API ของ @see ด้วยเอกสารประกอบแบบสแตนด์อโลน (I3057B)
- แทนที่
- เครื่องมือสร้างต่อไปนี้ถูกนำออกจาก API สาธารณะเนื่องจากแอปไม่ควรเรียกใช้ตัวสร้าง
- เครื่องมือสร้าง
SplitInfo
- เครื่องมือสร้าง
ActivityStack
(Ide534)
- เครื่องมือสร้าง
- ตอนนี้
SplitRule
ใช้เวลาmaxAspectRatioInPortrait/Landscape
โดยจะอนุญาตให้แยกกิจกรรมก็ต่อเมื่อสัดส่วนภาพของขอบเขตหลักน้อยกว่าหรือเท่ากับmaxAspectRatio
ที่ขอ (Ia5990) - เปลี่ยน
RuleController#parseRules
เป็นแบบคงที่ (I785df) - ปรับปรุง API เกี่ยวกับ ActivityEmbedding
- ปรับชื่อ API ให้สอดคล้องกัน - เพิ่ม/นำออกสำหรับอินสแตนซ์หลายรายการ:
- เปลี่ยน
registerRule
เป็นaddRule
- เปลี่ยน
unregisterRule
เป็นremoveRule
- แทนที่
getSplitRules
ด้วยgetRules
เนื่องจากActivityRule
ไม่ใช่กฎการแบ่ง - เพิ่ม
RuleController#setRules
เพื่อตั้งกฎจำนวนมาก - ดึงข้อมูล API ที่เกี่ยวข้องกับกฎจาก
SplitController
ไปยัง SingletonRuleController
ปัจจัยต่างๆ มีดังนี้ addRule
removeRule
getRules
setRules
clearRules
parseRules
- ดึงข้อมูล
#isActivityEmbedded
จากSplitController
ไปยังซิงเกิลตันActivityEmbeddingController
ปัจจัยต่างๆ มีดังนี้ isActivityEmbedded
- นำ
SplitController#initialize
ออก หากต้องการตั้งกฎจากไฟล์ XML โปรดใช้RuleController#parseRules
และ#setRules
ก่อนการเปลี่ยนแปลงนี้SplitController.initialize(context, R.xml.static_rules)
สิ่งที่จะเกิดขึ้นหลังการเปลี่ยนแปลงนี้ วันที่val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- เราไม่ได้แยกความแตกต่างของกฎแบบคงที่กับกฎรันไทม์อีกต่อไป อย่างไรก็ตาม การเรียกใช้ผลลัพธ์ของ
#clearRules
เพื่อล้างกฎทั้งหมดไม่ว่าจะลงทะเบียนด้วยคำจำกัดความกฎ XML แบบคงที่หรือระหว่างรันไทม์ก็ตาม หากต้องการให้SplitController#clearRegisteredRules
ทำงานแบบเดิม โปรดเรียกRuleController#parseRules
พร้อมรหัสทรัพยากร XML และเรียกใช้RuleController#setRules
เพื่อตั้งกฎอีกครั้ง ก่อนการเปลี่ยนแปลงนี้SplitController.getInstance(context).clearRegisteredRules()
สิ่งที่จะเกิดขึ้นหลังการเปลี่ยนแปลงนี้ วันที่val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- ปรับปรุง SplitRule API
- ใช้ขนาดต่ำสุดเป็น DP แทนพิกเซลสำหรับ
SplitRule
- เปลี่ยนโครงสร้างภายในโค้ดของเครื่องมือสร้าง
SplitRule
เพื่อใช้ขนาดขั้นต่ำหรือไม่ก็ได้ (I95f17)
- ใช้ขนาดต่ำสุดเป็น DP แทนพิกเซลสำหรับ
- ส่งบริบทเพื่อเริ่มต้น
SplitController
(I42549) - เปลี่ยนชื่อ
SplitRule#layoutDir
เป็น#layoutDirection
และSplitRule Builder#setLayoutDir
เป็นBuilder#setLayoutDirection
แล้ว (I3f6d1)
เวอร์ชัน 1.1.0-alpha04
9 พฤศจิกายน 2022
ปล่อย androidx.window:window-*:1.1.0-alpha04
แล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แสดงเมธอดเพื่อพิจารณาว่า
ActivityStack
ว่างเปล่าสำหรับActivityEmbedding
หรือไม่ - นำแท็ก API ทดลองออกจาก API จำนวน
ActivityEmbedding
รายการแล้ว - ซ่อนตัวสร้าง
ActivityRule
เนื่องจากBuilder
เป็นวิธีที่แนะนำในการสร้าง - เพิ่มวิธีทดสอบเพื่อรับ
WindowInsets
ในWindowMetrics
- อัปเดต
SplitPlaceholderFinishBehavior
เพื่อป้องกันไม่ให้ตัวยึดตำแหน่งเสร็จสิ้น การสร้างตัวยึดตำแหน่งให้เสร็จสิ้นทำให้เกิดลักษณะการทำงานบางอย่างที่สับสน
การเปลี่ยนแปลง API
- ทำให้ค่า
isEmpty
เป็นแบบสาธารณะเพื่อแทนที่isEmpty
สนุกๆ - เปลี่ยนชื่อกิจกรรมพารามิเตอร์
ActivityStack
เป็นactivitiesInProcess
(Ia5055) - นํา
ActivityFilter#matchesClassName
และActivityFilter#matchesClassNameOrWildCard
ออก เนื่องจากสร้างความสับสน - เพิ่ม
ActivityFilter#componentName
abdActivityFilter#intentAction
เพื่อให้ผู้โทรแยกตัวกรองต่างๆ ได้ (I41f22) - นำ API ของ
@Deprecated
ออกจาก API ทดลอง (I216b3) - นำ
@ExperimentalWindowApi
ออกสำหรับ API การฝังกิจกรรม (I69ebe) - ซ่อนตัวสร้าง
ActivityRule
ใช้ Builder แทน (If4eb6) - เพิ่ม API เพื่อตรวจสอบว่ากิจกรรมเป็นส่วนหนึ่งของ
ActivityFilter
หรือไม่ (Ia43cf) - อัปเดตไฟล์ API เพื่อแสดงการเปลี่ยนแปลงในคลาส
WindowMetrics
และWindowMetricsCalculatorCompat
(I667fe) - อัปเดต
ActivityEmbedding
พร็อพเพอร์ตี้ Javadoc และชื่อคลาส (Ia1386) - การเพิ่มชื่อแท็กพร็อพเพอร์ตี้
ActivityEmbedding
รายการที่จะใช้ใน AndroidManifest.xml (Id1ad4) - เพิ่ม API ใหม่
SplitPlaceholderFinishBehavior
และSplitPlaceholderRule.finishPrimaryWithPlaceholder
แล้ว ซึ่งจะมาแทนที่SplitPlaceholderRule.finishPrimaryWithSecondary
ที่มีอยู่ซึ่งจะกำหนดเวลาที่กิจกรรมของตัวยึดตำแหน่งเสร็จสิ้น และดูว่ากิจกรรมที่เกี่ยวข้องในการฝังกิจกรรมควรทำงานอย่างไร (I64647)
แก้ไขข้อบกพร่อง
- เริ่มใช้
WindowAreaController
และ API เพื่อเปิดใช้โหมดRearDisplay
เพื่อย้ายหน้าต่างปัจจุบันไปยังจอแสดงผลที่สอดคล้องกับกล้องหลัง (I388ab)
เวอร์ชัน 1.1.0-alpha03
27 กรกฎาคม 2022
ปล่อย androidx.window:window-*:1.1.0-alpha03
แล้ว เวอร์ชัน 1.1.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดตค่าเริ่มต้นสำหรับกฎการฝัง
การเปลี่ยนแปลง API
- อัปเดตค่าเริ่มต้นสำหรับพร็อพเพอร์ตี้กฎการฝัง (Ic4d35)
เวอร์ชัน 1.1.0-alpha02
11 พฤษภาคม 2022
ปล่อย androidx.window:window-*:1.1.0-alpha02
แล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ปล่อยไลบรารีอะแดปเตอร์เพื่อรองรับ Java และ RxJava
เวอร์ชัน 1.1.0-alpha01
11 พฤษภาคม 2022
ปล่อย androidx.window:window-*:1.1.0-alpha01
แล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ปล่อยอะแดปเตอร์เพื่อรองรับ Java และ RxJava
เวอร์ชัน 1.1.0-alpha01
20 เมษายน 2022
ปล่อย androidx.window:window:1.1.0-alpha01
แล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แก้ไขข้อบกพร่องที่พื้นหลังแอปหยุดปล่อยฟีเจอร์การพับ
- ขยายใน ActivityEmbedding API แบบทดลอง
การเปลี่ยนแปลง API
- API สาธารณะเพื่อตรวจสอบว่ากิจกรรมถูกฝังอยู่หรือไม่ (I39eb7)
แก้ไขข้อบกพร่อง
- เพิ่ม API ที่ปรับแต่งลักษณะการดำเนินการขั้นสุดท้ายของคอนเทนเนอร์ในการแยกกิจกรรม (I1a1e4)
- เพิ่มตัวเลือกการกำหนดค่าใหม่สำหรับกฎการแยกกิจกรรมแล้ว (Iec6af)
รุ่น 1.0
เวอร์ชัน 1.0.0
26 มกราคม 2022
ปล่อย androidx.window:window-*:1.0.0
แล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
- รองรับโทรศัพท์แบบพับได้จนถึง
WindowInfoTracker
และFoldingFeature
WindowMetricsCalculator
เพื่อช่วยคำนวณ WindowMetrics ปัจจุบัน
เวอร์ชัน 1.0.0-rc01
15 ธันวาคม 2021
ปล่อย androidx.window:window-*:1.0.0-rc01
แล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มการรองรับโทรศัพท์แบบพับได้จนถึงวันที่
WindowInfoTracker
- เพิ่มวิธีการเพื่อคำนวณ
WindowMetrics
ปัจจุบันและสูงสุด - เพิ่ม API การทดสอบที่รองรับ
เวอร์ชัน 1.0.0-beta04
17 พฤศจิกายน 2021
ปล่อย androidx.window:window-*:1.0.0-beta04
แล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปลี่ยนชื่อ WindowInfoRepository เป็น WindowInfoTracker
- ทำให้ Activity เป็นทรัพยากร Dependency ของเมธอด WindowInfoTracker อย่างชัดเจน
- เพิ่ม TestRule แบบง่ายสำหรับ WindowMetricsCalculator เพื่อรองรับนักพัฒนาซอฟต์แวร์ที่ใช้ Robolectric
การเปลี่ยนแปลง API
- ดึงข้อมูลส่วนขยาย (I25a5f)
- เพิ่ม isEmpty ใน ActivityStack (I5a4e6)
- เปลี่ยนชื่อ WindowInfoRepository เป็น WindowInfoTracker
- อัปเดตทรัพยากร Dependency ของ java/rxjava/testing ให้ตรงกัน (I0da63)
- เพิ่มกฎทดสอบสำหรับ WindowMetricsCalculator แบบง่าย (Ibacdb)
เวอร์ชัน 1.0.0-beta03
27 ตุลาคม 2021
ปล่อย androidx.window:window-*:1.0.0-beta03
แล้ว เวอร์ชัน 1.0.0-beta03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม API การฝังกิจกรรมรุ่นทดลอง เลย์เอาต์เริ่มต้นนี้อนุญาตให้แสดงกิจกรรม 2 รายการแสดงคู่กัน
การเปลี่ยนแปลง API
- นำcurrentWindowMetrics API ออกแล้วเนื่องจากเราระบุอย่างไม่ถูกต้อง โปรดใช้ WindowMetricsCalculator แทน (Icda5f)
- อัปเดต API ส่วนขยายแล้ว (Ica92b)
- เพิ่มอินเทอร์เฟซสำหรับฟีเจอร์ใหม่ที่ทำให้ การฝังกิจกรรมและแสดงเคียงข้างกันภายในรายการระดับบน หน้าต่างงาน (I5711D)
- ซ่อนตัวสร้างสำหรับ WindowMetrics และ WindowLayoutInfo โปรดใช้ API ทดสอบแทน (I5a1b5)
- เพิ่ม API เพื่อสร้างออบเจ็กต์ WindowLayoutInfo ปลอม (I4a2fd)
แก้ไขข้อบกพร่อง
- แก้ไขการรั่วไหลของหน่วยความจำ (I3fc79, b/202989046)
เวอร์ชัน 1.0.0-beta02
1 กันยายน 2021
ปล่อย androidx.window:window-*:1.0.0-beta02
แล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มคำอธิบายประกอบเวอร์ชันทดลองเพื่อเพิ่มคำอธิบายประกอบให้กับ API ทดลอง (I9f1b6)
- เพิ่มวิธีทดสอบเพื่อสร้าง FoldingFeature ทดสอบที่ยอมรับ Rect วิธีนี้จะทำให้ทดสอบได้ง่ายเมื่อใช้ Robolectric แทนที่จะเป็นกิจกรรมจริง (รหัส 1cca)
เวอร์ชัน 1.0.0-beta01
18 สิงหาคม 2021
ปล่อย androidx.window:window-*:1.0.0-beta01
แล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ลบค่าคงที่เก่าและทำให้
FoldingFeature
เป็นอินเทอร์เฟซ
การเปลี่ยนแปลง API
- นำค่าคงที่เก่าออกและทำให้ FoldFeature เป็นอินเทอร์เฟซ (I9a2d5)
แก้ไขข้อบกพร่อง
- ไลบรารีที่ขึ้นอยู่กับไลบรารี
Test Core
ได้ถูก อัปเกรดเป็นเวอร์ชัน1.4.0
และจะใช้งานกับแพลตฟอร์ม Android ได้แล้วในขณะนี้ เวอร์ชัน S (I88b72, b/189353863)
เวอร์ชัน 1.0.0-alpha10
4 สิงหาคม 2021
ปล่อย androidx.window:window-*:1.0.0-alpha10
แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปลี่ยนชื่อ WindowInfoRepo เป็น WindowInfoRepository และปรับคลาส / ไฟล์ที่สอดคล้องกัน
- แปลงเมตริกกรอบเวลาปัจจุบันเป็นโฟลว์ใน WindowInfoRepository เนื่องจากค่าจะเปลี่ยนแปลงเมื่อเวลาผ่านไป
- เปลี่ยนชื่อ WindowInfoRepoJavaAdapter เป็น WindowInfoRepoCallbackAdapter
- เพิ่มเมธอดตัวช่วยเพื่อสร้างออบเจ็กต์ทดสอบ FoldingFeature
- อัปเดตแพ็กเกจเป็นชั้นเรียนแบบกลุ่มโดยอิงตามฟีเจอร์ที่แพ็กเกจรองรับ
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ ActivityExt เป็น Activity Extensions เปลี่ยนจากที่เก็บเป็นที่เก็บ (I61a16)
- อัปเดตแพ็กเกจสำหรับชั้นเรียน (I23ae2)
- นำ WindowMetrics ออกจาก WindowInfoRepo (I24663)
- นำ WindowManager ออกและใช้ WindowInfoRepo
- ทำให้ WindowBackend เป็นแบบภายใน (I06d9a)
- แปลงเมตริกกรอบเวลาเป็นโฟลว์
- เปลี่ยนชื่ออะแดปเตอร์ Java เป็น WindowInfoRepoCallbackAdapter
- นำ CallbackFlow ออกเพื่อไม่ให้มีการใช้ API ทดลองอีก (Ia4d15)
- เพิ่มเมธอด Helper เพื่อสร้างฟีเจอร์จอแสดงผลทดสอบ
- เปลี่ยนจาก occlusionMode เป็น occlusionType (If4cff)
แก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดของ Proguard ที่ระบบนำไลบรารีหลักออก
- แก้ไขข้อผิดพลาดที่ไม่มีการส่ง WindowLayoutInfo ให้ผู้ติดตามเพิ่มเติม
- แก้ไขข้อผิดพลาดที่การเปลี่ยนแปลงการกำหนดค่าไม่ทริกเกอร์การอัปเดตฟีเจอร์การพับ
เวอร์ชัน 1.0.0-alpha09
30 มิถุนายน 2021
ปล่อย androidx.window:window-*:1.0.0-alpha09
แล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปลี่ยนจากค่าคงที่จำนวนเต็มเป็น Enum ที่ไม่มีขอบเขต
- เพิ่มยูทิลิตีทดสอบเพื่อสร้างฟีเจอร์ทดสอบการพับ
การเปลี่ยนแปลง API
- เพิ่มเมธอด Helper เพื่อสร้างฟีเจอร์จอแสดงผลทดสอบ (I3cf54)
- เปลี่ยนจาก
occlusionMode
เป็นocclusionType
- เปลี่ยนจาก
แก้ไขข้อบกพร่อง
- ปล่อยค่าเริ่มต้นเมื่อเพิ่มผู้บริโภคหลายรายของสตรีมข้อมูล
เวอร์ชัน 1.0.0-alpha08
16 มิถุนายน 2021
ปล่อย androidx.window:window-*:1.0.0-alpha08
แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เผยแพร่อาร์ติแฟกต์การทดสอบเพื่อให้ทดสอบได้ง่ายขึ้นเมื่อใช้ WindowInfoRepository ใช้ WindowInfoRepository เพื่อรับข้อมูลเกี่ยวกับ DisplayFeatures และ WindowMetrics (I57f66, Ida620)
เวอร์ชัน 1.0.0-alpha07
2 มิถุนายน 2021
ปล่อย androidx.window:window-*:1.0.0-alpha07
แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ย้ายข้อมูลไลบรารีหน้าต่างหลักไปยัง Kotlin จะใช้คอร์บูทีนและระงับฟังก์ชันเพื่อเปิดเผยข้อมูลที่ไม่พร้อมกันในอนาคต
- เพิ่ม WindowInfoRepo เป็นจุดโต้ตอบหลักเพื่อรับ WindowMetrics และสตรีมของ WindowLayoutInfo
- อาร์ติแฟกต์
window-java
ใหม่เพื่อแสดง API ที่ใช้ Java ได้เพื่อลงทะเบียนและยกเลิกการลงทะเบียน Callback - อาร์ติแฟกต์
window-rxjava2
และwindow-rxjava3
ใหม่เพื่อแสดง API ที่ปรับเปลี่ยนของ RxJava
การเปลี่ยนแปลง API
- เพิ่ม
WindowServices
เพื่อระบุทรัพยากร Dependency ในแบบเดียวกัน- เพิ่ม API ที่อิงตาม Coroutine เพื่อใช้ข้อมูลเลย์เอาต์หน้าต่าง (Iab70F)
- ย้ายข้อมูลไลบรารีหลักของตัวจัดการหน้าต่างไปยัง Kotlin (Icca34)
แก้ไขข้อบกพร่อง
- เพิ่มคลาสข้อมูลใหม่เพื่อแสดงขอบเขตของฟีเจอร์ (I6dcd1)
เวอร์ชัน 1.0.0-alpha06
5 พฤษภาคม 2021
ปล่อย androidx.window:window:1.0.0-alpha06
แล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เราได้เริ่มย้ายข้อมูลไปยัง Kotlin แล้ว และจะเสร็จสิ้นในรุ่นถัดไป
- DeviceState ถูกนำออกจาก API สาธารณะแล้ว โปรดใช้ FoldingFeature แทน
- เราได้นำ
STATE_FLIPPED
ออกจากสถานะของ FoldingFeature แล้ว เนื่องจากขณะนี้ไม่มี Use Case ใดรองรับ - เรายังได้นำ API อื่นๆ ที่เลิกใช้งานแล้วออกด้วย
การเปลี่ยนแปลง API
- การเพิ่ม Kotlin เป็นทรัพยากร Dependency
- ย้ายข้อมูลไลบรารีหลักไปยัง Kotlin (Idd995)
- นำเครื่องมือสร้าง
DisplayFeature
ออกแล้ว (I61fa4) - นำ
DeviceState
ออกจาก API สาธารณะแล้ว ใช้FoldingFeature
แทน (Id6079) - นำ Callback ของสถานะอุปกรณ์ออกจากส่วนขยาย (I5ea83)
- นำ
STATE_FLIPPED
ออกจาก FoldingFeature (I9c4e1) - นำวิธีการลงทะเบียนที่เลิกใช้งานแล้วออก (Ib381b)
เวอร์ชัน 1.0.0-alpha05
24 มีนาคม 2021
ปล่อย androidx.window:window:1.0.0-alpha05
แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เราได้เพิ่มวิธีง่ายๆ ใน FoldingFeature เพื่อให้แอปบอกได้ว่าฟีเจอร์แยก ปิดกั้น และกำหนดการวางแนวของบานพับหรือไม่ นอกจากนี้เรายังซ่อนประเภทบานพับเพื่อให้
เราจะนำวิธีการอ่านแบบซิงโครนัสออกจาก WindowManager วิธีการอ่านแบบซิงโครนัสมีแนวโน้มที่จะเกิดข้อผิดพลาดเนื่องจากมีเงื่อนไขเกี่ยวกับเชื้อชาติโดยนัย ลงทะเบียน Listener และ Callback เพื่อรับการอัปเดตเกี่ยวกับ WindowLayoutInfo
การเปลี่ยนแปลง API
- เพิ่มวิธีอำนวยความสะดวกในการใช้งาน FoldingFeatures (Ie733f)
- นำวิธีการอ่านแบบซิงโครนัสออกจาก WindowManager (I96fd4)
เวอร์ชัน 1.0.0-alpha04
10 มีนาคม 2021
ปล่อย androidx.window:window:1.0.0-alpha04
แล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แก้ไขข้อบกพร่องที่ไม่ได้ปล่อย WindowLayoutInfo ถ้าไม่มีการใช้งาน OEM ตอนนี้เราจะปล่อย WIndowLayoutInfo ที่ว่างเปล่า
- แก้ไขข้อบกพร่องที่สถานะไม่อัปเดตอย่างถูกต้องหากสถานะบานพับมีการเปลี่ยนแปลงขณะที่แอปอยู่ในเบื้องหลัง ตอนนี้สถานะควรจะสอดคล้องกันแล้ว
- อัปเดตไฟล์ Proguard ให้ละเว้นคำเตือนจากทรัพยากร Dependency ของรันไทม์
แก้ไขข้อบกพร่อง
- ปล่อยค่าว่างเมื่อไม่มีไลบรารี OEM (Ide935)
เวอร์ชัน 1.0.0-alpha03
18 กุมภาพันธ์ 2021
ปล่อย androidx.window:window:1.0.0-alpha03
แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ปล่อยค่าว่างสำหรับ WindowLayoutInfo เมื่อการใช้งาน OEM ว่างเปล่า ซึ่งจะช่วยให้คุณใช้ไลบรารีได้ง่ายขึ้นในอุปกรณ์ที่หลากหลาย เนื่องจาก API เป็นแบบไม่พร้อมกัน เราจึงยังแนะนำให้แอปเขียนโค้ดป้องกันบางส่วนและปล่อยค่าเริ่มต้นหลังจากหมดเวลา เราไม่มีการรับประกันใดๆ เกี่ยวกับการใช้งาน OEM และค่าเริ่มต้นอาจมีความล่าช้า
แก้ไขข้อบกพร่อง
- ปล่อยค่าว่างเมื่อไม่มีไลบรารี OEM (Ide935)
เวอร์ชัน 1.0.0-alpha02
27 มกราคม 2021
ปล่อย androidx.window:window:1.0.0-alpha02
แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เราได้เลิกใช้งาน API บางรายการเพื่อช่วยปรับปรุงประสิทธิภาพของ API และลดข้อผิดพลาด ตัวอย่างที่เห็นได้ชัดคือการนำการดำเนินการอ่านแบบซิงโครนัสออกจาก WindowManager และเลิกใช้งาน DeviceState การดำเนินการอ่านแบบซิงโครนัสอาจทำให้เกิดเงื่อนไขในการแข่งขันและมี UI ที่ไม่ถูกต้อง
เราได้แปลง DisplayFeature เป็นอินเทอร์เฟซที่ฟีเจอร์อื่นๆ จะนำมาใช้ในอนาคต ฟีเจอร์แรกของเราคือ FoldingFeature ซึ่งปัจจุบันแสดงภาพการพับหน้าจอหรือบานพับ นอกจากนี้ยังมีสถานะของบานพับที่จะแทนที่ DeviceState
WindowMetrics เปิดตัวใน Android 11 เพื่อให้นักพัฒนาแอปมีวิธีง่ายๆ ในการค้นหาเมตริกเกี่ยวกับหน้าต่าง เช่น ตำแหน่งและขนาดบนหน้าจอ รวมถึงส่วนต่างๆ ของระบบ เราได้สำรองข้อมูล API ในรุ่นนี้เพื่อให้นักพัฒนาซอฟต์แวร์สามารถใช้ประโยชน์จาก WindowMetrics และรองรับ Android เวอร์ชันเก่าต่อไป จะรับ WindowMetrics ได้ผ่าน API ของ
WindowManager#getCurrentWindowMetrics()
และ WindowManager#getต่อยอดWindowMetrics()
การเปลี่ยนแปลง API
- เลิกใช้งาน API ที่จะถูกนำออกในรุ่นอัลฟ่าถัดไป (Ib7cc4)
- อัปเดต
ExtensionInterface
เพื่อยอมรับกิจกรรมที่อาจไม่เหมาะสม ข้อมูลอ้างอิง (I07ded) - เปิดตัว WindowMetrics API (I3ccee)
- นำวิธีการอ่านแบบซิงโครนัสออกจาก WindowManager (I69983)
- ทำให้แพ็กเกจ ExtensionWindowBackend ได้รับการปกป้อง (Ied208)
แก้ไขข้อบกพร่อง
- อัปเดต
ExtensionInterface
API เพื่อยอมรับบริบทแบบภาพ (I8e827)
การสนับสนุนภายนอก
- รวม DeviceState และ WindowLayoutInfo เพื่อให้ง่ายขึ้น เข้าถึงข้อมูลของคุณ (Id34f4)
เวอร์ชัน 1.0.0-alpha01
27 กุมภาพันธ์ 2020
androidx.window:window:1.0.0-alpha01
และ androidx.window:window-extensions:1.0.0-alpha01
จะถูกปลดออก เวอร์ชัน 1.0.0-alpha01 มีคอมมิตเหล่านี้
นี่เป็นรุ่นแรกของไลบรารี Window Manager
ฟีเจอร์ใหม่
DisplayFeature
: API ใหม่นี้ระบุการหยุดชะงักในช่วงที่ต่อเนื่อง พื้นผิวหน้าจอ เช่น บานพับหรือแนวพับDeviceState
: API ใหม่นี้จะแสดงลักษณะการทำงานปัจจุบันของโทรศัพท์จาก รายการท่าทางที่กำหนด (เช่นCLOSED
OPENED
HALF_OPENED
เป็นต้น)