Compose Material
androidx.compose.material
androidx.compose.material.icons
(ดูเอกสารอ้างอิง API สำหรับแพ็กเกจ Compose ทั้งหมด)
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
|---|---|---|---|---|
| 7 ตุลาคม 2026 | 1.12.1 | - | 1.13.0-beta01 | - |
โครงสร้าง
Compose คือการรวมรหัสกลุ่ม Maven 7 รายการภายใน androidx แต่ละกลุ่ม
ประกอบด้วยฟังก์ชันการทำงานย่อยที่กำหนดเป้าหมาย โดยแต่ละฟังก์ชันจะมีชุดหมายเหตุประจำรุ่นของตัวเอง
ตารางนี้อธิบายกลุ่มและลิงก์ไปยังชุดหมายเหตุประจำรุ่นแต่ละชุด
| กลุ่ม | คำอธิบาย |
|---|---|
| compose.animation | สร้างภาพเคลื่อนไหวในแอปพลิเคชัน Jetpack Compose เพื่อยกระดับประสบการณ์ของผู้ใช้ |
| compose.compiler | แปลงฟังก์ชัน @Composable และเปิดใช้การเพิ่มประสิทธิภาพด้วยปลั๊กอินคอมไพเลอร์ Kotlin |
| compose.foundation | เขียนแอปพลิเคชัน Jetpack Compose ด้วยองค์ประกอบพื้นฐานที่พร้อมใช้งาน และขยายรากฐานเพื่อสร้างชิ้นส่วนระบบการออกแบบของคุณเอง |
| compose.material | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design ที่พร้อมใช้งาน นี่คือจุดแรกเข้าของ Compose ในระดับที่สูงขึ้น ซึ่งออกแบบมาเพื่อจัดหาคอมโพเนนต์ที่ตรงกับคอมโพเนนต์ที่อธิบายไว้ที่ www.material.io |
| compose.material3 | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design 3 ซึ่งเป็นวิวัฒนาการขั้นถัดไปของ Material Design Material 3 มีการอัปเดตการกำหนดธีมและคอมโพเนนต์ รวมถึงฟีเจอร์การปรับเปลี่ยนในแบบของคุณของ Material You เช่น สีแบบเปลี่ยนอัตโนมัติ และออกแบบมาให้สอดคล้องกับสไตล์ภาพและ UI ของระบบ Android 12 ใหม่ |
| compose.runtime | บล็อกการสร้างพื้นฐานของรูปแบบการเขียนโปรแกรมและการจัดการสถานะของ Compose รวมถึงรันไทม์หลักสำหรับปลั๊กอินคอมไพเลอร์ Compose เพื่อกำหนดเป้าหมาย |
| compose.ui | คอมโพเนนต์พื้นฐานของ UI ของ Compose ที่จำเป็นต่อการโต้ตอบกับอุปกรณ์ ซึ่งรวมถึงเลย์เอาต์ การวาด และอินพุต |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับ
แอปหรือโมดูล
Groovy
dependencies { implementation "androidx.compose.material:material:1.12.1" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.12.1") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่เพิ่มทรัพยากร Dependency ของบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยให้ Jetpack ทำงานได้ดีขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ Issue Tracker
เวอร์ชัน 1.13
เวอร์ชัน 1.13.0-beta01
7 ตุลาคม 2026
androidx.compose.material:material-*:1.13.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.13.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ไลบรารีจะกำหนดเป้าหมายเป็น Kotlin 2.2 และต้องใช้ kotlinc 2.2 (I82396, b/498369605)
เวอร์ชัน 1.13.0-alpha03
9 กันยายน 2569
androidx.compose.material:material-*:1.13.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.13.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- ระบบเลิกใช้งานการโอเวอร์โหลดช่องข้อความ Material 2 ที่ยอมรับพารามิเตอร์
value, onValueChangeแล้ว โปรดเปลี่ยนไปใช้โอเวอร์โหลดที่ใช้TextFieldStateเพื่อยกสถานะ (I6b841, b/556234973)
การแก้ไขข้อบกพร่อง
compileSdkสำหรับไลบรารี Compose ที่อัปเดตเป็น 37.1 ซึ่งจะต้องอัปเดตcompileSdkสำหรับแอปและไลบรารีทั้งหมดที่ใช้ Compose (I05b0f)- อัปเดตคอมโพเนนต์
SecureTextFieldและOutlinedSecureTextField(รวมถึงการโอเวอร์โหลดBasicSecureTextFieldที่เลิกใช้งานแล้ว) เพื่อใช้TextObfuscationMode.Systemเป็นโหมดการปกปิดเริ่มต้นแทนTextObfuscationMode.RevealLastTyped(I76c7e)
เวอร์ชัน 1.13.0-alpha02
26 สิงหาคม 2026
androidx.compose.material:material-*:1.13.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.13.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.13.0-alpha01
12 สิงหาคม 2569
androidx.compose.material:material-*:1.13.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.13.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้
androidx.benchmarkมีminSdk24 รายการ (Ic2a85)
การแก้ไขข้อบกพร่อง
- การเริ่มต้นระดับไฟล์ที่เพิ่มประสิทธิภาพของ
materialพร็อพเพอร์ตี้คลาสค่าระดับบนสุดโดยใช้ตัวรับแบบไดนามิก (Iae591) - การเริ่มต้นออบเจ็กต์คู่ที่เพิ่มประสิทธิภาพของคลาส
materialvalue (FabPositionและStrings) โดยใช้ตัวรับแบบไดนามิก (I0c7c0) - นำข้อกำหนดสำหรับ
compileSdk 37ออก (If78b4)
เวอร์ชัน 1.12
เวอร์ชัน 1.12.1
9 กันยายน 2569
androidx.compose.material:material-*:1.12.1 เปิดตัวแล้ว เวอร์ชัน 1.12.1 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.12.0
12 สิงหาคม 2569
androidx.compose.material:material-*:1.12.0 เปิดตัวแล้ว เวอร์ชัน 1.12.0 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.11.0 เป็นต้นมา
เวอร์ชัน 1.12.0-rc01
29 กรกฎาคม 2026
androidx.compose.material:material-*:1.12.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.12.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.12.0-beta02
1 กรกฎาคม 2026
androidx.compose.material:material-*:1.12.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.12.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.12.0-beta01
17 มิถุนายน 2026
androidx.compose.material:material-*:1.12.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.12.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.12.0-alpha03
19 พฤษภาคม 2026
androidx.compose.material:material-*:1.12.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.12.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.12.0-alpha02
6 พฤษภาคม 2026
androidx.compose.material:material-*:1.12.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.12.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.12.0-alpha01
22 เมษายน 2026
androidx.compose.material:material-*:1.12.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.12.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยน
VelocityTrackerเพื่อใช้การติดตั้งใช้งานที่ Android Framework จัดเตรียมไว้ให้ (กำหนดค่าได้ด้วยAndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled) (Ibc7e2, b/359962905)
การแก้ไขข้อบกพร่อง
- อัปเดต Compose
compileSdkเป็น API 37 ซึ่งหมายความว่าเมื่อใช้ Compose จะต้องใช้ AGP เวอร์ชัน 9.2.0 เป็นอย่างน้อย (Id45cd, b/413674743)
เวอร์ชัน 1.11
เวอร์ชัน 1.11.4
1 กรกฎาคม 2026
androidx.compose.material:material-*:1.11.4 เปิดตัวแล้ว เวอร์ชัน 1.11.4 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.3
17 มิถุนายน 2026
androidx.compose.material:material-*:1.11.3 เปิดตัวแล้ว เวอร์ชัน 1.11.3 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.2
19 พฤษภาคม 2026
androidx.compose.material:material-*:1.11.2 เปิดตัวแล้ว เวอร์ชัน 1.11.2 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.1
6 พฤษภาคม 2026
androidx.compose.material:material-*:1.11.1 เปิดตัวแล้ว เวอร์ชัน 1.11.1 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.0
22 เมษายน 2026
androidx.compose.material:material-*:1.11.0 เปิดตัวแล้ว เวอร์ชัน 1.11.0 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.0-rc01
8 เมษายน 2026
androidx.compose.material:material-*:1.11.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.11.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.0-beta02
25 มีนาคม 2026
androidx.compose.material:material-*:1.11.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.11.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-beta01
11 มีนาคม 2026
androidx.compose.material:material-*:1.11.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.11.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-alpha06
25 กุมภาพันธ์ 2026
androidx.compose.material:material-*:1.11.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.11.0-alpha06 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.11.0-alpha05
11 กุมภาพันธ์ 2026
androidx.compose.material:material-*:1.11.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.11.0-alpha05 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-alpha04
28 มกราคม 2026
androidx.compose.material:material-*:1.11.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.11.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-alpha03
14 มกราคม 2026
androidx.compose.material:material-*:1.11.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.11.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-alpha02
17 ธันวาคม 2025
androidx.compose.material:material-*:1.11.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.11.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.11.0-alpha01
3 ธันวาคม 2025
androidx.compose.material:material-*:1.11.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.11.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10
เวอร์ชัน 1.10.6
25 มีนาคม 2026
androidx.compose.material:material-*:1.10.6 เปิดตัวแล้ว เวอร์ชัน 1.10.6 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.5
11 มีนาคม 2026
androidx.compose.material:material-*:1.10.5 เปิดตัวแล้ว เวอร์ชัน 1.10.5 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.10.4
25 กุมภาพันธ์ 2026
androidx.compose.material:material-*:1.10.4 เปิดตัวแล้ว เวอร์ชัน 1.10.4 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.3
11 กุมภาพันธ์ 2026
androidx.compose.material:material-*:1.10.3 เปิดตัวแล้ว เวอร์ชัน 1.10.3 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.10.2
28 มกราคม 2026
androidx.compose.material:material-*:1.10.2 เปิดตัวแล้ว เวอร์ชัน 1.10.2 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.1
14 มกราคม 2026
androidx.compose.material:material-*:1.10.1 เปิดตัวแล้ว เวอร์ชัน 1.10.1 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.10.0
3 ธันวาคม 2025
androidx.compose.material:material-*:1.10.0 เปิดตัวแล้ว เวอร์ชัน 1.10.0 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.10.0-rc01
19 พฤศจิกายน 2025
androidx.compose.material:material-*:1.10.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.10.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.10.0-beta02
5 พฤศจิกายน 2025
androidx.compose.material:material-*:1.10.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.10.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.0-beta01
22 ตุลาคม 2025
androidx.compose.material:material-*:1.10.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.10.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.0-alpha05
8 ตุลาคม 2025
androidx.compose.material:material-*:1.10.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.10.0-alpha05 มีคอมมิตเหล่านี้
เวอร์ชัน 1.10.0-alpha04
24 กันยายน 2025
androidx.compose.material:material-*:1.10.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.10.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.0-alpha03
10 กันยายน 2025
androidx.compose.material:material-*:1.10.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.10.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.0-alpha02
27 สิงหาคม 2025
androidx.compose.material:material-*:1.10.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.10.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.10.0-alpha01
13 สิงหาคม 2025
androidx.compose.material:material-*:1.10.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.10.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- ย้าย
minSdkเริ่มต้นจาก API 21 ไปยัง API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
เวอร์ชัน 1.9
เวอร์ชัน 1.9.5
19 พฤศจิกายน 2025
androidx.compose.material:material-*:1.9.5 เปิดตัวแล้ว เวอร์ชัน 1.9.5 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.4
22 ตุลาคม 2025
androidx.compose.material:material-*:1.9.4 เปิดตัวแล้ว เวอร์ชัน 1.9.4 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.3
8 ตุลาคม 2025
androidx.compose.material:material-*:1.9.3 เปิดตัวแล้ว เวอร์ชัน 1.9.3 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.9.2
24 กันยายน 2025
androidx.compose.material:material-*:1.9.2 เปิดตัวแล้ว เวอร์ชัน 1.9.2 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.9.1
10 กันยายน 2025
androidx.compose.material:material-*:1.9.1 เปิดตัวแล้ว เวอร์ชัน 1.9.1 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.0
13 สิงหาคม 2025
androidx.compose.material:material-*:1.9.0 เปิดตัวแล้ว เวอร์ชัน 1.9.0 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.8.0
การเปลี่ยนแปลงพฤติกรรม
- การตรวจสอบ Lint ที่มาพร้อมกับ Compose ต้องใช้ AGP เวอร์ชัน 8.8.2 เป็นอย่างน้อย หากอัปเกรด AGP ไม่ได้ คุณสามารถอัปเกรด Lint ด้วยตนเองได้โดยใช้
android.experimental.lint.version=8.8.2(หรือเวอร์ชันใหม่กว่า) ใน gradle.properties คุณต้องใช้ Android Studio Ladybug ขึ้นไปจึงจะเรียกใช้การตรวจสอบ Lint ของ Compose ภายใน IDE ได้
การเปลี่ยนแปลง API
- โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไปจึงจะใช้งานได้ (Idb6b5)
- API กล่องตกแต่งช่องข้อความไม่ใช่เวอร์ชันทดลองอีกต่อไป (I7480f)
การแก้ไขข้อบกพร่อง
ExposedDropdownMenuเข้ากันได้แบบไบนารีกับเวอร์ชันเก่า (I133f7)
เวอร์ชัน 1.9.0-rc01
30 กรกฎาคม 2025
androidx.compose.material:material-*:1.9.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.9.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.9.0-beta03
16 กรกฎาคม 2025
androidx.compose.material:material-*:1.9.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.9.0-beta03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.0-beta02
2 กรกฎาคม 2025
androidx.compose.material:material-*:1.9.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.9.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.0-beta01
18 มิถุนายน 2025
androidx.compose.material:material-*:1.9.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.9.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้ไฮเปอร์ลิงก์ใน
Text(AnnotatedString)มีการจัดรูปแบบ Material โดยค่าเริ่มต้นแล้ว (I0e8ed, b/339843816)
เวอร์ชัน 1.9.0-alpha04
4 มิถุนายน 2025
androidx.compose.material:material-*:1.9.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.9.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.0-alpha03
20 พฤษภาคม 2025
androidx.compose.material:material-*:1.9.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.9.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.0-alpha02
7 พฤษภาคม 2025
androidx.compose.material:material-*:1.9.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.9.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.9.0-alpha01
23 เมษายน 2025
androidx.compose.material:material-*:1.9.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.9.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลงพฤติกรรม
- การตรวจสอบ Lint ที่มาพร้อมกับ Compose ต้องใช้ AGP เวอร์ชัน 8.8.2 เป็นอย่างน้อย หากอัปเกรด AGP ไม่ได้ คุณสามารถอัปเกรด Lint ด้วยตนเองได้โดยใช้
android.experimental.lint.version=8.8.2(หรือเวอร์ชันที่ใหม่กว่า) ในgradle.propertiesคุณต้องใช้ Android Studio Ladybug ขึ้นไปจึงจะเรียกใช้การตรวจสอบ Lint ของ Compose ภายใน IDE ได้
การเปลี่ยนแปลง API
- โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไปจึงจะใช้งานได้ (Idb6b5)
- API กล่องตกแต่งช่องข้อความไม่ใช่เวอร์ชันทดลองอีกต่อไป (I7480f, b/269651160)
- เลิกใช้งาน
runWithTimingDisabledเพื่อใช้runWithMeasurementDisabledแทน ซึ่งอธิบายลักษณะการทำงานได้ชัดเจนกว่า นั่นคือระบบจะหยุดเมตริกทั้งหมดชั่วคราว นอกจากนี้ ให้แสดงMicrobenchmarkScopeคลาสแม่เนื่องจากไม่สามารถประกาศฟังก์ชันrunWithMeasurementDisabledอีกครั้งเพื่อเปิดการเข้าถึงได้เนื่องจากเป็นฟังก์ชันอินไลน์ (I9e23b, b/389149423, b/149979716)
การแก้ไขข้อบกพร่อง
ExposedDropdownMenuเข้ากันได้แบบไบนารีกับเวอร์ชันเก่า (I133f7)- แก้ไขข้อขัดข้องที่ตัวบ่งชี้ความคืบหน้าและการโหลดในกรณีที่มีการส่ง
Float.NaNเป็นความคืบหน้า (I4fa96, b/352364576)
เวอร์ชัน 1.8
เวอร์ชัน 1.8.3
18 มิถุนายน 2025
androidx.compose.material:material-*:1.8.3 เปิดตัวแล้ว เวอร์ชัน 1.8.3 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.2
20 พฤษภาคม 2025
androidx.compose.material:material-*:1.8.2 เปิดตัวแล้ว เวอร์ชัน 1.8.2 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.1
7 พฤษภาคม 2025
androidx.compose.material:material-*:1.8.1 เปิดตัวแล้ว เวอร์ชัน 1.8.1 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0
23 เมษายน 2025
androidx.compose.material:material-*:1.8.0 เปิดตัวแล้ว เวอร์ชัน 1.8.0 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.8.0-rc03
9 เมษายน 2025
androidx.compose.material:material-*:1.8.0-rc03 เปิดตัวแล้ว เวอร์ชัน 1.8.0-rc03 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.8.0-rc02
26 มีนาคม 2025
androidx.compose.material:material-*:1.8.0-rc02 เปิดตัวแล้ว เวอร์ชัน 1.8.0-rc02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0-rc01
12 มีนาคม 2025
androidx.compose.material:material-*:1.8.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.8.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.8.0-beta03
26 กุมภาพันธ์ 2025
androidx.compose.material:material-*:1.8.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.8.0-beta03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0-beta02
12 กุมภาพันธ์ 2025
androidx.compose.material:material-*:1.8.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.8.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0-beta01
29 มกราคม 2025
androidx.compose.material:material-*:1.8.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.8.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0-alpha08
15 มกราคม 2025
androidx.compose.material:material-*:1.8.0-alpha08 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha08 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่ม
displayCutoutลงในกลุ่มส่วนที่เว้นไว้ที่คอมโพเนนต์ Material พิจารณาโดยค่าเริ่มต้น เพื่อหลีกเลี่ยงไม่ให้เนื้อหาซ้อนทับกับหน้าจอรอยบาก- นี่เป็นการเปลี่ยนแปลงลักษณะการทำงานที่จะส่งผลต่อลักษณะการทำงานของคอมโพเนนต์ที่รับรู้ส่วนที่เว้นไว้รอบหน้าจอรอยบาก ซึ่งรวมถึงค่าเริ่มต้นของพารามิเตอร์
WindowInsetsสำหรับคอมโพเนนต์ Material 3 ที่รับรู้การแทรก และค่าWindowInsetsที่ระบุไว้ในคอมโพเนนต์ - ออบเจ็กต์เริ่มต้นสำหรับทั้ง Material 2 และ Material 3 หากการเปลี่ยนแปลงนี้ทำให้เกิดลักษณะการทำงานที่ไม่พึงประสงค์ ให้ระบุพารามิเตอร์
WindowInsetsด้วยตนเองในระดับคอมโพเนนต์ (I43ee9, b/362508045)
- นี่เป็นการเปลี่ยนแปลงลักษณะการทำงานที่จะส่งผลต่อลักษณะการทำงานของคอมโพเนนต์ที่รับรู้ส่วนที่เว้นไว้รอบหน้าจอรอยบาก ซึ่งรวมถึงค่าเริ่มต้นของพารามิเตอร์
- กิจกรรมที่ใช้เป็นโฮสต์สำหรับ Composable ที่อยู่ภายใต้การทดสอบเมื่อใช้
ComposeContentTestRule.setContentจะใช้ธีมTheme.Material.Light.NoActionBarเพื่อหลีกเลี่ยงไม่ให้ActionBarทับซ้อนกับเนื้อหาการทดสอบเมื่อกำหนดเป้าหมายเป็น SDK 35 หากต้องการเลือกไม่ใช้ลักษณะการทำงานนี้ คุณสามารถนำทรัพยากร Dependency ในui-test-manifestออก และเพิ่มรายการกิจกรรมในAndroidManifest.xmlของแอปทดสอบสำหรับComponentActivityด้วยธีมที่คุณเลือก (I7ae1b, b/383368165)
การมีส่วนร่วมภายนอก
- เปิดเผย
sheetGesturesEnabledในModalBottomSheetLayout(I3f032, b/329543529)
เวอร์ชัน 1.8.0-alpha07
11 ธันวาคม 2024
androidx.compose.material:material-*:1.8.0-alpha07 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha07 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่บางครั้งระบบไม่ทำตามตัวปรับขนาดช่องข้อความ (I90d4c, b/356905963)
เวอร์ชัน 1.8.0-alpha06
13 พฤศจิกายน 2024
androidx.compose.material:material-*:1.8.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0-alpha05
30 ตุลาคม 2024
androidx.compose.material:material-*:1.8.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha05 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มประสิทธิภาพลักษณะการทำงานของ Scaffold
contentPaddingเพื่อหลีกเลี่ยงการจัดองค์ประกอบเนื้อหาของ Body ใหม่ทุกครั้งเมื่อcontentPaddingมีการเปลี่ยนแปลง (I8c8e2, b/373904168) - ทำให้แถบเลื่อนวัสดุเปลี่ยนค่าเมื่อกดปุ่มควบคุม (I1c442)
เวอร์ชัน 1.8.0-alpha04
16 ตุลาคม 2024
androidx.compose.material:material-*:1.8.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- นำ
readOnlyออกจากTextFieldsเพื่อปักหมุดเวอร์ชันพื้นฐานที่เสถียร (I3aaba)
การแก้ไขข้อบกพร่อง
- เพิ่มการรองรับการกระเพื่อมในคอมโพเนนต์ที่ขยายใน Android S+ เช่น การ์ดที่ขยายเมื่อคลิก ก่อนหน้านี้การกระเพื่อมจะไม่ขยายไปตามขนาดใหม่ แต่ตอนนี้จะขยายไปตามขอบเขตใหม่ (If509a, b/183019123)
เวอร์ชัน 1.8.0-alpha02
18 กันยายน 2024
androidx.compose.material:material-*:1.8.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.8.0-alpha01
4 กันยายน 2024
androidx.compose.material:material-*:1.8.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.8.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
NavGraphBuilder.bottomSheetBuilder ใหม่เพื่อสร้าง BottomSheet ด้วย Safe Args ((I28589, I777db, b/351858980)) - เพิ่มการโอเวอร์โหลด
TextFieldและOutlinedTextFieldใหม่ที่ใช้TextFieldState(I3b74c)
เวอร์ชัน 1.7
เวอร์ชัน 1.7.8
12 กุมภาพันธ์ 2025
androidx.compose.material:material-*:1.7.8 เปิดตัวแล้ว เวอร์ชัน 1.7.8 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.7.7
29 มกราคม 2025
androidx.compose.material:material-*:1.7.7 เปิดตัวแล้ว ไม่มีการเปลี่ยนแปลงจาก 1.7.6
เวอร์ชัน 1.7.6
11 ธันวาคม 2024
androidx.compose.material:material-*:1.7.6 เปิดตัวแล้ว เวอร์ชัน 1.7.6 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.5
30 ตุลาคม 2024
androidx.compose.material:material-*:1.7.5 เปิดตัวแล้ว เวอร์ชัน 1.7.5 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.4
16 ตุลาคม 2024
androidx.compose.material:material-*:1.7.4 เปิดตัวแล้ว เวอร์ชัน 1.7.4 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.2
18 กันยายน 2024
androidx.compose.material:material-*:1.7.2 เปิดตัวแล้ว เวอร์ชัน 1.7.2 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.1
10 กันยายน 2024
- ไม่มีการเปลี่ยนแปลงอาร์ติแฟกต์ Android ระบบได้นำอาร์ติแฟกต์
-desktopออกแล้ว และเพิ่มอาร์ติแฟกต์-jvmStubsและ-linuxx64Stubsเป้าหมายเหล่านี้ไม่มีไว้ให้ใช้งาน แต่เป็นตัวยึดตำแหน่งเพื่อช่วยให้ Jetbrains Compose ทำงานได้
เวอร์ชัน 1.7.0
4 กันยายน 2024
androidx.compose.material:material-*:1.7.0 เปิดตัวแล้ว เวอร์ชัน 1.7.0 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.6.0
- เราได้ย้ายข้อมูลคอมโพเนนต์ Material เพื่อใช้ API Ripple ใหม่แล้ว และจะไม่ค้นหา
RippleThemeอีกต่อไป - คอมโพเนนต์ Material ที่ก่อนหน้านี้ยอมรับ
MutableInteractionSourceและค่าเริ่มต้นเป็นremember { MutableInteractionSource() }ตอนนี้ยอมรับMutableInteractionSourceที่เป็น Null ได้และค่าเริ่มต้นเป็น Null แทน หากไม่ได้ยกและใช้MutableInteractionSourceคุณควรส่งค่าเป็น null ซึ่งช่วยให้คอมโพเนนต์บางอย่างสร้างอินสแตนซ์แบบเลซี่ได้เมื่อจำเป็นเท่านั้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพ นอกจากนี้ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย BottomDrawer,ModalBottomSheet,BackdropScaffoldและ Bottomsheet มาตรฐานได้รับการเลื่อนชั้นเป็น API ที่เสถียรแล้ว
เวอร์ชัน 1.7.0-rc01
21 สิงหาคม 2024
androidx.compose.material:material-*:1.7.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.7.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.7.0-beta07
7 สิงหาคม 2024
androidx.compose.material:material-*:1.7.0-beta07 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta07 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.0-beta06
24 กรกฎาคม 2024
androidx.compose.material:material-*:1.7.0-beta06 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta06 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.0-beta05
10 กรกฎาคม 2024
androidx.compose.material:material-*:1.7.0-beta05 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta05 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.0-beta04
26 มิถุนายน 2024
androidx.compose.material:material-*:1.7.0-beta04 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta04 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.0-beta03
12 มิถุนายน 2024
androidx.compose.material:material-*:1.7.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta03 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.7.0-beta02
29 พฤษภาคม 2024
androidx.compose.material:material-*:1.7.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta02 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- อัปเดต API สำหรับการจัดรูปแบบลิงก์: ย้าย
TextLinkStylesไปยังTextStyleและนำTextDefaultsออกจาก Material (I5477b)
เวอร์ชัน 1.7.0-beta01
14 พฤษภาคม 2024
androidx.compose.material:material-*:1.7.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.7.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- อัปเดต API สำหรับรับลิงก์ที่มีธีม Material ในข้อความ โดยเฉพาะอย่างยิ่ง เราได้นำวิธีการออกจาก
TextDefaultsสำหรับการสร้างLinkAnnotationsที่มีธีมและแยกวิเคราะห์ HTML ด้วยลิงก์ที่มีธีม แต่ได้เพิ่มTextLinkStylesคลาสที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Text composable แทน (I31b93)
เวอร์ชัน 1.7.0-alpha08
1 พฤษภาคม 2024
androidx.compose.material:material-*:1.7.0-alpha08 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha08 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขปัญหาที่
backgroundColorไม่มีผลกับTextFieldDecorationBoxและOutlinedTextFieldDecorationBoxตอนนี้กล่องตกแต่งยอมรับพารามิเตอร์shapeแล้ว (I371c2, b/307694651) - ระบบได้นำ
RippleConfiguration#isEnabledออกแล้ว และทำให้LocalRippleConfigurationเป็นค่าว่างได้ หากต้องการปิดใช้การกระเพื่อม ให้ระบุnullเป็นLocalRippleConfigurationแทนการระบุRippleConfigurationเป็นisEnabled = false(I22725) - ลิงก์ข้อความมีตัวเลือกการจัดรูปแบบสถานะที่กดนอกเหนือจากการจัดรูปแบบปกติ การวางเมาส์ และการโฟกัส
TextDefaultsแต่ละวิธีมีอาร์กิวเมนต์pressedStyleเพื่อรองรับการดำเนินการดังกล่าว (Ic473f, b/139312671)
การแก้ไขข้อบกพร่อง
OutlinedTextFieldตอนนี้การเว้นที่ว่างด้านบนสำหรับป้ายกำกับจะพิจารณาขนาดแบบอักษรของระบบแล้ว (Idc781)
เวอร์ชัน 1.7.0-alpha07
17 เมษายน 2024
androidx.compose.material:material-*:1.7.0-alpha07 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha07 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- ลิงก์ข้อความมีตัวเลือกการจัดรูปแบบสถานะที่กดนอกเหนือจากการจัดรูปแบบปกติ เมาส์โฉบ และโฟกัส (I5f864, b/139312671)
- เพิ่มออบเจ็กต์
TextDefaultsที่มีเมธอดในการสร้างLinkAnnotationและแยกวิเคราะห์สตริงที่ติดแท็ก HTML ซึ่งใช้MaterialThemeกับลิงก์ (I98532, b/139312671)
เวอร์ชัน 1.7.0-alpha06
3 เมษายน 2024
androidx.compose.material:material-*:1.7.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้
ประกาศ
androidx.compose.materialไม่จำเป็นต้องใช้เวอร์ชันเดียวกันของอาร์ติแฟกต์ทุกรายการในกลุ่ม Maven นี้อีกต่อไป ผู้ใช้สามารถผสมผสานเวอร์ชันของไลบรารีพื้นฐานของ Compose (Ie5fba)
การเปลี่ยนแปลง API
- ย้ายค่าเริ่มต้นของ
ModalDrawerและBottomDrawerเพิ่มเติมไปยังออบเจ็กต์DrawerDefaults(Ib5b2e)
เวอร์ชัน 1.7.0-alpha05
20 มีนาคม 2024
androidx.compose.material:material-*:1.7.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha05 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบนำธง
ScaffoldSubcomposeInMeasureFixออกแล้ว (I67363)
เวอร์ชัน 1.7.0-alpha04
6 มีนาคม 2024
androidx.compose.material:material-*:1.7.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม
androidx.compose.material:material-navigationอาร์ติแฟกต์ใหม่ที่รองรับชีตด้านล่างเป็นปลายทางเมื่อใช้ Navigation Compose ซึ่งจะแทนที่คลังสื่อการนำทางของโปรแกรมเล่นดนตรี (d65d57, b/180247978)
เวอร์ชัน 1.7.0-alpha03
21 กุมภาพันธ์ 2024
androidx.compose.material:material-*:1.7.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
BottomDrawerได้รับการเลื่อนขั้นจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้วBottomDrawerStateตอนนี้จะแสดงความคืบหน้าเป็นฟังก์ชัน ซึ่งช่วยให้คุณค้นหาความคืบหน้าระหว่างเป้าหมายที่เฉพาะเจาะจงได้BottomDrawerStateตอนนี้อนุญาตให้ปรับแต่งข้อกําหนดของภาพเคลื่อนไหวแล้ว และconfirmStateChangeไม่ใช่ Lambda ต่อท้ายอีกต่อไป (I9c029, b/261423850)BackdropScaffoldได้รับการเลื่อนขั้นจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดtweenตามหลักเกณฑ์แล้ว พารามิเตอร์snackbarHostของBackdropScaffoldไม่ใช่พารามิเตอร์สุดท้ายอีกต่อไปเพื่อหลีกเลี่ยงความสับสนกับ Lambda ต่อท้ายBackdropScaffoldStateแสดงprogress(from, to)API เพื่อค้นหาความคืบหน้าระหว่างจุดยึด (I73f48, b/261423218)- เราได้เลื่อนระดับชีตด้านล่างมาตรฐานจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว นำตัวสร้างที่เลิกใช้งานแล้วออกแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ Tween ตามหลักเกณฑ์แล้ว (I3c1a8, b/278692145, b/261409034)
- เราได้เลื่อนระดับแผ่นด้านล่างแบบโมดัลจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว นำตัวสร้างที่เลิกใช้งานแล้วออกแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนด
tweenตามหลักเกณฑ์แล้ว (Ic53f4, b/278692145, b/266780235, b/261409034)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
BackdropScaffoldอาจขัดข้องในบางสถานการณ์เมื่อใช้ร่วมกับLookaheadScope(I51396) - นำองค์ประกอบย่อยภายใน
BottomSheetScaffoldออกเพื่อปรับปรุงประสิทธิภาพ แก้ไขปัญหาที่BottomSheetScaffoldจะขัดข้องในบางสถานการณ์เมื่อใช้ร่วมกับLookaheadScope(I2f90c) - นำองค์ประกอบย่อยภายใน
ModalBottomSheetLayoutออกเพื่อปรับปรุงประสิทธิภาพ (I7a025)
เวอร์ชัน 1.7.0-alpha02
7 กุมภาพันธ์ 2024
androidx.compose.material:material-*:1.7.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha02 มีคอมมิตเหล่านี้
เวอร์ชัน 1.7.0-alpha01
24 มกราคม 2024
androidx.compose.material:material-*:1.7.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.7.0-alpha01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงพฤติกรรม
- เราได้ย้ายข้อมูลคอมโพเนนต์ Material เพื่อใช้ API Ripple ใหม่แล้ว และจะไม่ค้นหา
RippleThemeอีกต่อไป
การเปลี่ยนแปลง API
เราได้เลิกใช้งาน
rememberRippleและRippleThemeจาก material-ripple แล้ว และได้เพิ่ม API ใหม่สำหรับ Ripple และRippleConfigurationลงใน Material และไลบรารีระบบการออกแบบอื่นๆคอมโพเนนต์ของ Material ที่ก่อนหน้านี้ยอมรับ
MutableInteractionSourceและค่าเริ่มต้นคือให้จดจำ{ MutableInteractionSource() }ตอนนี้ยอมรับMutableInteractionSourceที่เป็น Null ได้และค่าเริ่มต้นจะเป็น Null แทน หากไม่ได้ยกและใช้MutableInteractionSourceคุณควรส่งค่าเป็น null ซึ่งช่วยให้คอมโพเนนต์บางอย่างสร้างอินสแตนซ์แบบเลซี่ได้เมื่อจำเป็นเท่านั้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพ นอกจากนี้ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย
เวอร์ชัน 1.6
เวอร์ชัน 1.6.8
12 มิถุนายน 2024
androidx.compose.material:material-*:1.6.8 เปิดตัวแล้ว เวอร์ชัน 1.6.8 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.6.7
1 พฤษภาคม 2024
androidx.compose.material:material-*:1.6.7 เปิดตัวแล้ว เวอร์ชัน 1.6.7 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.6.6
17 เมษายน 2024
androidx.compose.material:material-*:1.6.6 เปิดตัวแล้ว ไม่มีการเปลี่ยนแปลงนับตั้งแต่รุ่นล่าสุด
เวอร์ชัน 1.6.5
3 เมษายน 2024
androidx.compose.material:material-*:1.6.5 เปิดตัวแล้ว เวอร์ชัน 1.6.5 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.6.4
20 มีนาคม 2024
androidx.compose.material:material-*:1.6.4 เปิดตัวแล้ว เวอร์ชัน 1.6.4 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.6.3
6 มีนาคม 2024
androidx.compose.material:material-*:1.6.3 เปิดตัวแล้ว เวอร์ชัน 1.6.3 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขการถดถอยใน
ExposedDropdownMenuเพื่อให้โฟกัสได้อีกครั้ง (c0e0ed, b/323694447)
เวอร์ชัน 1.6.2
21 กุมภาพันธ์ 2024
androidx.compose.material:material-*:1.6.2 เปิดตัวแล้ว เวอร์ชัน 1.6.2 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.1
7 กุมภาพันธ์ 2024
androidx.compose.material:material-*:1.6.1 เปิดตัวแล้ว เวอร์ชัน 1.6.1 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.6.0
24 มกราคม 2024
androidx.compose.material:material-*:1.6.0 เปิดตัวแล้ว เวอร์ชัน 1.6.0 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.0-rc01
10 มกราคม 2024
androidx.compose.material:material-*:1.6.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.6.0-rc01 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.6.0-beta03
13 ธันวาคม 2023
androidx.compose.material:material-*:1.6.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.6.0-beta03 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.0-beta02
29 พฤศจิกายน 2023
androidx.compose.material:material-*:1.6.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.6.0-beta02 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.0-beta01
15 พฤศจิกายน 2023
androidx.compose.material:material-*:1.6.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.6.0-beta01 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.0-alpha08
18 ตุลาคม 2023
androidx.compose.material:material-*:1.6.0-alpha08 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha08 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เลิกใช้งานฟังก์ชัน
materialIconเพื่อให้ใช้ฟังก์ชันที่โอเวอร์โหลดซึ่งใช้พารามิเตอร์autoMirrorแทน (Ia338d)
การแก้ไขข้อบกพร่อง - เพิ่มความสูงของรายการนำทางโดยอัตโนมัติสำหรับเนื้อหาขนาดใหญ่ (0c4ecc, b/272336962)
เวอร์ชัน 1.6.0-alpha07
4 ตุลาคม 2023
androidx.compose.material:material-*:1.6.0-alpha07 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha07 มีคอมมิตต่อไปนี้
- การอัปเดตทรัพยากร Dependency
เวอร์ชัน 1.6.0-alpha06
20 กันยายน 2023
androidx.compose.material:material-*:1.6.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha06 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงลักษณะการทำงานที่ทำให้เกิดข้อขัดข้อง
- นำฟังก์ชันที่เกี่ยวข้องกับลิ้นชักออกจาก
BottomSheetScaffoldห่อหุ้มBottomSheetScaffoldใน Composable ของ Drawer เพื่อให้ได้ฟังก์ชันการทำงานก่อนหน้า ดูตัวอย่างได้ที่BottomSheetScaffoldWithDrawerSample(I1dcc8)
การเปลี่ยนแปลง API
- เพิ่มแฟล็กชั่วคราวเพื่อควบคุมว่า Scaffold ควรวัดองค์ประกอบย่อยระหว่างการวัดหรือระหว่างการวางหรือไม่ โดยค่าเริ่มต้น ระบบจะวัดในหน่วยวัด หากพบปัญหาเกี่ยวกับลักษณะการทำงานใหม่ โปรดรายงานปัญหา (If6e3b)
เวอร์ชัน 1.6.0-alpha05
6 กันยายน 2023
androidx.compose.material:material-*:1.6.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha05 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- เพิ่มการรองรับไอคอนที่พลิกอัตโนมัติเมื่อแสดงผลในเลย์เอาต์จากขวาไปซ้าย ตอนนี้ไอคอนในโมดูล material-icons-core และ material-icons-extended มีชุดไอคอนเพิ่มเติมเพื่อรองรับการมิเรอร์อัตโนมัติเมื่อไอคอนอนุญาต ชุดใหม่จะมีคำนำหน้าเป็น
Icons.AutoMirrored.Filled...เป็นต้น และมีไอคอนที่จะพลิกอัตโนมัติในเลย์เอาต์ RTL ดูรายการไอคอน Material เพื่อดูรายการไอคอนที่สามารถ (และควร) ทำการมิเรอร์อัตโนมัติ
การเปลี่ยนแปลง API
- เพิ่มการรองรับไอคอนที่พลิกอัตโนมัติเมื่อแสดงผลในเลย์เอาต์จากขวาไปซ้าย ตอนนี้ไอคอนในโมดูล material-icons-core และ material-icons-extended มีชุดไอคอนเพิ่มเติมเพื่อรองรับการมิเรอร์อัตโนมัติเมื่อไอคอนอนุญาต ชุดใหม่จะมีคำนำหน้าเป็น
Icons.AutoMirrored.Filled...เป็นต้น และมีไอคอนที่จะพลิกอัตโนมัติในเลย์เอาต์ RTL ดูรายการไอคอน Material เพื่อดูรายการไอคอนที่สามารถ (และควร) ทำการมิเรอร์อัตโนมัติ ตอนนี้เราได้ทำเครื่องหมายพร็อพเพอร์ตี้ไอคอนที่ระบุไว้ก่อนหน้านี้สำหรับไอคอนเหล่านั้นว่าเลิกใช้งานแล้ว และมีคำแนะนำเกี่ยวกับบล็อกการแทนที่เพื่อช่วยในการย้ายข้อมูล ในกรณีที่คุณไม่มีการจัดการพิเศษสำหรับการมิเรอร์ไอคอนใน RTL เราขอแนะนำให้ย้ายข้อมูลไปยังชุดไอคอนใหม่ เช่น ควรปรับโครงสร้างIcons.Filled.ArrowBackเป็นIcons.AutoMirrored.Filled.ArrowBack(I4b511)
เวอร์ชัน 1.6.0-alpha04
23 สิงหาคม 2023
androidx.compose.material:material-*:1.6.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha04 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่คอมโพเนนต์บางรายการที่ใช้
Subcomposition(เช่นBottomSheetScaffold) ภายใน Scaffold ภายในLookaheadScopeพยายามอ่านขนาดเร็วเกินไป (If2c5d) - แก้ไขการคำนวณ
DropdownMenuของoffsetเพื่อให้ค่าออฟเซ็ต x ขึ้นอยู่กับทิศทางเลย์เอาต์ในเครื่องเท่านั้น และค่าออฟเซ็ต y จะไม่กลับด้านอีกต่อไปเมื่อเมนูอยู่ใกล้ด้านล่างของหน้าจอ (Iccc74, b/294103942) - ปรับปรุงโครงสร้างภายในของ
BottomSheetScaffoldและแก้ไขปัญหาที่อาจเกิดขึ้นกับBottomSheetScaffoldภายในLookaheadLayout(Ic0afa)
เวอร์ชัน 1.6.0-alpha03
9 สิงหาคม 2023
androidx.compose.material:material-*:1.6.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้คอมโพเนนต์ Material2 มี API แยกต่างหากเพื่อส่ง
windowInsetsเพื่อรองรับฟังก์ชันการทำงานแบบขอบจรดขอบใน Android คอมโพเนนต์ Material2 ไม่รองรับ Inset โดยค่าเริ่มต้นและควรส่งค่าด้วยตนเอง ซึ่งต่างจากคอมโพเนนต์ Material3 โปรดดูตัวอย่างที่เกี่ยวข้องเพื่อเป็นแนวทาง (I655e8)
เวอร์ชัน 1.6.0-alpha02
26 กรกฎาคม 2023
androidx.compose.material:material-*:1.6.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เรากำลังย้ายการขึ้นอยู่กับความหนาแน่นไปที่ระดับคอมโพเนนต์ โดยจะมีผลกับคอมโพเนนต์ต่อไปนี้
SwipeToDismissและคอมโพเนนต์ที่อิงตามชีต โปรดใช้การโอเวอร์โหลดใหม่ที่ระบุไว้ในกรณีที่ความหนาแน่นเป็นพารามิเตอร์ (I1846e) - คำอธิบายประกอบเพิ่มเติมเพื่อระบุอินพุตที่อนุญาตไปยัง Composable (I51109)
- อัปเดตไฟล์ API เพื่อใส่คำอธิบายประกอบการระงับความเข้ากันได้ (I8e87a, b/287516207)
- เพิ่มการจัดแนวเริ่มต้นใหม่สำหรับ
FabPosition(Ib7aea, b/170592777) - เราได้เลิกใช้งาน
TextFieldColorsWithIconsใน Material 2 แล้วเพื่อเปลี่ยนไปใช้TextFieldColorsเมื่อลบล้างleadingIconColorหรือtrailingIconColorให้ลบล้างการโอเวอร์โหลดด้วยinteractionSourceด้วย (Id57ed, b/199377790)
เวอร์ชัน 1.6.0-alpha01
21 มิถุนายน 2023
androidx.compose.material:material-*:1.6.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.6.0-alpha01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงพฤติกรรม
- ตอนนี้
includeFontPaddingจะเป็นfalseโดยค่าเริ่มต้นในตัวอักษร Material 2 นอกจากนี้ รูปแบบความสูงบรรทัดเริ่มต้นยังเปลี่ยนเป็นTrim.NoneและAlignment.Centerแล้ว และได้เพิ่มlineHeightที่ชัดเจน (ใน sp) ลงในTextStyleของTypographyโปรดดูเอกสาร API หากต้องการปรับแต่งค่าเหล่านี้ และดูบล็อกโพสต์เพื่อดูคำอธิบายโดยละเอียดเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ (Icabc3, I3f801, I04c03)
การเปลี่ยนแปลง API
- เราได้เลิกใช้งาน
SwipeableAPI ของ Material แล้ว โปรดดูAnchoredDraggableAPI ของ Foundation ซึ่งได้รับการเพิ่มประสิทธิภาพสำหรับทั้งกรณีการใช้งานที่เรียบง่ายและซับซ้อน (I732e0)
การแก้ไขข้อบกพร่อง
- ตอนนี้
BottomSheetState,ModalBottomSheetStateและBottomDrawerStateจะแสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่าง Anchor ปัจจุบัน (ที่ตั้งค่าแล้ว) กับ Anchor ที่ใกล้ที่สุดในทิศทางการปัด (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
รุ่น 1.5
เวอร์ชัน 1.5.4
18 ตุลาคม 2023
androidx.compose.material:material-*:1.5.4 เปิดตัวแล้ว เวอร์ชัน 1.5.4 มีคอมมิตเหล่านี้
เวอร์ชัน 1.5.3
4 ตุลาคม 2023
androidx.compose.material:material-*:1.5.3 เปิดตัวแล้ว เวอร์ชันนี้ไม่มีการเปลี่ยนแปลง
รุ่น 1.5.2
27 กันยายน 2023
androidx.compose.material:material-*:1.5.2 เปิดตัวแล้ว เวอร์ชัน 1.5.2 มีคอมมิตต่อไปนี้
รุ่น 1.5.1
6 กันยายน 2023
androidx.compose.material:material-*:1.5.1 จะเผยแพร่โดยไม่มีการเปลี่ยนแปลง เวอร์ชัน 1.5.1 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.5.0
9 สิงหาคม 2023
androidx.compose.material:material-*:1.5.0 เปิดตัวแล้ว เวอร์ชัน 1.5.0 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.4.0
การเปลี่ยนแปลง API
- รวมการเปลี่ยนแปลงใน Swipeable1 API ใน
BottomSheetScaffoldเปลี่ยนชื่อพารามิเตอร์confirmStateChangeของBottomSheetStateเป็นconfirmValueChangeแล้วprogressจะแสดงเป็นค่าลอยตัวแล้วanimateToและsnapToเป็นข้อมูลภายใน โปรดใช้expand()และcollapse()แทน นำdirectionและoverflowออกแล้วoffsetถูกแทนที่ด้วยrequireOffset()แล้ว I323b4 - ทําเครื่องหมายฟังก์ชัน
snapToใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีแทร็กสำหรับตัวบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับตัวบอกสถานะความคืบหน้าทั้งแบบวงกลมและแบบเส้นตรง (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
ModalBottomSheetState,ModalBottomSheetState.SaverและrememberModalBottomSheetStateของconfirmStateChangeเป็นconfirmValueChange(Ib48d1) - เพิ่ม
Modifier.minimumInteractiveComponentSizeโดยใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบด้วยการสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ใน
ModalBottomSheetLayoutanimateTo ของModalBottomSheetStateไม่รับพารามิเตอร์animationSpecอีกต่อไป และตอนนี้ออฟเซ็ตที่แสดงเป็นค่า Null ได้แล้ว ใช้requireOffsetเพื่อกำหนดให้ต้องระบุออฟเซ็ต (Ia2e79) - เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility(I8f206) - การเปลี่ยนแปลงที่รวมไว้ใน Swipeable API ใน
animateToของModalDrawer. DrawerStateถูกแทนที่ด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซ็ตเป็นค่า Null ได้แล้ว ใช้requireOffsetเพื่อกำหนดให้ต้องระบุออฟเซ็ต (I3de9e) - อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
- เพิ่มพารามิเตอร์
minLinesลงในข้อความ Material และ Material3,TextFieldและOutlinedTextFieldซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
pullRefreshไม่ได้ใช้ความเร็ว ทำให้เกิดการเลื่อนเกิน นอกจากนี้ ยังเปลี่ยนลายเซ็น API ของonReleaselambda ในModifier.pullRefreshเพื่อแสดงผล Float สำหรับความเร็วที่ใช้ (I7db65, b/266874741) - ตอนนี้
BottomSheetState,ModalBottomSheetStateและBottomDrawerStateจะแสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่าง Anchor ปัจจุบัน (ที่ตั้งค่าแล้ว) กับ Anchor ที่ใกล้ที่สุดในทิศทางการปัด (I1b317, b/271169225, b/276375124, b/276776071, b/270066861) - แก้ไข
AlertDialogการดำเนินการปิดให้ปรากฏใต้การดำเนินการยืนยันเมื่อการดำเนินการซ้อนทับกันเพื่อให้พอดีกับความกว้างของกล่องโต้ตอบ การแก้ไขนี้จะปรับการใช้งานให้สอดคล้องกับข้อกำหนดของ Material Design (I029de, b/235454277) BottomSheetScaffoldจะไม่เข้าร่วมการเลื่อนที่ซ้อนกันอีกต่อไปเมื่อตั้งค่าgesturesEnabledเป็น false (I634f3, b/215403277)- แก้ไขข้อบกพร่องที่ทำให้
BottomSheetScaffoldขัดข้องเมื่อได้รับเนื้อหาที่ว่างเปล่าสำหรับช่อง (Ib24a5, b/235588730) - แก้ไข
PullRefreshIndicatorการสกัดกั้นการคลิก/เหตุการณ์ของเคอร์เซอร์ (2494256, b/271777421) - แก้ไขปัญหาที่
ModalBottomSheetLayoutจะขัดข้องในกรณีที่เกิดข้อยกเว้นเมื่อเปลี่ยนการวางแนว ตอนนี้ภาพเคลื่อนไหวของเลย์เอาต์ (เช่นModifier.animateContentSize) ใน/บนเนื้อหาชีตทำงานได้อย่างราบรื่นแล้ว (I2f981, b/266780234)
เวอร์ชัน 1.5.0-rc01
26 กรกฎาคม 2023
androidx.compose.material:material-*:1.5.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.5.0-rc01 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.5.0-beta03
28 มิถุนายน 2023
androidx.compose.material:material-*:1.5.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.5.0-beta03 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- ตอนนี้
BottomSheetState,ModalBottomSheetStateและBottomDrawerStateจะแสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่าง Anchor ปัจจุบัน (ที่ตั้งค่าแล้ว) กับ Anchor ที่ใกล้ที่สุดในทิศทางการปัด (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
เวอร์ชัน 1.5.0-beta02
7 มิถุนายน 2023
androidx.compose.material:material-*:1.5.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.5.0-beta02 มีคอมมิตเหล่านี้
เวอร์ชัน 1.5.0-beta01
24 พฤษภาคม 2023
androidx.compose.material:material-*:1.5.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.5.0-beta01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ออฟเซ็ตของ
DrawerStateและBottomDrawerStateจะต้องระบุค่าเสมอ แต่จะแสดงFloat.NaNแทนเพื่อระบุว่าไม่มีออฟเซ็ต (Ie9855) - เพิ่มตัวเลือกในการส่ง
ScrollStateเมื่อสร้างDropdownMenuหรือExposedDropdownMenuเพื่อควบคุมสถานะการเลื่อนแนวตั้งของรายการเมนูที่แสดง (Idb009, b/185304441) - เพิ่มการรองรับการเปิด/ปิดท่าทางสัมผัสของ
ModalBottomSheetLayoutเพื่อให้ผู้ใช้กำหนดค่านี้สำหรับ BottomSheet ที่มีฟีเจอร์เพิ่มเติมได้ (I40af0) - เพิ่มพารามิเตอร์สีลงใน
BasicTextเพื่อให้สามารถตั้งค่าหรือเปลี่ยนสีข้อความได้อย่างมีประสิทธิภาพ (Iffd88, b/246961787) - เปลี่ยนชื่อพร็อพเพอร์ตี้ Semantics
isContainerเป็นisTraversalGroup(I121f6)
การแก้ไขข้อบกพร่อง
- แก้ไข
AlertDialogการดำเนินการปิดให้ปรากฏใต้การดำเนินการยืนยันเมื่อการดำเนินการซ้อนทับกันเพื่อให้พอดีกับความกว้างของกล่องโต้ตอบ การแก้ไขนี้จะปรับการใช้งานให้สอดคล้องกับข้อกำหนดของ Material Design (I029de, b/235454277)
เวอร์ชัน 1.5.0-alpha04
10 พฤษภาคม 2023
androidx.compose.material:material-*:1.5.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.5.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เรากำลังย้ายการขึ้นอยู่กับความหนาแน่นไปที่ระดับคอมโพเนนต์ ซึ่งมีผลกับคอมโพเนนต์ต่อไปนี้
BottomDrawer,ModalBottomSheetLayout,BottomSheetScaffold,Switch,ModalDrawerโปรดใช้การโอเวอร์โหลดใหม่ที่ระบุไว้ในกรณีที่ความหนาแน่นเป็นพารามิเตอร์ (I8fbd8)
เวอร์ชัน 1.5.0-alpha03
19 เมษายน 2023
androidx.compose.material:material-*:1.5.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.5.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- อัปเดตส่วนประกอบภายในของ
BottomDrawerเพื่อใช้SwipeableV2API ใหม่ ด้วยเหตุนี้BottomDrawerStateจะมีเฉพาะ API ที่กำหนดไว้ที่ระดับคลาสเท่านั้น และจะไม่รับช่วงเมธอด/พร็อพเพอร์ตี้จากSwipeableStateเราใช้การจัดองค์ประกอบกับSwipeableV2Stateภายใน ตอนนี้ออฟเซ็ตเป็นพร็อพเพอร์ตี้เลขทศนิยมที่ยอมรับค่า Null ได้แล้ว และยังคงเข้าถึงค่าปัจจุบันและค่าเป้าหมายของการปัดได้ผ่านพร็อพเพอร์ตี้ currentValue และ targetValue เราจะยังคงรองรับวิธีการระดับชั้นเรียนก่อนหน้า เช่น เปิด/ขยาย/ปิด และพร็อพเพอร์ตี้ เช่นisOpen/isClosedต่อไป (Iad40c, b/178529942, b/220676296)
การแก้ไขข้อบกพร่อง
- อัปเดตส่วนประกอบภายในของสวิตช์ ตอนนี้สวิตช์จะแสดงตัวอย่างสถานะที่ใกล้เคียงที่สุด (สถานะเป้าหมาย) เมื่อลาก (Id90d4)
- เราได้เพิ่มประสิทธิภาพเนื้อหาชีตแบบเคลื่อนไหว (เช่น
Modifier.animateContentSizeในเนื้อหาชีต) ในBottomSheetScaffoldและตอนนี้เนื้อหาดังกล่าวทำงานได้อย่างราบรื่นแล้ว (Ia913c, b/270518202, b/254446195) BottomSheetScaffoldจะไม่เข้าร่วมการเลื่อนที่ซ้อนกันอีกต่อไปเมื่อตั้งค่าgesturesEnabledเป็นfalse(I634f3, b/215403277)
เวอร์ชัน 1.5.0-alpha02
5 เมษายน 2023
androidx.compose.material:material-*:1.5.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.5.0-alpha02 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่ทำให้
BottomSheetScaffoldขัดข้องเมื่อได้รับเนื้อหาที่ว่างเปล่าสำหรับช่อง (Ib24a5, b/235588730) - แก้ไขการคลิก / เหตุการณ์ของเคอร์เซอร์ที่
PullRefreshIndicatorดักจับ (2494256, b/271777421)
เวอร์ชัน 1.5.0-alpha01
22 มีนาคม 2023
androidx.compose.material:material-*:1.5.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.5.0-alpha01 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- เพิ่มตัวอย่างการปรับโฟลว์ของ ChipGroup อัปเดตระยะขอบแนวนอนระหว่างชิปย่อยในตัวอย่าง ChipGroup แบบบรรทัดเดียวให้ตรงกับข้อกำหนด (I3b155)
- แก้ไขปัญหาที่
ModalBottomSheetLayoutจะขัดข้องในกรณีที่เกิดข้อยกเว้นเมื่อเปลี่ยนการวางแนว ตอนนี้ภาพเคลื่อนไหวของเลย์เอาต์ (เช่นModifier.animateContentSize) ใน/บนเนื้อหาชีตทำงานได้อย่างราบรื่นแล้ว (I2f981, b/266780234)
เวอร์ชัน 1.4
เวอร์ชัน 1.4.3
3 พฤษภาคม 2023
androidx.compose.material:material-*:1.4.3 จะได้รับการเผยแพร่โดยไม่มีการเปลี่ยนแปลง (มีการอัปเดตเวอร์ชันเท่านั้น)
เวอร์ชัน 1.4.2
19 เมษายน 2023
androidx.compose.material:material-*:1.4.2 เปิดตัวแล้ว เวอร์ชัน 1.4.2 มีคอมมิตเหล่านี้
เวอร์ชัน 1.4.1
5 เมษายน 2023
androidx.compose.material:material-*:1.4.1 เปิดตัวแล้ว เวอร์ชัน 1.4.1 มีคอมมิตเหล่านี้
เวอร์ชัน 1.4.0
22 มีนาคม 2023
androidx.compose.material:material-*:1.4.0 เปิดตัวแล้ว เวอร์ชัน 1.4.0 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.3.0
การเปลี่ยนแปลง API
- เพิ่ม
Modifier.minimumInteractiveComponentSizeโดยใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบด้วยการสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ใน
ModalDrawerDrawerStateของanimateToถูกแทนที่ด้วยวิธีการเปิดและปิดแล้ว และตอนนี้ออฟเซ็ตเป็นค่าที่กำหนดให้เป็น Null ได้ ใช้requireOffsetเพื่อกำหนดให้ต้องระบุออฟเซ็ต (I3de9e) - เพิ่มพารามิเตอร์
minLinesลงในข้อความ Material และ Material3,TextFieldและOutlinedTextFieldซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d) - เพิ่มพารามิเตอร์
minLinesลงในBasicTextและBasicTextFieldซึ่งช่วยให้กำหนดความสูงขั้นต่ำของ Composable เหล่านี้ในแง่ของจำนวนบรรทัดได้ (I24294, b/122476634)
เวอร์ชัน 1.4.0-rc01
8 มีนาคม 2023
androidx.compose.material:material-*:1.4.0-rc01 จะเผยแพร่โดยไม่มีการเปลี่ยนแปลง เวอร์ชัน 1.4.0-rc01 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.4.0-beta02
22 กุมภาพันธ์ 2023
androidx.compose.material:material-*:1.4.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.4.0-beta02 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- รวมการเปลี่ยนแปลงใน Swipeable API ใน
BottomSheetScaffoldเปลี่ยนชื่อพารามิเตอร์confirmStateChangeของBottomSheetStateเป็นconfirmValueChangeแล้วprogressจะแสดงเป็นค่าลอยตัวแล้วanimateToและsnapToเป็นข้อมูลภายใน โปรดใช้expand()และcollapse()แทน นำdirectionและoverflowออกแล้วoffsetถูกแทนที่ด้วยrequireOffset()แล้ว (I323b4)
การแก้ไขข้อบกพร่อง
- นำบทบาทเชิงความหมายออกจากพื้นผิวที่คลิกได้และเลือกได้ อัปเดตคอมโพเนนต์ที่ใช้บทบาทเหล่านั้นเพื่อตั้งค่าบทบาทโดยใช้ Modifier.semantics (Ibb4ba)
- การอัปเดตเล็กน้อยสำหรับไอคอน Material แบบขยาย ซึ่งปรับแต่งไอคอน
desktop_mac,directionsและkitchenที่เติมสี (I65f5e)
เวอร์ชัน 1.4.0-beta01
8 กุมภาพันธ์ 2023
androidx.compose.material:material-*:1.4.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.4.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขปัญหาที่
pullRefreshไม่ได้ใช้ความเร็ว ทำให้การเลื่อนเกินแสดงขึ้น นอกจากนี้ ยังเปลี่ยนลายเซ็น API ของonReleaselambda ในModifier.pullRefreshเพื่อแสดงผล Float สำหรับความเร็วที่ใช้ (I7db65, b/266874741) - คืนค่าเครื่องมือรับพร็อพเพอร์ตี้
LocalMinimuTouchTargetEnforcementและทำเครื่องหมายว่าเลิกใช้งานแล้ว พร้อมเปลี่ยนเส้นทางไปยังLocalMinimumInteractiveComponentEnforcement(I60dd5)
เวอร์ชัน 1.4.0-alpha05
25 มกราคม 2023
androidx.compose.material:material-*:1.4.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha05 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ระบบคำนวณ
ModalBottomSheetLayout's HalfExpandedไม่ถูกต้องและชีตจะปรากฏเป็นชีตลอย (I8c615, b/265610459) - แก้ไขข้อบกพร่องใน
ModalBottomSheetLayoutซึ่งชีตจะขัดข้องเมื่อเปลี่ยนจากสถานะซ่อนเป็นสถานะที่มองเห็นได้ในบางกรณี (Ia9265, b/265444789)
เวอร์ชัน 1.4.0-alpha04
11 มกราคม 2023
androidx.compose.material:material-*:1.4.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha04 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มพร็อพเพอร์ตี้ความหมายของ
IsContainerใน Surfaces ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการข้ามตามความหมายเชิงความหมายขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379) - ทําเครื่องหมายฟังก์ชัน
snapToใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีแทร็กสำหรับตัวบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับตัวบอกสถานะความคืบหน้าทั้งแบบวงกลมและแบบเส้นตรง (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
ModalBottomSheetState,ModalBottomSheetState.SaverและrememberModalBottomSheetStateของconfirmStateChangeเป็นconfirmValueChange(Ib48d1) - ความสามารถในการเว้นว่างของประเภทการแสดงผลเพิ่มเติมของฟังก์ชันที่เลิกใช้งานแล้วและซ่อนอยู่ (Ibf7b0)
- เพิ่ม
Modifier.minimumInteractiveComponentSizeโดยใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบด้วยการสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ใน
ModalBottomSheetLayoutModalBottomSheetStateของanimateToไม่รับพารามิเตอร์animationSpecอีกต่อไป และตอนนี้offsetที่แสดงสามารถเป็นค่า Null ได้ ใช้requireOffsetเพื่อกำหนดให้ต้องมีoffset(Ia2e79)
การแก้ไขข้อบกพร่อง
- ตอนนี้ชีตของ
ModalBottomSheetLayoutมีความกว้างสูงสุด 640 dp แล้ว (I71a4f, b/234927577) - แก้ไขปัญหาที่
rememberPullRefreshStateไม่อัปเดตrefreshThresholdและrefreshingOffsetเมื่อเวลาผ่านไป (Ifed10, b/263159832) - ตอนนี้ความคืบหน้าของตัวบ่งชี้ความคืบหน้าจะอยู่ในช่วงที่คาดไว้แล้ว (I8a7eb, b/262262727)
- เมื่อ
ModalBottomSheetStateยังไม่ได้รับ Anchor ใดๆ ระบบจะอัปเดตcurrentValueโดยไม่มีภาพเคลื่อนไหวเมื่อเรียกใช้snapToหรือanimateToแทนที่จะส่งข้อยกเว้น (I2c91b) - แก้ไขสถานะที่เปิดใช้ในการติดตั้งใช้งาน Material 2
FilterChip(Id326a, b/261329817) - แก้ไขข้อบกพร่องที่ทำให้
ModalBottomSheetLayoutขัดข้องหากเป็นHalfExpandedเมื่อหมุนจากแนวตั้งเป็นแนวนอน โปรดตรวจสอบว่าคุณส่งinitialValueที่ถูกต้อง เช่น โดยการตรวจสอบการกำหนดค่า (Ie8df7, b/182882364) - แก้ไขปัญหาที่
ModalBottomSheetLayoutจะขัดข้องหากเนื้อหาชีตว่างเปล่าModalBottomSheetLayoutอนุญาตให้มีเนื้อหาในชีตว่างแล้ว หากเนื้อหาชีตว่างเปล่า ชีตจะมีสถานะ "ซ่อน" เท่านั้น (Ic2288, b/200980998, b/216693030)
ปัญหาที่ทราบ
- เมื่ออัปเดตจาก
androidx.compose.foundation:1.4.0-alpha03เป็นandroidx.compose.foundation:1.4.0-alpha04คุณอาจพบข้อผิดพลาดjava.lang.NoSuchFieldErrorที่นี่คือที่ที่มีการรายงานปัญหาครั้งแรก เราได้ส่งการแก้ไขแล้ว และการแก้ไขนี้จะพร้อมใช้งานในการอัปเดต Compose ครั้งถัดไป วิธีแก้ปัญหาชั่วคราวคืออัปเดตไลบรารีandroidx.compose.materialและandroidx.compose.material3เป็นเวอร์ชันล่าสุด(1.1.0-alpha04) หรือดาวน์เกรดandroidx.compose.foundationเป็น 1.4.0-alpha03
เวอร์ชัน 1.4.0-alpha03
7 ธันวาคม 2022
androidx.compose.material:material-*:1.4.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility(I8f206) - รวมการเปลี่ยนแปลงใน
SwipeableAPI ในModalDraweranimateToของDrawerStateถูกแทนที่ด้วยเมธอดopenและcloseแล้ว และตอนนี้ออฟเซ็ตเป็นค่า Null ได้แล้ว ใช้requireOffsetเพื่อกำหนดให้ต้องระบุออฟเซ็ต (I3de9e) - เพิ่ม Modifier API เพื่อค้นหาข้อมูลการเลื่อนขององค์ประกอบระดับบน (I2ba9d, b/203141462)
- ใช้ใน
Clickableเพื่อหน่วงเวลาการโต้ตอบด้วยการกดอย่างถูกต้อง เมื่อท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน - แก้ไขปัญหาที่
Clickablesไม่หน่วงเวลาการกระเพื่อมอย่างถูกต้องเมื่อใช้ภายในScrollable ViewGroup - อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
PullRefreshIndicatorอาจค้างหลังจากเรียกใช้onRefreshหากไม่ได้เปลี่ยนสถานะการรีเฟรชเป็นจริง (Ie2416, b/248274004)
การอัปเดตทรัพยากร Dependency
- ตอนนี้ UI ของ Compose และ Material ของ Compose ขึ้นอยู่กับ Lifecycle 2.5.1 แล้ว (I05ab0, b/258038814)
เวอร์ชัน 1.4.0-alpha02
9 พฤศจิกายน 2022
androidx.compose.material:material-*:1.4.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้
awaitFirstDownและwaitForUpOrCancellationยอมรับPointerEventPassเพื่อให้มีความยืดหยุ่นมากขึ้น (I7579a, b/212091796) - เพิ่มพารามิเตอร์
minLinesลงในข้อความ Material และ Material3,TextFieldและOutlinedTextFieldซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d) - เพิ่มพารามิเตอร์
minLinesลงในBasicText และBasicTextFieldซึ่งช่วยให้คุณกำหนดความสูงขั้นต่ำของ Composable เหล่านี้ได้ในแง่ของ จำนวนบรรทัด (I24294, b/122476634)
เวอร์ชัน 1.4.0-alpha01
24 ตุลาคม 2022
androidx.compose.material:material-*:1.4.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.4.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มวิธีการใหม่
awaitEachGesture()สำหรับเครื่องตรวจจับท่าทางสัมผัส ซึ่งทำงานคล้ายกับforEachGesture()แต่การวนซ้ำเหนือท่าทางจะทำงานภายในAwaitPointerEventScopeทั้งหมด ดังนั้นเหตุการณ์จึงไม่สูญหายระหว่างการวนซ้ำ - เราเลิกใช้งาน
forEachGesture()แล้วและหันมาใช้awaitEachGesture()แทน เนื่องจาก ช่วยให้ระบบไม่พลาดเหตุการณ์ที่เกิดขึ้นระหว่างท่าทางสัมผัส (Iffc3f, b/251260206)
เวอร์ชัน 1.3
เวอร์ชัน 1.3.1
9 พฤศจิกายน 2022
androidx.compose.material:material-*:1.3.1 เปิดตัวแล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้
เวอร์ชัน 1.3.0
24 ตุลาคม 2022
androidx.compose.material:material-*:1.3.0 เปิดตัวแล้ว เวอร์ชัน 1.3.0 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0
การเปลี่ยนแปลงลักษณะการทำงานที่ทำให้เกิดข้อขัดข้อง
- ลดระดับความสูงสูงสุดที่รองรับในกล่องโต้ตอบและป๊อปอัปเป็น 8dp
การเปลี่ยนแปลง API
- เพิ่มคอมโพเนนต์ดึงเพื่อรีเฟรชใน Compose (I29168)
- เปลี่ยนชื่อพารามิเตอร์จากค่าเป็นค่าใน RangeSlider (I3b79a)
เวอร์ชัน 1.3.0-rc01
5 ตุลาคม 2022
androidx.compose.material:material-*:1.3.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.3.0-rc01 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.3.0-beta03
21 กันยายน 2022
androidx.compose.material:material-*:1.3.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.3.0-beta03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคอมโพเนนต์ดึงเพื่อรีเฟรชไปยัง Compose (I29168)
เวอร์ชัน 1.3.0-beta02
7 กันยายน 2022
androidx.compose.material:material-*:1.3.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.3.0-beta02 มีคอมมิตเหล่านี้
ไม่มีการเปลี่ยนแปลงตั้งแต่ 1.3.0-beta01
เวอร์ชัน 1.3.0-beta01
24 สิงหาคม 2022
androidx.compose.material:material-*:1.3.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.3.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงลักษณะการทำงานที่ทำให้เกิดข้อขัดข้อง
ลดระดับความสูงสูงสุดที่รองรับในกล่องโต้ตอบและป๊อปอัปเป็น 8dp
ลดระดับความสูงสูงสุดที่รองรับสำหรับกล่องโต้ตอบและป๊อปอัปของ Compose จาก 30dp เป็น 8dp การเปลี่ยนแปลงนี้ส่งผลต่อทั้งกล่องโต้ตอบและป๊อปอัปที่กำหนดเองของ Material และ UI การเปลี่ยนแปลงนี้มีขึ้นเพื่อลดข้อบกพร่องด้านการช่วยเหลือพิเศษใน Android เวอร์ชันต่ำกว่า S และเพื่อให้มั่นใจว่าบริการการช่วยเหลือพิเศษภายในหน้าต่างเหล่านั้นจะโต้ตอบกับเนื้อหาภายในกล่องโต้ตอบหรือป๊อปอัปได้
การเปลี่ยนแปลงนี้จะส่งผลต่อคุณก็ต่อเมื่อคุณสร้างการติดตั้งใช้งานกล่องโต้ตอบหรือป๊อปอัปที่กำหนดเองโดยมีการตั้งค่าระดับการยกระดับสูงกว่า 8dp ลองลดระดับความสูงของกล่องโต้ตอบหรือป๊อปอัป หากต้องการเลือกไม่ใช้ลักษณะการทำงานใหม่นี้ ให้พิจารณาการแยกไดอะล็อกหรือป๊อปอัปของคุณเองโดยตั้งค่าการยกระดับที่ต้องการ เราไม่แนะนำให้ใช้วิธีนี้ เนื่องจากอาจส่งผลเสียต่อการช่วยเหลือพิเศษ และนักพัฒนาแอปต้องตรวจสอบว่าส่วนล่างของกล่องโต้ตอบหรือป๊อปอัปสามารถโต้ตอบและอ่านได้โดยบริการช่วยเหลือพิเศษ
เวอร์ชัน 1.3.0-alpha03
10 สิงหาคม 2022
androidx.compose.material:material-*:1.3.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.3.0-alpha03 มีคอมมิตเหล่านี้
เวอร์ชัน 1.3.0-alpha02
27 กรกฎาคม 2022
androidx.compose.material:material-*:1.3.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.3.0-alpha02 มีคอมมิตเหล่านี้
การมีส่วนร่วมภายนอก
- แก้ไขปัญหา
AnimatedVisibilityด้วยFloatingActionButtonใน Scaffold (I3a0ae, b/224005027)
เวอร์ชัน 1.3.0-alpha01
29 มิถุนายน 2022
androidx.compose.material:material-*:1.3.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.3.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อพารามิเตอร์จาก values เป็น value ใน
RangeSlider(I3b79a)
การแก้ไขข้อบกพร่อง
- อัปเดตตัวอย่างป้ายเพื่อให้คำอธิบายเนื้อหาที่สื่อความหมายมากขึ้น (I10b9d)
เวอร์ชัน 1.2
เวอร์ชัน 1.2.1
10 สิงหาคม 2022
androidx.compose.material:material-*:1.2.1 เปิดตัวแล้ว เวอร์ชัน 1.2.1 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.2.0
27 กรกฎาคม 2022
androidx.compose.material:material-*:1.2.0 เปิดตัวแล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-rc03
29 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-rc03 เปิดตัวแล้ว เวอร์ชัน 1.2.0-rc03 มีคอมมิตต่อไปนี้
- ไม่มีการเปลี่ยนแปลงตั้งแต่ 1.2.0-rc02
เวอร์ชัน 1.2.0-rc02
22 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-rc02 เปิดตัวแล้ว เวอร์ชัน 1.2.0-rc02 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.2.0-rc01
15 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.2.0-rc01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้อินเทอร์เฟซในไลบรารี Compose สร้างขึ้นโดยใช้เมธอดอินเทอร์เฟซเริ่มต้นของ jdk8 (I5bcf1)
การแก้ไขข้อบกพร่อง
- อัปเดตป้ายพร้อมแท็บไอคอนนำเพื่อติดป้ายกับป้ายกำกับแทนไอคอน (I90993)
เวอร์ชัน 1.2.0-beta03
1 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.2.0-beta03 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่ทำให้
BottomSheetScaffoldวาดทับเงาของแถบแอปด้านบนBottomSheetScaffoldจะพิจารณาสถานะของชีตเมื่อวาง Snackbar ด้วย โดยในสถานะยุบ Snackbar จะอยู่เหนือชีตและ FAB ส่วนในสถานะขยาย Snackbar จะยึดกับด้านล่างของชีต (Ia80b5, b/187771422)
เวอร์ชัน 1.2.0-beta02
18 พฤษภาคม 2022
androidx.compose.material:material-*:1.2.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.2.0-beta02 มีคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-beta01
11 พฤษภาคม 2022
androidx.compose.material:material-*:1.2.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.2.0-beta01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- นี่คือเวอร์ชันเบต้า 1.2 รุ่นแรก
การเปลี่ยนแปลง API
- เปลี่ยนชื่อฟังก์ชันที่ประกอบกันได้
TextFieldDefaults.BorderStrokeซึ่งวาดเส้นขอบในOutlinedTextFieldเป็นTextFieldDefaults.BorderBox(I5f295)
เวอร์ชัน 1.2.0-alpha08
20 เมษายน 2022
androidx.compose.material:material-*:1.2.0-alpha08 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha08 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
PointerInputChangeเลิกใช้งานการดูบางส่วน (ลงหรือตำแหน่ง) แล้ว คุณสามารถใช้consume()เพื่อใช้การเปลี่ยนแปลงให้เสร็จสมบูรณ์ คุณใช้isConsumedเพื่อพิจารณาว่ามีบุคคลอื่นเคยใช้การเปลี่ยนแปลงนี้หรือไม่PointerInputChange::copy()จะสร้างสำเนาแบบตื้นเสมอ ซึ่งหมายความว่าระบบจะใช้สำเนาของPointerInputChangeเมื่อมีการใช้สำเนาใดสำเนาหนึ่ง หากต้องการสร้างPointerInputChangeที่ไม่มีขอบเขต ให้ใช้เครื่องมือสร้างแทน (Ie6be4, b/225669674)
เวอร์ชัน 1.2.0-alpha07
6 เมษายน 2022
androidx.compose.material:material-*:1.2.0-alpha07 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha07 มีคอมมิตต่อไปนี้
เวอร์ชัน 1.2.0-alpha06
23 มีนาคม 2022
androidx.compose.material:material-*:1.2.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha06 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- อัปเดต API ของการ์ดที่คลิกได้เพื่อให้สอดคล้องกับการเปลี่ยนแปลงใน Surface API (I56bcb)
- การอัปเดต Surface API ของ Material 2 ซึ่งเพิ่มฟังก์ชันที่โอเวอร์โหลดเพิ่มเติมสำหรับ Surface ที่เลือกได้และสลับได้ (Ifcca5)
เวอร์ชัน 1.2.0-alpha05
9 มีนาคม 2022
androidx.compose.material:material-*:1.2.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha05 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้
LazyVerticalGridและLazyHorizontalGridเสถียรแล้ว (I307c0) LazyVerticalGrid/LazyHorizontalGridและ API ที่เกี่ยวข้องทั้งหมดถูกย้ายไปไว้ในแพ็กเกจย่อย .grid โปรดอัปเดตการนำเข้าจาก androidx.compose.foundation.lazy เป็น androidx.compose.foundation.lazy.grid (I2d446, b/219942574)- เปลี่ยนกลับการเปลี่ยนแปลงก่อนหน้านี้ที่อาศัยเฉพาะ View สำหรับ
WindowInsetsControllerCompatและกำหนดให้ต้องมี Window อีกครั้ง ซึ่งจำเป็นสำหรับการจัดการแฟล็กหน้าต่างบางรายการ เลิกใช้งานViewCompat.getWindowInsetsControllerเพื่อให้ใช้WindowCompat.getInsetsControllerเพื่อให้แน่ใจว่าใช้ Window ที่ถูกต้อง (เช่น หาก View อยู่ในกล่องโต้ตอบ) (I660ae, b/219572936) - ตอนนี้ระบบจะปิด
includeFontPaddingโดยค่าเริ่มต้น เราได้includeFontPadding=falseจัดการปัญหาการตัดแล้ว และไม่ควรมีการตัดสคริปต์ที่ยาว (I31c84, b/171394808) - เพิ่ม
LazyVerticalGridAPI ใหม่เพื่อกำหนดขนาดแกนไขว้ (I17723)
เวอร์ชัน 1.2.0-alpha04
23 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.2.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha04 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
Add support for filter chips(I39a6e, b/192585545)- เพิ่ม
TextFieldDecorationBoxและOutlinedTextFieldDecorationBoxแล้ว การใช้ร่วมกับBasicTextFieldจะช่วยให้คุณสร้างช่องข้อความที่กำหนดเองตามช่องข้อความ Material Design แต่มีตัวเลือกการปรับแต่งเพิ่มเติม - มีวิธีปรับระยะห่างแนวนอนและแนวตั้งในช่องข้อความ (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
เพิ่ม
ComposableTarget,ComposableTargetMarkerและComposableOpenTargetที่ช่วยให้รายงานเวลาคอมไพล์ได้เมื่อ มีการเรียกใช้ฟังก์ชันที่ประกอบกันได้ซึ่งกำหนดเป้าหมายไปยัง Applier ที่ไม่ได้ ออกแบบมาให้ใช้ในกรณีส่วนใหญ่ ปลั๊กอินคอมไพเลอร์ Compose จะอนุมานคำอธิบายประกอบได้ ดังนั้นการใช้คำอธิบายประกอบเหล่านี้โดยตรงจึงไม่ค่อยเกิดขึ้น กรณีที่อนุมานไม่ได้ ได้แก่ การสร้างและ การใช้ Applier ที่กำหนดเอง ฟังก์ชัน Composable แบบแอบสแตรก (เช่น เมธอดอินเทอร์เฟซ) ฟิลด์ หรือตัวแปรร่วมที่เป็น Composable Lambda (ระบบจะอนุมานตัวแปรและพารามิเตอร์ในเครื่อง) หรือเมื่อใช้
ComposeNodeหรือฟังก์ชัน Composable ที่เกี่ยวข้องสำหรับตัวใช้ที่กำหนดเอง ฟังก์ชันที่ประกอบกันได้ซึ่งเรียกใช้
ComposeNodeหรือReusableComposeNodeจะต้องเพิ่ม คำอธิบายประกอบCompoableTargetสำหรับฟังก์ชันและประเภทพารามิเตอร์ Lambda ที่ประกอบกันได้ อย่างไรก็ตาม เราขอแนะนำ ให้สร้างคำอธิบายประกอบที่มีคำอธิบายประกอบเป็นComposableTargetMarkerแล้วใช้คำอธิบายประกอบที่ทำเครื่องหมาย แทนComposableTargetโดยตรง คำอธิบายประกอบที่ประกอบได้ ซึ่งทำเครื่องหมายด้วยComposableTargetMarkerจะเทียบเท่ากับComposbleTargetที่มีชื่อที่สมบูรณ์ในตัวเองของแอตทริบิวต์ คลาสเป็นพารามิเตอร์ตัวใช้ ดูตัวอย่างการใช้ComposableTargetMarkerได้ที่anroidx.compose.ui.UiComposable(I38f11)
เวอร์ชัน 1.2.0-alpha03
9 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.2.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- ตัวอย่างกลุ่มชิปที่เพิ่ม (I97080, b/192585545)
เวอร์ชัน 1.2.0-alpha02
26 มกราคม 2022
androidx.compose.material:material-*:1.2.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha02 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
NonRestartableComposableลงในเมธอดที่โอเวอร์โหลด ของเมธอดที่มีอยู่โดยไม่มีตรรกะที่ซับซ้อน ซึ่งจะช่วยลดการตรวจสอบการจดจำ (เท่ากับ) ที่คอมไพเลอร์ สร้างขึ้นสำหรับพารามิเตอร์ทั้งหมดที่ ซ้ำกันในฟังก์ชันด้านในที่เรียกใช้ (I90490) - เพิ่มการรองรับชิปการดำเนินการ (I07100, b/192585545)
เวอร์ชัน 1.2.0-alpha01
12 มกราคม 2022
androidx.compose.material:material-*:1.2.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.2.0-alpha01 มีคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependency
- ตอนนี้ขึ้นอยู่กับ Kotlin
1.6.10
การมีส่วนร่วมภายนอก
- ตอนนี้
ModalBottomSheetStateมีธงisSkipHalfExpandedแล้ว โดยจะตั้งค่าผ่านตัวสร้างหรืออัปเดตในภายหลังได้โดยตั้งค่าพร็อพเพอร์ตี้ModalBottomSheetState'sisSkipHalfExpandedเป็นtrueการอัปเดตค่าของisSkipHalfExpandedจะทําให้ชีตประกอบใหม่ (I18b86, b/186669820)
เวอร์ชัน 1.1
เวอร์ชัน 1.1.1
23 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.1.1 เปิดตัวแล้ว เวอร์ชัน 1.1.1 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerExceptionที่androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(aosp/1947059, b/206677462) - แก้ไขข้อขัดข้องที่เกิดจากเนื้อหาในคลิปบอร์ดขณะอ่านจาก คลิปบอร์ดใน Android (I06020, b/197769306)
- แก้ไข RTL ใน
LazyVerticalGrid(aosp/1931080, b/207510535)
เวอร์ชัน 1.1.0
9 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.1.0 เปิดตัวแล้ว เวอร์ชัน 1.1.0 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.0.0
- การรองรับเอฟเฟกต์การเลื่อนเกินของ Android 12 อย่างเสถียร
- การปรับปรุงการกำหนดขนาดเป้าหมายการสัมผัส
- โปรดทราบว่าใน Compose 1.0 คอมโพเนนต์ Material จะขยายพื้นที่เลย์เอาต์เพื่อให้เป็นไปตามหลักเกณฑ์ด้านการช่วยเหลือพิเศษของ Material สำหรับขนาดเป้าหมายการสัมผัส เช่น เป้าหมายการสัมผัสของปุ่มจะขยายเป็นขนาดขั้นต่ำ 48x48dp แม้ว่าคุณจะตั้งค่าขนาดของปุ่มให้เล็กกว่านี้ก็ตาม ซึ่งจะทําให้ Compose Material มีลักษณะการทํางานเหมือนกับคอมโพเนนต์ Material Design และทําให้มีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง View และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจได้ว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Material ของ Compose ระบบจะปฏิบัติตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษของเป้าหมายการสัมผัส
- การรองรับแถบนำทางด้านข้างที่เสถียร
- เปลี่ยน API แบบทดลองก่อนหน้านี้หลายรายการให้เป็น API ที่เสถียร
- การรองรับ Kotlin เวอร์ชันใหม่กว่า
เวอร์ชัน 1.1.0-rc03
26 มกราคม 2022
androidx.compose.material:material-*:1.1.0-rc03 เปิดตัวแล้ว เวอร์ชัน 1.1.0-rc03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลงพฤติกรรม
โปรดทราบว่าเมื่อใช้ Compose 1.0 คอมโพเนนต์ Material จะขยายพื้นที่เลย์เอาต์เพื่อให้เป็นไปตามขนาดเป้าหมายการสัมผัสตามหลักเกณฑ์ด้านการช่วยเหลือพิเศษของ Material เช่น เป้าหมายการสัมผัสของปุ่มจะขยายเป็นขนาดขั้นต่ำ 48x48dp แม้ว่าคุณจะตั้งค่าขนาดของปุ่มให้เล็กกว่านี้ก็ตาม ซึ่งจะทําให้ Compose Material มีลักษณะการทํางานเหมือนกับคอมโพเนนต์ Material Design และทําให้มีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง View และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจได้ว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Material ของ Compose ระบบจะปฏิบัติตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษของเป้าหมายการสัมผัส
การแก้ไขข้อบกพร่อง
- เพิ่มข้อมูลการแก้ไขข้อบกพร่องที่ดีขึ้นสำหรับเครื่องมือตรวจสอบเลย์เอาต์เมื่อตรวจสอบตัวแก้ไขเป้าหมายการสัมผัสขั้นต่ำ (aosp/1955036)
เวอร์ชัน 1.1.0-rc01
15 ธันวาคม 2021
androidx.compose.material:material-*:1.1.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขรัศมีมุมที่ใช้สำหรับ
Checkboxes (I38b03, b/175198975, b/202309440)
เวอร์ชัน 1.1.0-beta04
1 ธันวาคม 2021
androidx.compose.material:material-*:1.1.0-beta04 เปิดตัวแล้ว เวอร์ชัน 1.1.0-beta04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดตให้ใช้งานร่วมกับ Kotlin
1.6.0ได้
เวอร์ชัน 1.1.0-beta03
17 พฤศจิกายน 2021
androidx.compose.material:material-*:1.1.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.1.0-beta03 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.1.0-beta02
3 พฤศจิกายน 2021
androidx.compose.material:material-*:1.1.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.1.0-beta02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้การกระเพื่อมและข้อบ่งชี้อื่นๆ จะล่าช้าก็ต่อเมื่ออยู่ภายในคอนเทนเนอร์ Modifier.scrollable() เท่านั้น แทนที่จะล่าช้าเสมอสำหรับเหตุการณ์ "ลง" (Ibefe0, b/203141462)
เวอร์ชัน 1.1.0-beta01
27 ตุลาคม 2021
androidx.compose.material:material-*:1.1.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.1.0-beta01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้ Ripples รองรับสถานะการวางเมาส์และการโฟกัสแล้ว ดังนั้นการวางเมาส์ / การโฟกัสคอมโพเนนต์ เช่น ปุ่ม จะแสดงการซ้อนทับสถานะที่ถูกต้อง
เวอร์ชัน 1.1.0-alpha06
13 ตุลาคม 2021
androidx.compose.material:material-*:1.1.0-alpha06 เปิดตัวแล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มการโอเวอร์โหลดที่ไม่มีการระบุเด็กสำหรับเลย์เอาต์พร้อมปรับปรุงประสิทธิภาพ (Ib0d9a)
- การติดตั้งใช้งาน
ExposedDropdownMenuโดยอิงตามExposedDropdownMenuBoxที่มีTextFieldและDropdownMenuอยู่ภายใน (If60b2) - เพิ่ม
dismissOnOutsideClickลงในPopupPropertiesแทนที่dismissOnClickOutsideซึ่งเลิกใช้งานแล้ว พร็อพเพอร์ตี้ใหม่จะได้รับตำแหน่งการคลิกและขอบเขตของจุดยึด ซึ่งช่วยให้ควบคุมได้ละเอียดยิ่งขึ้นว่าจะเรียกใช้ onDismissRequest หรือไม่ เช่น อาจมีประโยชน์ในการป้องกันไม่ให้เลิกใช้การตรึงเมื่อมีการแตะที่ออบเจ็กต์ที่ตรึงupdateAndroidWindowManagerFlagsได้รับการเพิ่มลงในPopupPropertiesซึ่งให้การควบคุมระดับต่ำสำหรับ Flag ที่ป๊อปอัปส่งไปยัง WindowManager ของ Android พารามิเตอร์ของ Lambda จะเป็นค่าสถานะที่คำนวณจากค่า PopupProperties ซึ่งส่งผลให้เกิดค่าสถานะ WindowManager เช่น focusable ผลลัพธ์ของ Lambda จะเป็น Flag สุดท้ายที่จะส่งไปยัง WindowManager ของ Android โดยค่าเริ่มต้น updateAndroidWindowManagerFlags จะไม่เปลี่ยนแปลงแฟล็กที่คำนวณจากพารามิเตอร์ ควรใช้ API นี้ด้วยความระมัดระวัง เฉพาะในกรณีที่ป๊อปอัปมีข้อกำหนดด้านลักษณะการทำงานที่เฉพาะเจาะจงมาก (I6e9f9)
เวอร์ชัน 1.1.0-alpha05
29 กันยายน 2021
androidx.compose.material:material-*:1.1.0-alpha05 เปิดตัวแล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำสำหรับคอมโพเนนต์ Material ที่ไม่มีเป้าหมายการสัมผัสที่เข้าถึงได้ เนื่องจากวิธีนี้จะเพิ่มระยะห่างรอบๆ คอมโพเนนต์เพื่อให้แน่ใจว่ามีเป้าหมายการสัมผัสที่ใหญ่พอ การดำเนินการนี้อาจเปลี่ยน UI ที่มีอยู่ซึ่งถือว่าขนาดของคอมโพเนนต์เหล่านี้คือขนาดภาพ และไม่ได้คำนึงถึงขนาดเป้าหมายการสัมผัส คุณสามารถใช้
LocalMinimumTouchTargetEnforcementcomposition local เวอร์ชันทดลองเพื่อปิดใช้ลักษณะการทำงานนี้ในลำดับชั้นได้ แต่มีไว้เพื่อเป็นทางออกชั่วคราวเท่านั้นในขณะที่อัปเดต UI ที่มีอยู่ให้รองรับขนาดขั้นต่ำใหม่ (I9b966, b/149691127, b/171509422) - เพิ่มอินเทอร์เฟซ TextFieldColorsWithIcons เวอร์ชันทดลอง ซึ่งขยาย TextFieldColors เพื่อให้ InteractionSource แก่ leadingColor และ trailingColor ซึ่งช่วยให้แก้ไขลักษณะของ TextField ตามสถานะโฟกัสได้ (I66923, b/198402662)
เวอร์ชัน 1.1.0-alpha04
15 กันยายน 2021
androidx.compose.material:material-*:1.1.0-alpha04 เปิดตัวแล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เลิกใช้งาน
performGestureและGestureScopeซึ่งถูกแทนที่ด้วยperformTouchInputและTouchInjectionScope(Ia5f3f, b/190493367) - เพิ่ม
touchBoundsInRootลงในSemanticsNodeซึ่ง มีขนาดเป้าหมายการสัมผัสขั้นต่ำเพื่อให้ผู้พัฒนา มั่นใจได้ว่าเป้าหมายการสัมผัสเป็นไปตามข้อกำหนดขั้นต่ำด้านการช่วยเหลือพิเศษ (I2e14b, b/197751214)
การแก้ไขข้อบกพร่อง
- อนุญาตให้คลิปขยายขอบเขตเป้าหมายการสัมผัสเกินกว่า ขอบเขตคลิปเพื่อวัตถุประสงค์ของเป้าหมายการสัมผัสขั้นต่ำ (I43e10, b/171509422)
- อัปเดต
Dividercomposable เพื่อ ใช้Dp.Hairlineสำหรับพารามิเตอร์ความหนา เพื่อรองรับการวาดเส้นแบ่ง 1 พิกเซล โดยไม่คำนึงถึงความหนาแน่นของจอแสดงผล (I16ffb, b/196840810)
เวอร์ชัน 1.1.0-alpha03
1 กันยายน 2021
androidx.compose.material:material-*:1.1.0-alpha03 เปิดตัวแล้ว เวอร์ชัน 1.1.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดต Compose
1.1.0-alpha03ให้ขึ้นอยู่กับ Kotlin1.5.30(I74545)
การเปลี่ยนแปลง API
- เพิ่มวิธีการทดสอบเพื่อรับขอบเขตที่ตัดแล้ว (I6b28e)
- เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำลงใน ViewConfiguration เพื่อใช้ในอินพุตเชิงความหมายและอินพุตของเคอร์เซอร์เพื่อให้มั่นใจว่ามีการช่วยเหลือพิเศษ (Ie861c)
เวอร์ชัน 1.1.0-alpha02
18 สิงหาคม 2021
androidx.compose.material:material-*:1.1.0-alpha02 เปิดตัวแล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้
การมีส่วนร่วมภายนอก
- แก้ไขลักษณะการทำงานของ SwipeableState ในกรณีที่ออฟเซ็ตการปัดอยู่ภายในข้อผิดพลาดในการปัดของจุดยึด (I03d39, b/191993377)
เวอร์ชัน 1.1.0-alpha01
4 สิงหาคม 2021
androidx.compose.material:material-*:1.1.0-alpha01 เปิดตัวแล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- อัปเดตเมธอด
DrawScope#drawImageที่ ใช้สี่เหลี่ยมผืนผ้าต้นทางและปลายทาง เพื่อใช้พารามิเตอร์ FilterQuality ที่ไม่บังคับ ซึ่งมีประโยชน์สำหรับพิกเซลอาร์ตที่ต้องการให้เป็นพิกเซลเมื่อขยายขนาดสำหรับอาร์ตเวิร์กแบบพิกเซล อัปเดต BitmapPainter + Image composable เพื่อใช้พารามิเตอร์ FilterQuality ที่ไม่บังคับด้วย (Ie4fb0, b/180311607) - เปลี่ยนชื่อ BadgeBox เป็น BadgedBox และเปลี่ยนพารามิเตอร์เพื่อยอมรับ Badge ที่ใช้ร่วมกันได้ เพิ่มคอมโพเนนต์ป้ายซึ่งเป็นเนื้อหาป้ายทั่วไปสำหรับ BadgedBox (I639c6)
- เพิ่มคอมโพเนนต์ NavigationRail ดูข้อมูลการใช้งานได้ในเอกสารประกอบและตัวอย่าง (I8de77)
การแก้ไขข้อบกพร่อง
- เพิ่มตัวอย่าง NavigationRail ที่จัดแนวไว้ด้านล่างและเดโมแอปแคตตาล็อก (I3cffc)
- ตอนนี้กล่องโต้ตอบจะทําตามลักษณะการปรับขนาดของแพลตฟอร์ม ตั้งค่า usePlatformDefaultWidth เป็น false เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
- เพิ่มการสาธิตแถบนำทางลงในแอปแคตตาล็อก (I04960)
- เพิ่มการสาธิตป้ายลงในแอปแคตตาล็อก (If285d)
รุ่น 1.0
เวอร์ชัน 1.0.5
3 พฤศจิกายน 2021
androidx.compose.material:material-*:1.0.5 เปิดตัวแล้ว เวอร์ชัน 1.0.5 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องในการติดตามอินสแตนซ์ derivedStateOf (aosp/1792247)
เวอร์ชัน 1.0.4
13 ตุลาคม 2021
androidx.compose.material:material-*:1.0.4 เปิดตัวแล้ว เวอร์ชัน 1.0.4 มีคอมมิตต่อไปนี้
การอัปเดตทรัพยากร Dependency
- อัปเดตให้ขึ้นอยู่กับ Kotlin
1.5.31
เวอร์ชัน 1.0.3
29 กันยายน 2021
androidx.compose.material:material-*:1.0.3 เปิดตัวแล้ว เวอร์ชัน 1.0.3 มีคอมมิตต่อไปนี้
การอัปเดตทรัพยากร Dependency
- อัปเดตให้ขึ้นอยู่กับ Kotlin
1.5.30
เวอร์ชัน 1.0.2
1 กันยายน 2021
androidx.compose.material:material-*:1.0.2 เปิดตัวแล้ว เวอร์ชัน 1.0.2 มีคอมมิตต่อไปนี้
อัปเดตเพื่อรองรับการเปิดตัว Compose 1.0.2 Compose 1.0.2 ยังคงใช้ได้กับ Kotlin 1.5.21
เวอร์ชัน 1.0.1
4 สิงหาคม 2021
androidx.compose.material:material-*:1.0.1 เปิดตัวแล้ว เวอร์ชัน 1.0.1 มีคอมมิตต่อไปนี้
การอัปเดตทรัพยากร Dependency
- อัปเดตให้ขึ้นอยู่กับ Kotlin
1.5.21
เวอร์ชัน 1.0.0
28 กรกฎาคม 2021
androidx.compose.material:material-*:1.0.0 เปิดตัวแล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของเวอร์ชัน 1.0.0
นี่คือ Compose เวอร์ชันเสถียรเวอร์ชันแรก โปรดดูรายละเอียดเพิ่มเติมในบล็อกการเปิดตัว Compose อย่างเป็นทางการ
ปัญหาที่ทราบ
หากคุณใช้ Android Studio Bumblebee Canary 4 หรือ AGP
7.1.0-alpha04/7.1.0-alpha05คุณอาจพบข้อขัดข้องต่อไปนี้java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"หากต้องการแก้ไข ให้เพิ่ม minSdkVersion เป็น 24 ขึ้นไปชั่วคราวในไฟล์
build.gradleปัญหานี้จะได้รับการแก้ไขใน Android Studio Bumblebee และ AGP7.1เวอร์ชันถัดไป (b/194289155)
เวอร์ชัน 1.0.0-rc02
14 กรกฎาคม 2021
androidx.compose.material:material-*:1.0.0-rc02 เปิดตัวแล้ว เวอร์ชัน 1.0.0-rc02 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้กล่องโต้ตอบจะทําตามลักษณะการปรับขนาดของแพลตฟอร์ม ตั้งค่า
usePlatformDefaultWidthเป็น "เท็จ" เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
เวอร์ชัน 1.0.0-rc01
1 กรกฎาคม 2021
androidx.compose.material:material-*:1.0.0-rc01 เปิดตัวแล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มคอมโพเนนต์
BadgeBoxดูข้อมูลการใช้งานในเอกสารและตัวอย่าง (I5e284) useDefaultMaxWidthในPopupPropertiesเปลี่ยนชื่อเป็นusePlatformDefaultWidthแล้ว (I05710)- ตอนนี้กล่องโต้ตอบสามารถใช้ความกว้างของทั้งหน้าจอได้แล้ว (I83929, b/190810877)
- เพิ่มการติดตั้งใช้งานแถบเลื่อนช่วงทดลอง (I2f4b3)
การแก้ไขข้อบกพร่อง
- เพื่อให้สอดคล้องกับข้อกำหนดของ Material Design, OutlinedTextField ที่มีอินพุตที่ไม่ถูกต้องจึงหยุดใช้สีข้อผิดพลาดสำหรับป้ายกำกับเมื่อใช้ป้ายกำกับเป็นตัวยึดตำแหน่ง กรณีหลังจะเป็นจริงเมื่อไม่มีข้อความที่ป้อนในช่องข้อความและช่องข้อความไม่ได้อยู่ที่โฟกัส การเปลี่ยนแปลงดังกล่าวทำให้ความหมายของพารามิเตอร์
error:Booleanในฟังก์ชันTextFieldColors.labelColor()เปลี่ยนไปด้วย โดยตอนนี้ฟังก์ชันจะแสดงผลfalseแม้ว่าอินพุตจะไม่ถูกต้องหากมีการใช้ป้ายกำกับเป็นตัวยึดตำแหน่ง (I45f78)
เวอร์ชัน 1.0.0-beta09
16 มิถุนายน 2021
androidx.compose.material:material-*:1.0.0-beta09 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta09 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มพารามิเตอร์ Shape ลงใน OutlinedTextField เพื่อให้ปรับแต่งรูปร่างของเส้นขอบได้ (I8f39e, b/181322957)
- เปลี่ยน TextOverflow เป็นคลาสอินไลน์ (I433af)
การแก้ไขข้อบกพร่อง
- Scrim ใน BottomDrawer, BackdropScaffold และ ModalBottomSheetLayout จะหายไป จากนั้นจะมีการส่ง Color.Unspecified (I2d899, b/182063309)
กฎโปรไฟล์ที่เพิ่ม
การเปิดตัวนี้จะเพิ่มกฎโปรไฟล์ลงในโมดูลการเขียนต่อไปนี้ (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
กฎของโปรไฟล์คืออะไร
กฎโปรไฟล์สำหรับไลบรารีจะระบุไว้ในไฟล์ข้อความ
baseline-prof.txtซึ่งอยู่ในไดเรกทอรีsrc/mainหรือไดเรกทอรีที่เทียบเท่า ไฟล์จะระบุกฎต่อบรรทัด โดยในกรณีนี้ กฎคือรูปแบบสำหรับการจับคู่กับเมธอดหรือคลาสในไลบรารี ไวยากรณ์ของกฎเหล่านี้เป็นซูเปอร์เซ็ตของรูปแบบโปรไฟล์ ART ที่มนุษย์อ่านได้ ซึ่งใช้เมื่อใช้adb shell profman --dump-classes-and-methods ...กฎเหล่านี้มี 2 รูปแบบเพื่อกำหนดเป้าหมายไปยังเมธอดหรือคลาสกฎของเมธอดจะมีรูปแบบดังนี้
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>และกฎของชั้นเรียนจะมีรูปแบบดังนี้
<CLASS_DESCRIPTOR>โดย
<FLAGS>คืออักขระH,SและPอย่างน้อย 1 ตัวเพื่อระบุว่าควรติดธงให้เมธอดนี้เป็น "Hot", "Startup" หรือ "Post Startup" หรือไม่<CLASS_DESCRIPTOR>คือตัวอธิบายสำหรับคลาสที่เมธอดเป้าหมายเป็นของ เช่น คลาสandroidx.compose.runtime.SlotTableจะมีตัวอธิบายเป็นLandroidx/compose/runtime/SlotTable;<METHOD_SIGNATURE>คือลายเซ็นของเมธอด ซึ่งรวมถึงชื่อ ประเภทพารามิเตอร์ และประเภทการคืนค่าของเมธอด เช่น เมธอดfun isPlaced(): BooleanในLayoutNodeมีลายเซ็นisPlaced()Zรูปแบบเหล่านี้มีไวลด์การ์ด (
***และ?) ได้เพื่อให้กฎเดียวครอบคลุมหลายวิธีหรือหลายคลาส
กฎมีหน้าที่อะไร
เมธอดที่มีแฟล็ก
Hแสดงว่าเมธอดนี้เป็นเมธอด "ยอดนิยม" และควรคอมไพล์ล่วงหน้าเมธอดที่มีแฟล็ก
Sแสดงว่าเป็นเมธอดที่เรียกใช้เมื่อเริ่มต้น และควรคอมไพล์ล่วงหน้าเพื่อหลีกเลี่ยงค่าใช้จ่ายในการคอมไพล์และตีความเมธอดเมื่อเริ่มต้นเมธอดที่มีแฟล็ก
Pแสดงว่าเป็นเมธอดที่เรียกใช้หลังจากเริ่มต้นคลาสที่มีอยู่ในไฟล์นี้บ่งชี้ว่ามีการใช้คลาสในระหว่างการเริ่มต้นระบบ และควรจัดสรรล่วงหน้าในฮีปเพื่อหลีกเลี่ยงค่าใช้จ่ายในการโหลดคลาส
ระบบนี้ทำงานอย่างไร
- ห้องสมุดสามารถกำหนดกฎเหล่านี้ซึ่งจะรวมอยู่ในอาร์ติแฟกต์ AAR เมื่อสร้าง APK ที่มีอาร์ติแฟกต์เหล่านี้ ระบบจะผสานกฎเหล่านี้เข้าด้วยกันและใช้กฎที่ผสานแล้วเพื่อสร้างโปรไฟล์ ART แบบไบนารีขนาดกะทัดรัดที่เฉพาะเจาะจงกับ APK จากนั้น ART จะใช้ประโยชน์จากโปรไฟล์นี้เมื่อติดตั้ง APK ในอุปกรณ์เพื่อคอมไพล์ล่วงหน้าซึ่งเป็นชุดย่อยที่เฉพาะเจาะจงของแอปพลิเคชันเพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน โดยเฉพาะอย่างยิ่งการเรียกใช้ครั้งแรก โปรดทราบว่าการดำเนินการนี้จะไม่มีผลกับแอปพลิเคชันที่แก้ไขข้อบกพร่องได้
เวอร์ชัน 1.0.0-beta08
2 มิถุนายน 2021
androidx.compose.material:material-*:1.0.0-beta08 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta08 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
การเปลี่ยนแปลง API ที่ทำให้เกิดการหยุดทำงาน
- การเปลี่ยนแปลงที่ทำให้เกิดข้อผิดพลาด: ตอนนี้การ์ดจะใช้การคลิก ทำให้การคลิกที่เพิ่มผ่าน
Card(Modifier.clickable)ไม่มีการดำเนินการใดๆ โปรดใช้การโอเวอร์โหลดการทดลองใหม่ของการ์ดที่ยอมรับ onClick (Ia8744, b/183775620)- เพิ่มการ์ดใหม่ที่โอเวอร์โหลดซึ่งจัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ ตัวบ่งชี้ แหล่งที่มาของการโต้ตอบ เปิด/ปิดใช้ เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ
Modifier.clickableเนื่องจากในกรณีดังกล่าว การ์ดจะไม่ตัดการระบุการกระเพื่อม
- เพิ่มการ์ดใหม่ที่โอเวอร์โหลดซึ่งจัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ ตัวบ่งชี้ แหล่งที่มาของการโต้ตอบ เปิด/ปิดใช้ เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ
- การเปลี่ยนแปลงพฤติกรรม: ตอนนี้ Surface จะใช้การคลิก ทำให้การคลิกที่เพิ่มผ่าน
Surface(Modifier.clickable)ไม่มีการดำเนินการใดๆ โปรดใช้การโอเวอร์โหลดทดลองใหม่ของ Surface ที่ยอมรับ onClick (I73e6c, b/183775620)- เพิ่มการโอเวอร์โหลด Surface ใหม่ที่จัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ การระบุ, interactionSource, เปิด/ปิด ไม่สามารถใช้ Surface ปกติที่คลิกไม่ได้กับ
Modifier.clickableเนื่องจาก Surface จะไม่ตัดการระบุการกระเพื่อมในกรณีดังกล่าว
- เพิ่มการโอเวอร์โหลด Surface ใหม่ที่จัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ การระบุ, interactionSource, เปิด/ปิด ไม่สามารถใช้ Surface ปกติที่คลิกไม่ได้กับ
การเปลี่ยนแปลง API
FabPositionได้รับการแปลงเป็นคลาสอินไลน์จาก enum เพื่อรองรับการขยายในอนาคต (I030fb)- ปรับโครงสร้างการใช้งาน enum เป็นคลาสแบบอินไลน์เพื่อหลีกเลี่ยง ปัญหาเกี่ยวกับคำสั่ง when แบบครอบคลุมเมื่อ มีการเพิ่มค่า enum ใหม่ (I2b5eb)
- เพิ่มการหมดเวลาแตะไปยังองค์ประกอบที่คลิกได้ / สลับได้เพื่อป้องกันไม่ให้แสดงเอฟเฟกต์ระลอกระหว่างการเลื่อน / ลาก (Ia2704, b/168524931)
- พร็อพเพอร์ตี้ ContentDescription และ Text semantics จะไม่ใช่ค่าเดียวอีกต่อไป แต่จะเป็นรายการ ซึ่งจะช่วยให้ผสานรวมได้โดยไม่ต้องต่อกัน นอกจากนี้ เรายังได้จัดเตรียม API การทดสอบที่ดีขึ้นเพื่อใช้ประโยชน์จากการเปลี่ยนแปลงเหล่านี้ (Ica6bf, b/184825850)
Modifier.focusModifier()เลิกใช้งานแล้วและแทนที่ด้วยModifier.focusTarget()(I6c860)- แทนที่ enum
FocusStateด้วยอินเทอร์เฟซFocusState(Iccc1a, b/187055290) - นำ
LocalRippleNativeRenderingออกแล้วเนื่องจากการใช้งาน Ripple ที่มี View เป็นแบ็กเอนด์เสถียรแล้ว (I7fab3, b/188569367)
การแก้ไขข้อบกพร่อง
Modifier.onGloballyPositioned()เปลี่ยนเป็นรายงานพิกัดของตัวแก้ไขนี้ในเชนตัวแก้ไข ไม่ใช่พิกัดเลย์เอาต์หลังจากใช้ตัวแก้ไขทั้งหมด ซึ่งหมายความว่าตอนนี้ลำดับของตัวแก้ไขจะส่งผลต่อพิกัดที่จะรายงาน (Ieb67d, b/177926591)- เพิ่มไฟล์ README สำหรับแคตตาล็อก Compose Material ที่มีอยู่ (If9191)
เวอร์ชัน 1.0.0-beta07
18 พฤษภาคม 2021
androidx.compose.material:material-*:1.0.0-beta07 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- คุณไม่จำเป็นต้องใช้วิธีการขยายสำหรับการรองรับเส้นทาง ใน Navigation Compose อีกต่อไป (I22beb, b/172823546)
เวอร์ชัน 1.0.0-beta06
5 พฤษภาคม 2021
androidx.compose.material:material-*:1.0.0-beta06 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราได้ย้ายข้อมูล Ripple ไปใช้
RippleDrawableภายในอุปกรณ์ Android แล้ว ซึ่งหมายความว่าภาพเคลื่อนไหวแบบระลอกจะเกิดขึ้นใน RenderThread และจะราบรื่นแม้ว่าเธรด UI จะทำงานหนัก เช่น เมื่อไปยังส่วนต่างๆ ระหว่างหน้าจอ การเปลี่ยนแปลงนี้จะไม่เปลี่ยนพื้นผิว API ของ Ripple แต่อาจมีการเปลี่ยนแปลงลักษณะการทำงานอันเป็นผลมาจากการเปลี่ยนแปลงนี้ เราได้เพิ่มLocalRippleNativeRenderingเพื่อช่วยในการย้ายข้อมูล โดยระบุค่าfalseให้กับ CompositionLocal นี้เพื่อกลับไปใช้การติดตั้งใช้งาน Ripple ก่อนหน้าภายใน CompositionLocalProvider API นี้มีผลชั่วคราวและจะถูกนำออกในอนาคต ดังนั้นหากพบปัญหาที่ทำให้คุณต้องใช้ API นี้ โปรดรายงานข้อบกพร่อง (I902f8, b/168777351, b/183019123) - เพิ่ม API การช่วยเหลือพิเศษ CollectionInfo และ CollectionItemInfo ที่อนุญาตให้ทำเครื่องหมายคอลเล็กชันและรายการของคอลเล็กชันสำหรับบริการการช่วยเหลือพิเศษ (Id54ef, b/180479017)
- เพิ่ม API การช่วยเหลือพิเศษ
errorที่อนุญาตให้ทำเครื่องหมายโหนดที่มีอินพุตที่ไม่ถูกต้อง (I12997, b/180584804, b/182142737)
การแก้ไขข้อบกพร่อง
- อัปเดตการติดตั้งใช้งานแทรกแคตตาล็อก Compose Material จาก https://github.com/google/accompanist/pull/365 (I25dc3)
- แถวและคอลัมน์ย่อยที่มี weight(fill = false) จะไม่ทำให้องค์ประกอบระดับบนสุดเติมพื้นที่แกนหลักที่ใช้ได้ทั้งหมดอีกต่อไป (Ied94d, b/186012444, b/184355105)
เวอร์ชัน 1.0.0-beta05
21 เมษายน 2021
androidx.compose.material:material-*:1.0.0-beta05 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta05 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มรูปภาพไทล์ของคอมโพเนนต์ ตัวเลือกธีม และ URL ของเมนูที่เฉพาะเจาะจงมากขึ้นไปยังแคตตาล็อก Material ของ Compose ที่มีอยู่ (I9b58e)
เวอร์ชัน 1.0.0-beta04
7 เมษายน 2021
androidx.compose.material:material-*:1.0.0-beta04 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การเปลี่ยนแปลง API:
DrawerStatestate ไม่ได้ขยาย SwipeableState ที่เป็นเวอร์ชันทดลองอีกต่อไป- การเปลี่ยนแปลง API: ตอนนี้
BottomDrawerStateมีสถานะเป็นเวอร์ชันทดลองเพื่อให้ตรงกับคอมโพเนนต์ BottomDrawer ที่เป็นเวอร์ชันทดลองอยู่แล้ว (I81114, b/181656094)
- การเปลี่ยนแปลง API: ตอนนี้
- เปลี่ยนชื่อ
hideSoftwareKeyboardและshowSoftwareKeyboardในSoftwareKeyboardControllerเป็นhide()และshow()ตามลำดับ- ระบุอินเทอร์เฟซ CompositionLocal แบบเต็มสำหรับ LocalSoftwareKeyboardController เพื่อให้ตั้งค่าได้ (มีประโยชน์อย่างยิ่ง ในการทดสอบ) (I579a6)
- เพิ่ม API การช่วยเหลือพิเศษ LiveRegion หากมีการทำเครื่องหมายโหนดเป็นขอบเขตแบบสด บริการการช่วยเหลือพิเศษ จะแจ้งให้ผู้ใช้ทราบโดยอัตโนมัติเกี่ยวกับการเปลี่ยนแปลง (Idcf6f, b/172590946)
การแก้ไขข้อบกพร่อง
- เพิ่มการติดตั้งใช้งานแคตตาล็อก Compose Material ลงในโมดูลที่มีอยู่ สิ่งที่ยังไม่มีในตอนนี้คือรูปภาพไทล์ของคอมโพเนนต์ ตัวเลือกธีม (จะเพิ่มในการเปลี่ยนแปลงติดตามผล) (Ie7a94)
เวอร์ชัน 1.0.0-beta03
24 มีนาคม 2021
androidx.compose.material:material-*:1.0.0-beta03 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
DefaultMonotonicFrameClockเลิกใช้งานแล้ว ตอนนี้การเรียกใช้withFrameNanosหรือRecomposer.runRecomposeAndApplyChangesที่ไม่มีMonotonicFrameClockจะส่งIllegalStateException(I4eb0d)- เพิ่ม API
LeadingIconTabใหม่เพื่อรองรับการแสดงไอคอนและข้อความในแท็บ (I23267)
การมีส่วนร่วมภายนอก
- [โดย Jossi Wolf]
BottomDrawerตอนนี้จะรวมเนื้อหาของช่องลิ้นชักBottomDrawerจะไม่แสดงIllegalStateExceptionเมื่อองค์ประกอบหลักมีความสูงไม่จำกัด ตอนนี้ลิ้นชักด้านล่างจะเปิดขึ้นในสถานะขยายหากมีขนาดเล็กกว่า 50% ของลิ้นชักหลัก มีการอัปเดตเอกสารเกี่ยวกับBottomDrawerStateและModalBottomSheetLayoutStateBottomDrawerState#isOpenจะแสดงผลเป็น "จริง" ในตอนนี้หากอยู่ในสถานะเปิดหรือขยาย (I87241)
เวอร์ชัน 1.0.0-beta02
10 มีนาคม 2021
androidx.compose.material:material-*:1.0.0-beta02 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
LocalSoftwareKeyboardControllerComposition Local API ใหม่เพื่อแทนที่อินเทอร์เฟซSoftwareKeyboardControllerก่อนหน้าใน TextField (I5951e, b/168778053)
การแก้ไขข้อบกพร่อง
- บังคับใช้ข้อจำกัดในการใช้งาน API เวอร์ชันทดลองแบบสาธารณะ (I6aa29, b/174531520)
- เปลี่ยนการจัดแนวแนวนอนเริ่มต้นสำหรับ TopAppBar และ BottomAppBar เป็น "เริ่ม" ให้สอดคล้องกับแถว (Ib2dc7)
- เพิ่มโมดูลใหม่และ UI ตัวยึดตำแหน่งสำหรับแคตตาล็อก Material ของ Compose ซึ่งปัจจุบันซ้อนอยู่ในเดโมการทดสอบการผสานรวมที่มีอยู่ (Idfcb3)
androidx.compose.ui:uiไม่ได้ขึ้นอยู่กับ AppCompat หรือ Fragment อีกต่อไป หากคุณใช้ ComposeView ในแอปพลิเคชัน และใช้ Fragment และ/หรือ AppCompat โปรดตรวจสอบว่าคุณใช้ AppCompat 1.3 ขึ้นไป / Fragment 1.3 ขึ้นไป เนื่องจากต้องใช้เวอร์ชันเหล่านี้เพื่อตั้งค่าวงจรและเจ้าของสถานะที่บันทึกไว้ที่จำเป็นสำหรับ ComposeView อย่างถูกต้อง (I1d6fa, b/161814404)
เวอร์ชัน 1.0.0-beta01
24 กุมภาพันธ์ 2021
androidx.compose.material:material-*:1.0.0-beta01 เปิดตัวแล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้
นี่คือ Compose 1.0.0 เวอร์ชันเบต้าที่เปิดตัวเป็นครั้งแรก
การเปลี่ยนแปลง API
- เปลี่ยนชื่อตัวปรับขนาดแล้ว เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize เราได้เปลี่ยนชื่อ Modifier.preferredWidth/preferredHeight/preferredSize เป็น width/height/size (I5b414)
- ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยาย ใน ImageBitmap และ ImageVector ตามลำดับ ฟังก์ชัน load{Image,Vector,Font}Resource ถูกลบออกแล้ว (I89130)
- ตัวปรับแต่งสำหรับการปรับขนาดให้ตรงกับขนาด Intrinsics จะไม่ใช่ฟีเจอร์ทดลองอีกต่อไป (I15744)
- นำการยืนยัน dp ออกแล้ว (I798d2)
- นำการเรียกกลับ SoftwareKeyboardController ออกจากฟิลด์ข้อความทั้งหมด เพื่อแทนที่ด้วย API ใหม่ในเร็วๆ นี้ (Iae869, b/168778053)
- ตอนนี้แลมบ์ดาการดำเนินการของสวิตช์ ช่องทำเครื่องหมาย และปุ่มตัวเลือกเป็นค่า Null ได้แล้ว อัปเดตตัวอย่างช่องทําเครื่องหมายในแถวที่คลิกได้เพื่อใช้ฟีเจอร์นี้ (If601b, b/171819073)
InteractionStateถูกแทนที่ด้วย[Mutable]InteractionSource- แล้ว
- อินเทอร์เฟซมีหน้าที่ในการปล่อย / รวบรวมเหตุการณ์การโต้ตอบ
- ให้ใช้
interactionSource = remember { MutableInteractionSource() }แทนการส่งinteractionState = remember { InteractionState() }ไปยังคอมโพเนนต์ เช่นButtonและModifier.clickable() - แทนที่จะใช้
Interaction.Pressed in interactionStateคุณควรใช้ฟังก์ชันส่วนขยายใน InteractionSource แทน เช่น InteractionSource.collectIsPressedAsState() - สำหรับกรณีการใช้งานที่ซับซ้อน คุณสามารถใช้ InteractionSource.interactions เพื่อสังเกตสตรีมของการโต้ตอบ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบและตัวอย่างของ InteractionSource
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- เพิ่มอินเทอร์เฟซ AccessibilityMananger และ LocalAccessibilityMananger ใน CompositionLocals (I53520)
- นำเมธอด LayoutCoordinates ที่เลิกใช้งานแล้วออก ให้ใช้ฟังก์ชันแทนพร็อพเพอร์ตี้สำหรับ positionInParent และ boundsInParent (I580ed, b/169874631, b/175142755)
- ตอนนี้แถบเลื่อนรองรับสถานะเปิด/ปิดแล้ว (I6d56b, b/179793072)
- สร้าง TextInputSession ใหม่สำหรับเซสชันอินพุตจากคอมโพเนนต์ข้อความระดับต่ำ เช่น CoreTextField (I8817f, b/177662148)
- นำ AnimationEndReason.Interrupted ออกแล้ว CancellationException จะเกิดขึ้นหากมีการขัดจังหวะภาพเคลื่อนไหว (I2cbbc, b/179695417)
- นำ
@ExperimentalRippleApiออกและเปลี่ยนRippleAlphaให้เป็นคลาสที่มีพร็อพเพอร์ตี้แทนที่จะเป็นอินเทอร์เฟซ (I6df7c) - เพิ่มอินเทอร์เฟซ TextFieldColors เพื่อแสดงสีต่างๆ ที่ใช้ใน TextField และ OutlinedTextField ในสถานะต่างๆ สำหรับการติดตั้งใช้งานเริ่มต้น โปรดดู TextFieldDefaults.textFieldColors และ TextFieldDefaults.outlinedTextFieldColors
- เปลี่ยนชื่อพารามิเตอร์ isErrorValue ภายใน TextField และ OutlinedTextField เป็น isError (I831f9, b/171305338, b/168004067)
- เพิ่มตัวแก้ไข selectionGroup ที่อนุญาตให้ทำเครื่องหมายคอลเล็กชันของแท็บหรือ RadioButton เพื่อวัตถุประสงค์ในการช่วยเหลือพิเศษ (Ie5c29)
เพิ่ม LazyListState.animateScrollToItem
เมธอดนี้จะเลื่อนรายการในลิสต์อย่างราบรื่นไปยังรายการที่เฉพาะเจาะจง (I4bfd7)
ScrollableState.smoothScrollBy()เปลี่ยนชื่อเป็นanimateScrollBy()LazyListState.snapToItemIndex()เปลี่ยนชื่อเป็นscrollToItem()ScrollState.smoothScrollTo()เปลี่ยนชื่อเป็นanimateScrollTo()(I35ded)ตอนนี้ Composable ที่ทำเครื่องหมายด้วย
@ReadOnlyComposableจะได้รับการตรวจสอบที่เวลาคอมไพล์เพื่อให้แน่ใจว่า Composable เหล่านั้นจะเรียกใช้เฉพาะ Composable อื่นๆ ที่ทำเครื่องหมายด้วย@ReadOnlyComposablesเท่านั้น (I58961)นำ TargetAnimation API ออกแล้ว (If47d1, b/177457083)
ตอนนี้ตำแหน่งการเลื่อนใน Modifier.verticalScroll()/horizontalScroll() จะแสดงด้วย Ints (I81298)
เปลี่ยนแพ็กเกจของเมธอด smoothScrollBy และ scrollBy เป็น
androidx.compose.foundation.gestures.*(I3f7c1, b/175294473)เราได้เปลี่ยนชื่อ FlingConfig เป็น FlingBehavior แล้ว ซึ่งตอนนี้จะช่วยให้ปรับแต่งภาพเคลื่อนไหวระงับได้แทนที่จะใช้ Decays ที่กำหนดไว้ล่วงหน้า (I02b86, b/175294473)
เปลี่ยนชื่อตัวปรับขนาดแล้ว เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize เราได้เปลี่ยนชื่อ Modifier.preferredWidth/preferredHeight/preferredSize เป็น width/height/size (I5b414)
เปลี่ยนชื่อ defaultMinSizeConstraints เป็น defaultMinSize (I4eaae)
ย้ายการปฐมนิเทศไปไว้ในแพ็กเกจพื้นฐานแล้ว VelocirtTracker ย้ายจาก ui.gesture ไปยัง ui.input.pointer (Iff4a8, b/175294473)
ตอนนี้ drawerState.open() และ drawerState.close() เป็นฟังก์ชันที่ระงับแล้ว ใช้ rememberCoroutineScope() เพื่อรับขอบเขตของการจัดองค์ประกอบเพื่อเรียกใช้ (I16f60, b/175294473)
เปลี่ยนชื่อ Providers เป็น CompositionLocalProvider แล้ว
- ตัวสร้าง Composition ไม่รับพารามิเตอร์คีย์อีกต่อไป และเลิกใช้งานแล้ว
- currentCompositeKeyHash ได้เปลี่ยนเป็นพร็อพเพอร์ตี้ระดับบนสุดที่ประกอบกันได้แทนที่จะเป็นฟังก์ชันระดับบนสุดที่ประกอบกันได้
- CompositionData และ CompositionGroup ได้รับการย้ายไปยังเนมสเปซ androidx.compose.runtime.tooling แล้ว
- เราได้เปลี่ยน ComposableLambda ให้เป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
- เราได้เปลี่ยน ComposableLambdaN ให้เป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เป็นรูปธรรม และไม่มีพารามิเตอร์ประเภทอีกต่อไป
- ฟังก์ชัน snapshotFlow ย้ายไปที่เนมสเปซ androidx.compose.runtime แล้ว
- วิธีการผสานของ SnapshotMutationPolicy ไม่ใช่เวอร์ชันทดลองอีกต่อไป
- เราได้นำ
@TestOnlyฟังก์ชัน clearRoots ระดับบนสุดออกแล้ว ไม่จำเป็นต้องดำเนินการอีกต่อไป - ระบบได้นำฟังก์ชัน keySourceInfoOf และ resetSourceInfo ออกแล้ว ไม่จำเป็นอีกต่อไป
- ระบบได้นำ Composer.collectKeySourceInformation ออกแล้ว ไม่จำเป็นต้องดำเนินการอีกต่อไป
- ระบบได้นำเมธอด isJoinedKey, joinedKeyLeft และ joinedKeyRight ออกแล้ว ไม่จำเป็นอีกต่อไป
- เราได้ย้ายและจัดระเบียบ API ระดับบนสุดต่างๆ ลงในไฟล์ต่างๆ เนื่องจากความหมายของคลาสไฟล์ของ Kotlin การดำเนินการนี้จะทำให้ความเข้ากันได้แบบไบนารีใช้งานไม่ได้ แต่ความเข้ากันได้ของแหล่งที่มาจะยังคงใช้งานได้ ดังนั้นผู้ใช้ส่วนใหญ่จึงไม่น่าจะพบปัญหา
- (I99b7d, b/177245490)
เราได้ปรับปรุง Modifier.scrollable ใหม่แล้ว ตอนนี้จะใช้อินเทอร์เฟซที่เลื่อนได้แทนคลาส ScrollableController (I4f5a5, b/174485541, b/175294473)
ตอนนี้ Modifier.draggable รับ DraggableState แทนที่จะเป็น Lambda แบบง่ายแล้ว คุณสามารถสร้างสถานะผ่าน
rememberDraggableState { delta -> }เพื่อให้ได้ลักษณะการทำงานแบบเดิม (Ica70f, b/175294473)ตอนนี้ ZoomableController.smoothScaleBy และ ZoomableController.stopAnimation เป็นฟังก์ชันระงับแล้ว (I7f970, b/177457083)
ลบ API บางรายการที่เลิกใช้งานไปก่อนหน้านี้ (Ice5da, b/178633932)
ทำการเปลี่ยนแปลง API สื่อการเรียนการสอนต่อไปนี้
- เพิ่มพารามิเตอร์ contentPadding ลงใน Top/BottomAppBar เพื่อให้ปรับแต่งระยะเว้นเริ่มต้นได้
- จัดเรียงพารามิเตอร์ใหม่ใน BackdropScaffold เพื่อให้เป็นไปตามหลักเกณฑ์ API สำหรับพารามิเตอร์ที่จำเป็นซึ่งอยู่ก่อนพารามิเตอร์ที่ไม่บังคับ
- ย้ายพารามิเตอร์
iconใน BottomNavigationItem ไปไว้หลังselectedและonClick - เปลี่ยนชื่อพารามิเตอร์
alwaysShowLabelsใน BottomNavigationItem เป็นalwaysShowLabel - เปลี่ยนชื่อพารามิเตอร์
bodyContentในคอมโพเนนต์บางรายการเป็นcontent - พารามิเตอร์ที่จัดเรียงใหม่ใน
ButtonDefaults.buttonColors()โปรดทราบว่าเนื่องจากประเภทของพารามิเตอร์ไม่ได้เปลี่ยนแปลง การดำเนินการนี้จึงไม่ทำให้เกิดข้อผิดพลาดในโค้ด โปรดตรวจสอบว่าคุณใช้พารามิเตอร์ที่มีชื่อหรืออัปเดตลำดับด้วยตนเอง มิฉะนั้นโค้ดจะทำงานไม่เหมือนเดิม - เพิ่มพารามิเตอร์
secondaryVariantไปยังdarkColors()โดยปกติแล้ว สีนี้จะเหมือนกับsecondaryในธีมมืด แต่เราได้เพิ่มสีนี้เพื่อความสอดคล้องและการปรับแต่งเพิ่มเติม - นำ ElevationDefaults และ animateElevation() ออกจาก API สาธารณะเนื่องจากไม่ได้ใช้กันทั่วไป / ไม่มีประโยชน์
- เปลี่ยนชื่อ
onValueChangeEndในSliderเป็นonValueChangeFinishedและทำให้เป็นค่า Null ได้ - เปลี่ยนชื่อพารามิเตอร์
textในSnackbarเป็นcontentเพื่อให้สอดคล้องกัน - เพิ่มพารามิเตอร์
contentPaddingลงในDropdownMenuItemเพื่ออนุญาตให้ปรับแต่งระยะขอบเริ่มต้น และทำให้contentเป็นส่วนขยายในRowScope - เปลี่ยนชื่อ
ModalDrawerLayoutเป็นModalDrawerแล้ว - เปลี่ยนชื่อ
BottomDrawerLayoutเป็นBottomDrawerแล้ว - (I1cc66)
ตอนนี้ BasicTextField ยอมรับ Brush แทน Color เพื่อการปรับแต่งที่ดีขึ้น (I83a36)
ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยาย ใน ImageBitmap และ ImageVector ตามลำดับ ฟังก์ชัน load{Image,Vector,Font}Resource ถูกลบออกแล้ว (I89130)
เปลี่ยน Indication#createIndication() เป็น Indication#rememberUpdatedIndication(InteractionState) และนำพารามิเตอร์ InteractionState ออกจาก IndicationInstance#drawIndication() IndicationInstance ควรมีหน้าที่วาดเอฟเฟ็กต์ภาพเท่านั้น และไม่ควรเปิดใช้ภาพเคลื่อนไหว / เขียนสถานะเพื่อตอบสนองต่อการเปลี่ยนแปลง InteractionState ภาพเคลื่อนไหวและการเขียนสถานะเหล่านี้ควรเกิดขึ้นภายใน
rememberUpdatedIndication()แทน นอกจากนี้ เรายังเปลี่ยนพารามิเตอร์indicationในModifier.indicationให้เป็นพารามิเตอร์ที่จำเป็นด้วย (Ic1764, b/152525426)
การแก้ไขข้อบกพร่อง
- เพิ่มองค์ประกอบ LocalSoftwareKeyboardController ใหม่ในเครื่อง API เพื่อแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าใน TextField (I658b6, b/168778053)
เวอร์ชัน 1.0.0-alpha12
10 กุมภาพันธ์ 2021
androidx.compose.material:material-*:1.0.0-alpha12 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้ Modifier.pointerInput ต้องใช้คีย์ remember เพื่อระบุ เมื่อควรเริ่มคอรูกินการตรวจหาอินพุตของเคอร์เซอร์ใหม่สำหรับ การอ้างอิงใหม่ (I849cd)
- มีการทำเครื่องหมาย BottomDrawerLayout และ ListItem เป็น @ExperimentalMaterialApi (Id766e)
- เพิ่ม PaddingValues.Absolute แล้ว และสามารถใช้ใน API ที่ยอมรับ PaddingValues ได้ (Ia5f30)
- เลิกใช้งาน onImeActionPerformed แล้ว ให้ใช้ KeyboardActions แทน (If0bbd, b/179071523)
- เราได้เปลี่ยนชื่อ ImagePainter เป็น BitmapPainter เพื่อให้สอดคล้องกับ VectorPainter มากขึ้น และเพื่อให้เป็นไปตามหลักเกณฑ์การตั้งชื่อของ ImageBitmap และ ImageVector (Iba381, b/174565889)
- ตอนนี้ Animatable.snapTo และ Animatable.stop เป็นฟังก์ชันที่ระงับแล้ว (If4288)
- ComponentActivity.setContent ได้ย้ายไปอยู่ที่ androidx.activity.compose.setContent ในโมดูล androidx.activity:activity-compose แล้ว (Icf416)
- เราได้นำเมธอด Destructuring และ copy() ออกจาก หลายๆ คลาสที่ไม่ได้ใช้บ่อยนัก (I26702, b/178659281)
- ทำให้ halfExpand() และ expand() ใน ModalBottomSheetState เป็นแบบภายใน (Ic914e)
- เปลี่ยน Indication#createInstance เป็น @Composable และเปลี่ยน LocalIndication ให้มี Indication ไม่ใช่ () -> Indication (I5eeea, b/157150564)
- ย้าย AlertDialog และ DropdownMenu ให้ใช้ได้เฉพาะใน Android ในตอนนี้ เพิ่มพารามิเตอร์ PopupProperties ลงใน DropdownMenu เพื่อกำหนดค่า Popup พื้นฐานเพิ่มเติม (I9c443)
- เลิกใช้งาน loadFontResource แล้ว โปรดใช้ fontResource แทน imageResource, loadImageResource, vectorResource และ loadVectorResource เลิกใช้งานแล้ว ใช้ painterResource แทน (I6b809)
- นำพารามิเตอร์
toggleและtoggleModifierออกจาก DropdownMenu และเปลี่ยนชื่อdropdownModifier,dropdownOffsetและdropdownContentเป็นmodifier,offsetและcontentตามลำดับ ตอนนี้ DropdownMenu ทำงานสอดคล้องกับPopupแล้ว โดยจะใช้เลย์เอาต์หลักสำหรับตำแหน่งของเมนู ในกรณีส่วนใหญ่ คุณสามารถย้ายtoggleให้เป็นองค์ประกอบย่อยของDropdownMenuและรวมทั้ง 2 องค์ประกอบไว้ในBoxดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ API นี้ได้ในตัวอย่างที่อัปเดตในเอกสารประกอบ (I884fb) - เปลี่ยนชื่อ toIntPx() เป็น roundToPx() (I9b7e4, b/173502290)
- เราได้เปลี่ยนชื่อ IntBounds เป็น IntRect และปรับปรุง API (I1f6ff)
- เพิ่มการดำเนินการทางความหมายในการขยายและยุบ เพิ่ม expand และ halfExpand ใน ModalBottomSheetState (Ib5064)
- เลิกใช้งาน Modifier.dragGestureFilter แล้ว ให้ใช้
Modifier.pointerInput { detectDragGestures (...)}แทน หรือใช้ Modifier.draggable สำหรับการลากแกนเดียว (I0ba93, b/175294473) - เปลี่ยนชื่อ Ambients ให้ตรงกับการเปลี่ยนชื่อ Ambient -> CompositionLocal เดิมชื่อของ Ambients คือ AmbientFoo แต่ตอนนี้ชื่อของ CompositionLocals คือ LocalFoo (I2d55d)
- ย้ายการเลือกไปที่มูลนิธิแล้ว (I7892b)
- เช่นเดียวกับที่เราเคยนำ
state { 0 }ที่ใช้ร่วมกันได้ออกไปก่อนหน้านี้ และตอนนี้เรากำลังส่งเสริมการใช้งานอย่างremember { mutableStateOf(0) }เราจะนำsavedInstanceState { 0 }ที่ใช้ร่วมกันได้ออก คุณควรใช้rememberSaveable { mutableStateOf(0) }แทน และระบบจะบันทึกและกู้คืนโดยอัตโนมัติหากจัดเก็บประเภทที่ใช้ภายใน MutableState ไว้ใน Bundle ได้ หากก่อนหน้านี้คุณส่งออบเจ็กต์ Saver ที่กำหนดเอง ตอนนี้คุณต้องใช้การโอเวอร์โหลดใหม่ของ rememberSaveable ซึ่งมีพารามิเตอร์stateSaverการใช้งานจะมีลักษณะดังนี้val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }(Ib4c26, b/177338004) - เพิ่ม ProgressBarRangeInfo.Indeterminate เพื่อทำเครื่องหมายแถบความคืบหน้าที่ไม่แน่นอนเพื่อการช่วยเหลือพิเศษ (I6fe05)
เราเลิกใช้งาน @ComposableContract แล้วเพื่อใช้คำอธิบายประกอบที่เจาะจงมากขึ้น 3 รายการ
@ComposableContract(restartable = false)เปลี่ยนเป็น@NonRestartableComposableแล้ว@ComposableContract(readonly = true)เปลี่ยนเป็น@ReadOnlyComposableแล้ว@ComposableContract(preventCapture = true)เปลี่ยนเป็น@DisallowComposableCallsแล้ว@ComposableContract(tracked = true)ถูกลบออกไปแล้ว- (I60a9d)
เราได้เลิกใช้งานยูทิลิตี
emptyContent()และ(@Composable () -> Unit).orEmpty()แล้ว เนื่องจากยูทิลิตีดังกล่าวไม่มีผลกระทบหรือคุณค่าด้านประสิทธิภาพในเชิงบวกอีกต่อไป (I0484d)เปลี่ยนชื่อ rememberSavedInstanceState() เป็น rememberSaveable() และย้ายไปยังแพ็กเกจ androidx.compose.runtime.saveable (I1366e, b/177338004)
ย้าย Saver, listSaver(), mapSaver(), autoSaver จาก androidx.compose.runtime.savedinstancestate ไปยัง androidx.compose.runtime.saveable (I77fe6)
เราได้เปลี่ยนชื่อพารามิเตอร์ใน RounderCornerShape, CutCornerShape และ CornerBasedShape จากซ้าย/ขวาเป็นเริ่ม/สิ้นสุด เพื่อรองรับการมิเรอร์อัตโนมัติของรูปร่างในทิศทาง RTL เราได้เปิดตัว AbsoluteRounderCornerShape และ AbsoluteCutCornerShape สำหรับกรณีที่ไม่ต้องการการมิเรอร์อัตโนมัติ (I61040, b/152756983)
เปลี่ยนพารามิเตอร์
textและiconของ Tab รวมถึงพารามิเตอร์labelของ BottomNavigationItem ให้เป็นค่า Null ได้ เพื่อสื่อถึงลักษณะการทำงานของคอมโพเนนต์ได้ดียิ่งขึ้นเมื่อมีการระบุพารามิเตอร์เหล่านี้หรือไม่ระบุ เนื่องจากพารามิเตอร์เหล่านี้ส่งผลต่อขนาดและเลย์เอาต์ของคอมโพเนนต์ หากปัจจุบันคุณส่งemptyContent()เพื่อระบุว่าไม่มีข้อความ / ไอคอน / ป้ายกำกับ คุณควรใช้nullแทน (I57ed4)เปลี่ยนชื่อพารามิเตอร์สี contentColorFor เป็น backgroundColor (I5bb67)
เลิกใช้งาน TabDefaults และแทนที่ด้วย TabRowDefaults (I0f189)
เปิดตัว ColorMatrix API ที่ใช้ เพื่อแก้ไขค่า rgb ของเนื้อหาต้นฉบับ ปรับโครงสร้าง ColorFilter API ให้เป็น อินเทอร์เฟซและตรงกับการใช้งาน ของ PathEffect (Ica1e8)
ตอนนี้เราเลิกใช้งาน AnimatedValue/Float แล้ว โปรดใช้ Animatable แทน (I71345, b/177457083)
เพิ่ม SemanticsProperties.PaneTitle API (I20d5a)
เพิ่มพารามิเตอร์ที่เปิดใช้ไปยัง Tab และ BottomNavigationItem เพื่อป้องกันไม่ให้คลิกได้ เปลี่ยน BottomNavigationItem เป็น RowScope.BottomNavigationItem เพื่อแสดงข้อกำหนดของเลย์เอาต์ใน API ได้ดียิ่งขึ้น (Id683d)
เลิกใช้งาน tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter และ pressIndicaitonGestureFilter แล้ว โปรดใช้ Modifier.clickable หรือ Modifier.pointerInput กับฟังก์ชัน detectTapGestures แทน (I6baf9, b/175294473)
เพิ่มพารามิเตอร์ layoutDirection ลงใน createOutline ของ Shape ซึ่งช่วยให้สร้างรูปร่างที่รับรู้ทิศทางเลย์เอาต์ได้ (I57c20, b/152756983)
นำ
Recomposer.current()ออกแล้ว [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. การจัดองค์ประกอบใหม่และ เครื่องหมายภาพเคลื่อนไหวที่อิงตาม withFrameNanos จะหยุดชั่วคราวขณะที่วงจรของโฮสต์ หยุดทำงาน (I38e11)
การแก้ไขข้อบกพร่อง
- ตอนนี้ไอคอนจะปรับขนาดให้พอดีกับขนาดของไอคอน โดยจะใช้ตัวปรับขนาดที่ใช้กับไอคอน เช่น
Icon(.., modifier = Modifier.size(50.dp)จะวาดในพื้นที่ 50x50dp (Ib2ba9, b/178796190)
เวอร์ชัน 1.0.0-alpha11
28 มกราคม 2021
androidx.compose.material:material-*:1.0.0-alpha11 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha11 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เลื่อนระดับ API ของ Material บางรายการให้ไม่ใช่
@Experimentalอีกต่อไป (I5d20e) - เพิ่มพารามิเตอร์คำอธิบายเนื้อหาลงในรูปภาพและไอคอนแล้ว ใช้เพื่ออธิบายบริการการช่วยเหลือพิเศษ (I2ac4c)
- เปลี่ยนอินเทอร์เฟซพารามิเตอร์ที่มีสถานะของ Material ให้มีฟังก์ชัน @Composable ที่ส่งคืน
State<T>เพิ่มAnimatable.asState()เพื่อให้แปลง Animatable เป็น State ได้ง่ายขึ้น นอกจากนี้ยังเปลี่ยน animateElevation ให้เป็นส่วนขยายระงับใน Animatable (If613c) - Snackbar, SnackbarHost, SnackbarHostState ไม่ใช่
@ExperimentalMaterialAPIอีกต่อไป (Id1fb5) - เปลี่ยน Typography, Shapes และ TabPosition ให้ไม่ใช่คลาสข้อมูลอีกต่อไป เพิ่มฟังก์ชันคัดลอกสำหรับตัวอักษรและรูปร่างเพื่อแทนที่รายการที่สร้างขึ้น (I40037)
- ลบ API ของ Material ที่เลิกใช้งานไปก่อนหน้านี้บางรายการ (Ifaa25)
การแก้ไขข้อบกพร่อง
- onCommit, onDispose และ onActive ถูกเลิกใช้งานแล้วเพื่อรองรับ SideEffect และ DisposableEffect API (If760e)
- เลิกใช้งานการเปลี่ยนตาม TransitionDefinition แล้ว (I0ac57)
- ตอนนี้รองรับสถานะเริ่มต้นใน updateTransition แล้ว (Ifd51d)
- มีการปรับปรุง WithConstraints เป็น BoxWithConstraints และย้ายไปที่ foundation.layout (I9420b, b/173387208)
เลิกใช้งาน scrollBy ที่ไม่ใช่แบบระงับชั่วคราว และนำ scrollTo ที่ไม่ใช่แบบระงับชั่วคราวออก
ตอนนี้เราขอแนะนำให้ใช้ฟังก์ชันระงับเพื่อควบคุมการเลื่อนและรอ ให้การเลื่อนเสร็จสิ้น เราจะเลิกใช้งานและ/หรือนำฟังก์ชันเวอร์ชันที่ไม่ใช่แบบระงับออกเป็นส่วนหนึ่งของการเปลี่ยนผ่านนี้ (Ie9ced)
เลิกใช้งาน smoothScrollBy ที่ไม่ใช่แบบระงับ ตอนนี้เราขอแนะนำให้ใช้ฟังก์ชันระงับเพื่อควบคุมการเลื่อนและรอ ให้การเลื่อนเสร็จสิ้น เราจะเลิกใช้งานฟังก์ชันเวอร์ชันที่ไม่ระงับ เหล่านี้ซึ่งเป็นส่วนหนึ่งของการเปลี่ยนผ่านนี้ (I12880)
เปิดตัว
ComposeContentTestRuleซึ่งขยายComposeTestRuleและกำหนดsetContentซึ่งถูกนำออกจากComposeTestRuleเพิ่มเมธอดจาก FactorycreateEmptyComposeRule()ซึ่งจะแสดงผลComposeTestRuleและไม่เปิดใช้กิจกรรมให้คุณ ใช้เมื่อต้องการเปิดใช้งานกิจกรรมระหว่างการทดสอบ เช่น ใช้ActivityScenario.launch(I9d782, b/174472899)คุณจะปรับแต่งการกระเพื่อมที่ใช้ในปุ่มและ FloatingActionButton โดยการระบุ Indication ใหม่ผ่าน AmbientIndication ไม่ได้อีกต่อไป ซึ่งเราไม่เคยตั้งใจให้เป็นวิธีปรับแต่งคอมโพเนนต์เหล่านี้ และตอนนี้คอมโพเนนต์เหล่านี้จะสอดคล้องกับคอมโพเนนต์ Material อื่นๆ หากต้องการปรับแต่ง Ripple ในแอปพลิเคชัน ให้ดู RippleTheme (I546c5)
ตอนนี้ animateAsState เปลี่ยนเป็น animateFooAsState แล้ว โดย Foo คือประเภทของตัวแปรที่กำลังเคลื่อนไหว เช่น Float, Dp, Offset ฯลฯ (Ie7e25)
BasicTextField ได้รับพารามิเตอร์ใหม่ชื่อ
decorationBoxซึ่งช่วยให้เพิ่มการตกแต่ง เช่น ไอคอน ตัวยึดตำแหน่ง ป้ายกำกับ และอื่นๆ ที่คล้ายกับช่องข้อความ และเพิ่มพื้นที่เป้าหมายการเข้าชมของช่องข้อความ (I16996)แก้ไขข้อบกพร่องที่ทำให้ตั้งค่าความกว้างของช่องข้อความ Material ให้น้อยกว่า 280.dp ไม่ได้ (I78373)
นำพารามิเตอร์ canDrag ออกจาก Modifier.draggable (Ic4bec, b/175294473)
นำ displaySize ออกเนื่องจากควรหลีกเลี่ยง โดยปกติแล้ว ควรใช้ขนาดของ onRoot() หรือขนาดหน้าต่างเป็นอย่างน้อย (I62db4)
ตอนนี้ Surface สามารถมีเลย์เอาต์ย่อยหลายรายการได้แล้ว (I66a92, b/144488459)
ตอนนี้เราเลิกใช้งาน invalidate และ compositionReference() แล้ว และแนะนำให้ใช้ currentRecomposeScope และ rememberCompositionReference แทนตามลำดับ (I583a8)
เปลี่ยน PopupPositionProvider ให้ใช้พิกัดที่สัมพันธ์กับหน้าต่าง ไม่ใช่พิกัดส่วนกลาง เปลี่ยนชื่อ parentGlobalBounds เป็น anchorBounds และเปลี่ยน windowGlobalBounds เป็น
windowSize: IntSize(I2994a)ระบบจะแทนที่ระยะเวลาและเวลาทำงานด้วยมิลลิวินาทีแบบยาว และขั้นตอนนี้จะนำทรัพยากร Dependency ของอินพุต Pointer ในคลาสเหล่านั้นออก (Ia33b2, b/175142755, b/177420019)
นำ AnimatedFloat.fling ที่ยอมรับ FlingConfig ออกแล้ว โปรดใช้ suspend Animatable.animateDecay แทน (I4659b, b/177457083)
ตอนนี้คุณสร้างรายการที่คลิกได้ เปิด/ปิดได้ และเลือกได้ภายนอกองค์ประกอบได้แล้ว (I0a130, b/172938345, b/175294473)
เปลี่ยนการค่อยๆ เปลี่ยนเป็นการเชื่อมต่อฟังก์ชัน (Ib14e5)
เลิกใช้งาน ScrollableColumn/Row แล้ว การใช้ ScrollableColumn มีประสิทธิภาพน้อยกว่าเมื่อเทียบกับ LazyColumn เมื่อคุณมีเนื้อหาที่เลื่อนได้จำนวนมาก เนื่องจาก LazyColumn จะอนุญาตให้เราเขียน/วัด/วาดองค์ประกอบที่มองเห็นได้เท่านั้น เราจึงตัดสินใจเลิกใช้งาน ScrollableColumn และ ScrollableRow แล้วแนะนำให้ใช้ LazyColumn และ LazyRow แทนเพื่อป้องกันไม่ให้ผู้ใช้ใช้วิธีที่ไม่มีประสิทธิภาพ ผู้ใช้ยังคงเลือกได้ว่าจะไม่ใช้ลักษณะการทำงานแบบเลซี่และใช้ตัวแก้ไขโดยตรงได้ เช่น Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
items(count: Int)เมธอด Factory ใหม่สำหรับขอบเขตของ LazyColumn/LazyRow/LazyVerticalGrid ตอนนี้items(items: List)และitemsIndexed(items: List)เป็นฟังก์ชันส่วนขยายแล้ว คุณจึงต้องนำเข้าด้วยตนเองเมื่อใช้งาน การโอเวอร์โหลดส่วนขยายใหม่สำหรับอาร์เรย์:items(items: Array)และitemsIndexed(Array)(I803fc, b/175562574)นำเมธอด monotonicFrameAnimationClockOf ที่เป็นเวอร์ชันทดลองออก (Ib753f, b/170708374)
เลิกใช้งานเมธอดพิกัดส่วนกลางและสร้าง เมธอดพิกัดใหม่ที่อิงตามหน้าต่าง (Iee284)
เพิ่ม Modifier.toolingGraphicsLayer ซึ่งจะเพิ่มตัวปรับแต่งเลเยอร์กราฟิกเมื่อเปิดการตรวจสอบ (I315df)
ตอนนี้มีการทำเครื่องหมาย FocusRequester.createRefs ว่าเป็นการทดลองเนื่องจากอาจมีการเปลี่ยนแปลง (I2d898, b/177000821)
SemanticsPropertyReceiver.hidden เปลี่ยนชื่อเป็น invisibleToUser และทำเครื่องหมาย @ExperimentalComposeUiApi เปลี่ยนชื่อ AccessibilityRangeInfo เป็น ProgressBarRangeInfo เปลี่ยนชื่อ stateDescriptionRange เป็น progressBarRangeInfo AccessibilityScrollState เปลี่ยนชื่อเป็น ScrollAxisRange horizontalAccessibilityScrollState เปลี่ยนชื่อเป็น horizontalScrollAxisRange verticalAccessibilityScrollState เปลี่ยนชื่อเป็น verticalScrollAxisRange (Id3148)
ใช้ประโยชน์จาก TestCoroutineDispatcher ในการทดสอบ (I532b6)
อัปเดต Vector Graphics API เพื่อรองรับการแยกวิเคราะห์การปรับสี ที่ใช้กับรูตของ Vector Graphics (Id9d53, b/177210509)
เวอร์ชัน 1.0.0-alpha10
13 มกราคม 2021
androidx.compose.material:material-*:1.0.0-alpha10 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- แก้ไขความเร็วให้มีองค์ประกอบและ การดำเนินการทางคณิตศาสตร์ (Ib0447)
- เปลี่ยนชื่อ
@ExperimentalTestingเป็น@ExperimentalTestApiเพื่อให้ สอดคล้องกับคำอธิบายประกอบ API ทดลองที่คล้ายกัน (Ia4502, b/171464963) - เปลี่ยนชื่อตำแหน่งเป็น DpOffset และนำ getDistance() ออก (Ib2dfd)
- เปลี่ยนชื่อ Color.useOrElse() เป็น Color.takeOrElse() (Ifdcf5)
- เพิ่มสวิตช์เปิด/ปิดลงใน foundation Strings.kt (I4a5b7, b/172366489)
- เลิกใช้งาน FlowRow และ FlowColumn แล้ว โปรดใช้เลย์เอาต์ที่กำหนดเองแทน (I09027)
- เลิกใช้งาน Modifier.focus() และ Modifier.focusRequester() แล้ว ให้ใช้ Modifier.focusModifier() และ Modifier.focusReference() แทน (I75a48, b/175160751, b/175160532, b/175077829)
- ย้าย nativeClass ไปยัง โมดูล ui และทำให้เป็นภายใน อัปเดตการใช้งาน nativeClass ในการติดตั้งใช้งาน equals เพื่อใช้ "is MyClass" แทน (I4f734)
การแก้ไขข้อบกพร่อง
- เพิ่มการรองรับช่องข้อความที่ปิดใช้และแบบอ่านอย่างเดียว (I35279, b/171040474, b/166478534)
- ตอนนี้
animate()ถูกแทนที่ด้วยanimateAsState()ซึ่งจะแสดงผลState<T>แทนTซึ่งจะช่วยให้ประสิทธิภาพดีขึ้น เนื่องจากสามารถจำกัดขอบเขตการลบล้างให้แคบลง ไปยังตำแหน่งที่อ่านค่าสถานะได้ (Ib179e) - เพิ่ม API บทบาทของ Semantics และเพิ่มบทบาทเป็นพารามิเตอร์ไปยัง SemanticsModifier ที่คลิกได้ เลือกได้ และสลับได้ เปลี่ยน Modifier.progressSemantics เพื่อให้แถบเลื่อนใช้ได้ด้วย (I216cd)
เวอร์ชัน 1.0.0-alpha09
16 ธันวาคม 2020
androidx.compose.material:material-*:1.0.0-alpha09 เปิดตัวแล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม API เพื่อทริกเกอร์ภาพเคลื่อนไหวการวางด้วยตนเองและลากใน Modifier.swipeable (Iaa17a, b/162408885)
- เปลี่ยนชื่อออบเจ็กต์ *Constants เช่น ButtonConstants ให้ลงท้ายด้วย Defaults แทน เช่น ButtonDefaults นอกจากนี้ ยังนำคำนำหน้า
defaultที่ไม่จำเป็นออกจากพร็อพเพอร์ตี้ในออบเจ็กต์ใหม่เหล่านี้ด้วย (Ibb915, b/159982740) Compose รองรับตัวรับพร็อพเพอร์ตี้ที่สร้างการเรียกใช้ที่ใช้ร่วมกันได้ เราจะยังคงรองรับการดำเนินการนี้ต่อไป แต่ไวยากรณ์สำหรับการประกาศตัวรับค่าพร็อพเพอร์ตี้เป็น @Composable จะมีการเปลี่ยนแปลง
ไวยากรณ์ที่เลิกใช้งานแล้วในตอนนี้สำหรับการดำเนินการนี้คือการใส่คำอธิบายประกอบในพร็อพเพอร์ตี้เอง ดังนี้
@Composable val someProperty: Int get() = ...ไวยากรณ์ที่ถูกต้องในปัจจุบันสำหรับการดำเนินการนี้คือการใส่คำอธิบายประกอบให้กับ Getter ของพร็อพเพอร์ตี้ ดังนี้
val someProperty: Int @Composable get() = ...ไวยากรณ์ทั้ง 2 แบบจะใช้งานได้อีกระยะหนึ่ง แต่ในที่สุดไวยากรณ์แบบแรกที่เลิกใช้งานแล้วจะกลายเป็นข้อผิดพลาดในการคอมไพล์ (Id9197)
เพิ่ม
androidx.compose.material:material-rippleไลบรารีที่มี Ripple API เพื่อให้สร้างคอมโพเนนต์แบบอินเทอร์แอกทีฟได้โดยไม่ต้องใช้ไลบรารี Material ที่เหลือ rememberRippleIndication ถูกเลิกใช้งานแล้วและแทนที่ด้วย rememberRipple (Ibdf11)
การแก้ไขข้อบกพร่อง
- ตอนนี้ Lambda ในตัวปรับออฟเซ็ตจะแสดงผล IntOffset แทน Float (Ic9ee5, b/174137212, b/174146755)
ปรับโครงสร้าง ShaderBrush เพื่อ สร้างอินสแตนซ์ของ Shader แบบเลซีเมื่อ มีข้อมูลการปรับขนาดของ สภาพแวดล้อมการวาด ซึ่งมีประโยชน์ในการกำหนดการไล่ระดับสีที่ ครอบคลุมขอบเขตการวาดทั้งหมดของ Composable ในเวลาที่ทำการคอมโพส โดยไม่ต้อง ใช้การติดตั้งใช้งาน DrawModifier ที่กำหนดเอง
เลิกใช้งาน API ตัวสร้างฟังก์ชันการไล่ระดับสี เพื่อสนับสนุนเมธอด Factory ในออบเจ็กต์การไล่ระดับสี (I511fc, b/173066799)
เลิกใช้งาน Modifier.focusObserver แล้ว ให้ใช้ Modifier.onFocusChanged หรือ Modifier.onFocusEvent แทน (I30f17, b/168511863, b/168511484)
เลิกใช้งาน LazyColumnFor, LazyRowFor, LazyColumnForIndexed และ LazyRowForIndexed ใช้ LazyColumn และ LazyRow แทน (I5b48c)
ย้าย Dp.VectorConverter, Position.VectorConverter ฯลฯ ไปยัง animation-core และเลิกใช้งาน VectorConveters แบบเดิม (If0c4b)
ตอนนี้ Autofill API เป็น API เวอร์ชันทดลองและต้องเลือกใช้ (I0a1ec)
เพิ่มการประกาศการแยกโครงสร้างเพื่อสร้างอินสแตนซ์ FocusRequester (I35d84, b/174817008)
เปลี่ยนชื่อ accessibilityLabel เป็น contentDescription เปลี่ยนชื่อ accessibilityValue เป็น stateDescription (I250f2)
ฟังก์ชัน infiniteRepeatable ใหม่สำหรับสร้าง InfiniteRepeatableSpec (I668e5)
เปลี่ยนลักษณะการวางตำแหน่งของ DropdownMenu เล็กน้อยตามข้อกำหนดของ Material (I34c72, b/168594123)
เพิ่มการรองรับ InteractionState สำหรับ TextField แล้ว (I61d91)
เพิ่ม Modifier.clearAndSetSemantics เพื่อล้างซีแมนทิกส์ขององค์ประกอบย่อย และตั้งค่าใหม่ (I277ca)
ย้าย ContentDrawScope ไปยัง ui-graphics module เพื่อให้อยู่กับ DrawScope (Iee043, b/173832789)
เวอร์ชัน 1.0.0-alpha08
2 ธันวาคม 2020
androidx.compose.material:material:1.0.0-alpha08, androidx.compose.material:material-icons-core:1.0.0-alpha08 และ androidx.compose.material:material-icons-extended:1.0.0-alpha08 เวอร์ชัน 1.0.0-alpha08 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้ MaterialTheme จะตั้งค่าสีที่ถูกต้องสำหรับแฮนเดิลการเลือกและพื้นหลังการเลือกแล้ว แอปที่ไม่ใช่ Material สามารถใช้ AmbientTextSelectionColors ด้วยตนเองเพื่อปรับแต่งสีที่ใช้สำหรับการเลือก (I1e6f4, b/139320372, b/139320907)
- เพิ่มการตรวจสอบ Lint สำหรับการตั้งชื่อและการวางตำแหน่งพารามิเตอร์ Lambda ที่ใช้ร่วมกันได้ เพื่อตรวจสอบความสอดคล้องกับหลักเกณฑ์ของ Compose
นอกจากนี้ เรายังย้ายข้อมูล API บางรายการโดยใช้
childrenเป็นชื่อของ Lambda ต่อท้ายไปยังcontentตามการตรวจสอบและคำแนะนำของ Lint (Iec48e) - เปลี่ยนชื่อ VectorAsset เป็น ImageVector ย้ายและเปลี่ยนชื่อ VectorAsset เป็น Builder เพื่อ ให้เป็นคลาสในของ ImageVector ตาม หลักเกณฑ์ของสภา API เพิ่มชื่อแทนของ VectorAssetBuilder เพื่อลิงก์ไปยัง ImageVector.Builder เพื่อความเข้ากันได้ (Icfdc8)
- เปลี่ยนชื่อ ImageAsset และ เมธอดที่เกี่ยวข้องเป็น ImageBitmap (Ia2d99)
- ย้ายพร็อพเพอร์ตี้ความหมายพื้นฐานไปยัง UI (I6f05c)
fun RippleIndication()เลิกใช้งานแล้วและแทนที่ด้วยrememberRippleIndication()เพื่อให้สอดคล้องกับ API อื่นๆ (Id8e2c)- เพิ่มพารามิเตอร์ singeLine ลงใน BasicTextField, TextField และ OutlinedTextField ตั้งค่าพารามิเตอร์นี้เป็น true เพื่อให้ช่องข้อความเป็นบรรทัดเดียวที่เลื่อนได้ในแนวนอน (I57004, b/168187755)
การแก้ไขข้อบกพร่อง
- เพิ่มการดำเนินการทางความหมาย Dismiss (I2b706)
- ย้าย API ของ DrawModifier จากแพ็กเกจ androidx.compose.ui ไปยังแพ็กเกจ androidx.compose.ui.draw สร้างไฟล์ DrawModifierDeprecated.kt เพื่อ รวมนามแฝงของประเภท/วิธีการช่วยเพื่อช่วยในการ ย้ายข้อมูลจาก API ที่เลิกใช้งานแล้วไปยัง API ปัจจุบัน (Id6044, b/173834241)
- เปลี่ยนชื่อ Modifier.drawLayer เป็น Modifier.graphicsLayer นอกจากนี้ยังอัปเดตคลาสที่เกี่ยวข้องเป็น GraphicsLayer ตาม ความคิดเห็นเกี่ยวกับ API (I0bd29, b/173834241)
- นำ
<T>ออกจากการประกาศ SubcomposeLayout ตอนนี้คุณใช้ได้โดยไม่ต้องระบุประเภท (Ib60c8) - เพิ่ม Modifier.scale/rotate
APIs เพื่ออำนวยความสะดวกในการใช้ drawLayer
- เปลี่ยนชื่อ
Modifier.drawOpacityเป็นModifier.alphaแล้ว - เปลี่ยนชื่อ
Modifier.drawShadowเป็นModifier.shadow(I264ca, b/173208140)
- เปลี่ยนชื่อ
- พารามิเตอร์การจัดแนวของ Box เปลี่ยนชื่อเป็น contentAlignment (I2c957)
- เปลี่ยนชื่อตัวแก้ไข offsetPx เป็น offset ตอนนี้ฟังก์ชันเหล่านี้รับพารามิเตอร์ Lambda แทน State แล้ว (Ic3021, b/173594846)
- เปิดตัว SweepGradientShader และ SweepGradientBrush API (Ia22c1)
- เพิ่มการตรวจสอบ Lint สำหรับพารามิเตอร์ Modifier ในฟังก์ชันที่ใช้ร่วมกันได้ การตรวจสอบ Lint นี้จะตรวจสอบการตั้งชื่อ ประเภทการคืนค่า ค่าเริ่มต้น และลำดับของพารามิเตอร์เพื่อให้สอดคล้องกับหลักเกณฑ์ของ Compose (If493b)
- อัปเดต TextFieldValue API
- ทำให้ TextFieldValue.composition เป็นแบบอ่านอย่างเดียว
- นำข้อยกเว้นที่เกิดขึ้นสำหรับช่วงการเลือกที่ไม่ถูกต้องออกแล้ว (I4a675, b/172239032)
- เพิ่ม
Modifier.drawLayer()โอเวอร์โหลดใหม่แล้ว โดยจะใช้บล็อก Lambda ใน GraphicsLayerScope ใหม่ ซึ่งคุณจะกำหนดพารามิเตอร์เลเยอร์ในลักษณะที่ช่วยให้ข้ามการจัดองค์ประกอบใหม่และการจัดเลย์เอาต์ใหม่ได้เมื่อมีการเปลี่ยนแปลงสถานะ ตอนนี้ DrawLayerModifier อยู่ภายในเพื่อเตรียมพร้อมที่จะย้ายตรรกะไปยังเมธอดplaceable.placeWithLayer()ของ LayoutModifier (I15e9f, b/173030831) - เลิกใช้งาน Ambients ที่มีชื่อลงท้ายด้วย
Ambientและแทนที่ด้วยพร็อพเพอร์ตี้ใหม่ที่ขึ้นต้นด้วย Ambient ตามหลักเกณฑ์อื่นๆ ของ Ambient และ Compose API (I33440) - เพิ่มการตรวจสอบ Lint เพื่อตรวจสอบว่าโรงงานตัวแก้ไขใช้
androidx.compose.ui.composed {}ภายในแทนที่จะทำเครื่องหมายเป็น@Composable(I3c4bc) - เปลี่ยนชื่ออาร์กิวเมนต์ Semantics mergeAllDescendants เป็น mergeDescendants (Ib6250)
- การควบคุมเวลาในการทดสอบ (TestAnimationClock และการใช้งาน) อยู่ในระยะทดลองแล้ว (I6ef86, b/171378521)
- Remove old ui-test module and its stubs (I3a7cb)
- เราเปลี่ยนชื่อ TextUnit.Inherit เป็น TextUnit.Unspecified เพื่อให้สอดคล้องกับหน่วยอื่นๆ (Ifce19)
- เราได้อัปเดตอินเทอร์เฟซการจัดแนวและทำให้ใช้งานได้ (I46a07, b/172311734)
- เปลี่ยนชื่อ id เป็น layoutId สำหรับ LayoutIdParentData เปลี่ยนชื่อ Measurable.id เป็น Measurable.layoutId แล้ว (Iadbcb, b/172449643)
เวอร์ชัน 1.0.0-alpha07
11 พฤศจิกายน 2020
androidx.compose.material:material:1.0.0-alpha07, androidx.compose.material:material-icons-core:1.0.0-alpha07 และ androidx.compose.material:material-icons-extended:1.0.0-alpha07 เวอร์ชัน 1.0.0-alpha07 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เราเลิกใช้งาน Emphasis แล้วและแทนที่ด้วย AmbientContentAlpha AmbientContentAlpha เป็นการแยกส่วนที่ง่ายกว่าซึ่งแสดงถึงอัลฟ่าของเนื้อหาที่ต้องการสำหรับส่วนหนึ่งของลำดับชั้น คล้ายกับวิธีที่ AmbientContentColor แสดงถึงสีของเนื้อหาที่ต้องการ ตอนนี้ข้อความและไอคอนจะใช้ค่าปัจจุบันจาก AmbientContentAlpha โดยค่าเริ่มต้น และคุณสามารถทำสิ่งต่อไปนี้ได้ด้วยตนเอง
color.copy(alpha = AmbientContentAlpha.current)เพื่อให้มีเอฟเฟกต์เดียวกันในคอมโพเนนต์ คุณสามารถระบุค่าผ่าน AmbientContentAlpha ได้โดยตรงแทนการใช้ ProvideEmphasis และใช้ระดับเริ่มต้นใหม่ใน ContentAlpha เพื่อแทนที่ EmphasisLevels เก่า (Idf03e, b/159017896) - เพิ่ม androidx.compose.material.AmbientContentColor เพื่อแทนที่ androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- เพิ่ม androidx.compose.material.Text เพื่อแทนที่ androidx.compose.foundation.Text เป็นคอมโพเนนต์ข้อความระดับสูงที่กำหนดธีมได้ สำหรับคอมโพเนนต์ข้อความพื้นฐานที่ไม่ได้ใช้สี / รูปแบบข้อความจากธีม ให้ใช้ BasicText (Ie6ae0)
- เพิ่ม maxLines ลงใน TextField (Ib2a5b)
- อัปเดต TextField ให้ยอมรับ KeyboardOptions (Ida7f3)
- ตอนนี้ Surface จะใช้ระดับความสูงสัมบูรณ์ (ทั้งหมด) เมื่อคำนวณการซ้อนทับระดับความสูง ดังนั้น Surface ที่ซ้อนอยู่ใน Surface อื่นจะใช้ระดับความสูงรวมเพื่อวาดการซ้อนทับ (I7bd2b, b/171031040)
การแก้ไขข้อบกพร่อง
- ย้าย
captureToBitmapไปยังcaptureToImageแล้ว (I86385) - เลิกใช้งาน AmbientTextStyle, ProvideTextStyle และ AmbientContentColor แล้ว แต่ให้ใช้เวอร์ชันใหม่ที่มีอยู่ในคลัง Material แทน สำหรับแอปพลิเคชันที่ไม่ใช่ Material คุณควรสร้างระบบการออกแบบของคุณเองแทน โดยเฉพาะอย่างยิ่งธีมแอมเบียนต์ที่สามารถใช้ในคอมโพเนนต์ของคุณเองได้ (I74acc, b/172067770)
- เลิกใช้งาน foundation.Text แล้วและแทนที่ด้วย material.Text ดู API ข้อความพื้นฐานที่ไม่แสดงความคิดเห็นซึ่งไม่ได้ใช้ค่าจากธีมได้ที่ androidx.compose.foundation.BasicText (If64cb)
- เปลี่ยนชื่อ KeyboardOptions เป็น ImeOptions (I82f36)
- ย้าย KeyboardType และ ImeAction ไปยัง KeyboardOptions (I910ce)
- เลิกใช้งาน BaseTextField แล้ว โปรดใช้ BasicTextField แทน (I896eb)
- นำ ExperimentalSubcomposeLayoutApi ออกแล้ว ตอนนี้คุณใช้ SubcomposeLayout ได้โดยไม่ต้องเพิ่ม @OptIn (I708ad)
- ย้าย FirstBaseline และ LastBaseline ไปยังแพ็กเกจ androidx.compose.ui.layout (Ied2e7)
- อัปเดต Icon API เพื่อรับ Color.Unspecified เป็นสีเฉดที่เป็นไปได้ ซึ่งจะวาดชิ้นงานหรือ Painter ที่ระบุโดยไม่มี ColorFilter ก่อนหน้านี้ การพยายามไม่สนใจการปรับสีด้วย Color.Unspecified จะปรับสีด้วยสีโปร่งใส และไม่มีการแสดงผลใดๆ เลย (I049e2, b/171624632)
- เปลี่ยนชื่อ relativePaddingFrom เป็น paddingFrom เพิ่มตัวแก้ไข paddingFromBaseline เพื่อความสะดวกในการระบุระยะห่างจากขอบเขตเลย์เอาต์ไปยังบรรทัดฐานของข้อความ (I0440a, b/170633813)
- เราเปลี่ยนชื่อ LaunchedTask เป็น LaunchedEffect เพื่อให้สอดคล้องกับ SideEffect และ DisposableEffect API ไม่อนุญาตให้ใช้ LaunchedEffect โดยไม่มีพารามิเตอร์ของ Subject เพื่อส่งเสริมแนวทางปฏิบัติแนะนำ (Ifd3d4)
- ย้าย MeasureResult ออกจาก MeasureScope (Ibf96d, b/171184002)
- เราได้ย้ายสัญลักษณ์ที่เกี่ยวข้องกับเลย์เอาต์หลายรายการจาก androidx.compose.ui ไปยัง androidx.compose.layout.ui (I0fa98, b/170475424)
เวอร์ชัน 1.0.0-alpha06
28 ตุลาคม 2020
androidx.compose.material:material:1.0.0-alpha06, androidx.compose.material:material-icons-core:1.0.0-alpha06 และ androidx.compose.material:material-icons-extended:1.0.0-alpha06 เวอร์ชัน 1.0.0-alpha06 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ย้าย androidx.compose.foundation.Icon ไปยัง androidx.compose.material.Icon แล้ว นอกจากนี้ คุณยังใช้คอมโพเนนต์รูปภาพ / Modifier.paint() กับ Painter ได้หากไม่ต้องการใช้ไลบรารี Material (I9f622)
- เพิ่ม FloatingActionButtonElevation เพื่อแสดงระดับความสูงที่ FAB ใช้ในสถานะต่างๆ ดู FloatingActionButtonConstants.defaultElevation() สำหรับการติดตั้งใช้งานเริ่มต้น (I2d4f5)
- เพิ่มอินเทอร์เฟซ SwitchColors เพื่อแสดงสีที่ใช้โดยสวิตช์ในสถานะต่างๆ ดู SwitchConstants.defaultColors เพื่อปรับแต่งสีเหล่านี้ (I93805)
- เพิ่มอินเทอร์เฟซ ButtonElevation และ ButtonColors เพื่อแสดงระดับความสูงและสีที่ปุ่มใช้ในสถานะต่างๆ ดูฟังก์ชันเริ่มต้นใน ButtonConstants เพื่อปรับแต่งพารามิเตอร์เหล่านี้ (Ic5b7b)
- เพิ่มอินเทอร์เฟซ RadioButtonColors เพื่อแสดงสีที่ใช้โดย RadioButton ในสถานะต่างๆ ดู RadioButtonConstants.defaultColors() เพื่อปรับแต่งสีที่ใช้ในสถานะต่างๆ (I74130)
- เพิ่มอินเทอร์เฟซ CheckboxColors เพื่อแสดงสีที่ช่องทําเครื่องหมายใช้ในสถานะต่างๆ ดู CheckboxConstants.defaultColors() เพื่อปรับแต่งสีที่ใช้ในสถานะต่างๆ (I7dbdb)
การแก้ไขข้อบกพร่อง
- คอมโพเนนต์ Material จะไม่ตั้งค่าระดับความสูงเป็น zIndex อีกต่อไป ซึ่งหมายความว่าภายในองค์ประกอบหลักเดียวกัน ระบบจะไม่วาดองค์ประกอบย่อยที่มีขนาดเงาใหญ่กว่าทับองค์ประกอบย่อยที่มีขนาดเงาเล็กกว่าโดยอัตโนมัติ หากยังคงต้องการลักษณะการทำงานดังกล่าว โปรดตั้งค่า Modifier.zIndex() ด้วยตนเองในตำแหน่งที่ต้องการ (I70417, b/170623932)
- เลิกใช้งาน VectorPainter เพื่อใช้ rememberVectorPainter แทนเพื่อระบุให้ดียิ่งขึ้นว่า Composable API ใช้ "remember" ภายในเพื่อคงข้อมูลไว้ใน Composition ต่างๆ (Ifda43)
- เปิดใช้การเปลี่ยนฉากใน ComposeTestRule และนำตัวเลือกในการ เปิดใช้เคอร์เซอร์กะพริบออกจาก ComposeTestRule (If0de3)
- เพิ่มตัวเลือกแป้นพิมพ์แบบบรรทัดเดียวลงใน CoreTextField (I72e6d)
- เปลี่ยนชื่อ Radius API เป็น CornerRadius เพื่อให้แสดงวิธีใช้ใน Compose ได้ดีขึ้น อัปเดตเอกสารประกอบเพื่อระบุว่า รัศมีมุมที่เป็นลบจะถูกจำกัด เป็น 0 (I130c7, b/168762961)
- ปรับโครงสร้าง DrawScope และ
ContentDrawScope ให้เป็นอินเทอร์เฟซ
แทนที่จะเป็นคลาสแบบนามธรรม
- สร้างการติดตั้งใช้งาน CanvasDrawScope ของ DrawScope
- การติดตั้งใช้งาน DrawScope ที่ปรับโครงสร้างใหม่เพื่อใช้ CanvasScope แทน
- สร้าง DrawContext เพื่อรวมการอ้างอิง สำหรับ DrawScope
- นำวิธีการที่เลิกใช้งานแล้วใน DrawScope ออก (I56f5e)
- Box ได้รับการปรับให้เป็นฟังก์ชันในบรรทัด (Ibce0c, b/155056091)
เวอร์ชัน 1.0.0-alpha05
14 ตุลาคม 2020
androidx.compose.material:material:1.0.0-alpha05, androidx.compose.material:material-icons-core:1.0.0-alpha05 และ androidx.compose.material:material-icons-extended:1.0.0-alpha05 เวอร์ชัน 1.0.0-alpha05 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้ป๊อปอัปและกล่องโต้ตอบจะรับค่า FLAG_SECURE จากหน้าต่างหลัก นอกจากนี้ ยังเพิ่มตัวเลือกในการกำหนดค่านี้อย่างชัดแจ้ง (I64966, b/143778148, b/143778149)
- ตอนนี้ Modifier.swipeable มีเกณฑ์ 56.dp สำหรับสถานะต่างๆ โดยค่าเริ่มต้น (Iab825, b/168610267)
- สถานะ Scaffold ทั้งหมดที่ทำเครื่องหมายเป็น @Stable drawerGesturesEnabled ใน ScaffoldState ย้ายไปที่ Scaffold เอง (I36645, b/168297016)
- นำประเภทที่อนุญาตให้เป็น Null ออกจากพารามิเตอร์แลมบ์ดาของ Scaffold คุณสามารถใช้ emptyContent() เพื่อแสดงว่าไม่มีเนื้อหาสำหรับพารามิเตอร์ที่ระบุ (I2b318, b/157633857, b/158551084)
เลิกใช้งาน API contentColor() และ currentTextStyle() แล้วแทนที่ด้วย AmbientContentColor และ AmbientTextStyle ตามลำดับ คุณเข้าถึงค่าปัจจุบันได้โดยใช้
.currentในพร็อพเพอร์ตี้โดยรอบ เช่นเดียวกับพร็อพเพอร์ตี้โดยรอบอื่นๆ การเปลี่ยนแปลงนี้มีขึ้นเพื่อความสอดคล้องและหลีกเลี่ยงการมีหลายวิธีในการทำสิ่งเดียวกัน นอกจากนี้ ยังเปลี่ยนชื่อพร็อพเพอร์ตี้โดยรอบบางรายการเพื่ออธิบายวัตถุประสงค์ได้ดียิ่งขึ้น ดังนี้- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
เพิ่ม AmbientElevationOverlay ซึ่งช่วยให้ปรับแต่ง / ปิดใช้การซ้อนทับระดับความสูงเริ่มต้นที่ใช้กับพื้นผิวในธีมมืดได้ (I5b74d)
การแก้ไขข้อบกพร่อง
- ในการปรับค่า Sentinel สำหรับคลาสอินไลน์ให้เป็นมาตรฐาน ให้เปลี่ยนชื่อ Color.Unset เป็น Color.Unspecified เพื่อให้สอดคล้องกับคลาสอินไลน์อื่นๆ (I97611, b/169797763)
- เปิดตัว TextOverflow.None เมื่อการล้นเป็น None ข้อความจะไม่จัดการการล้นอีกต่อไป และจะรายงานขนาดจริงไปยัง LayoutNode (I175c9, b/158830170)
- เปลี่ยนชื่อ launchInComposition เป็น LaunchedTask เพื่อให้เป็นไปตามหลักเกณฑ์ของ Compose API (I99a8e)
- เปลี่ยนชื่อ OnPositionedModifier เป็น OnGloballyPositionedModifier และเปลี่ยนชื่อ onPositioned() เป็น onGloballyPositioned() (I587e8, b/169083903)
เวอร์ชัน 1.0.0-alpha04
1 ตุลาคม 2020
androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 และ androidx.compose.material:material-icons-extended:1.0.0-alpha04 เวอร์ชัน 1.0.0-alpha04 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- แสดงพารามิเตอร์ InteractionState ในคอมโพเนนต์ Material แบบมีสถานะ เพื่ออนุญาตให้ยกสถานะขึ้นและอ่าน / ควบคุมสถานะ (Iaca5f, b/168025711, b/167164434)
- เปลี่ยนพารามิเตอร์
*colorใน RadioButton และ TriStateCheckbox เพื่อให้ปรับแต่งสีที่ใช้ในแต่ละสถานะได้อย่างเต็มที่ รวมถึงเปลี่ยนวิธีที่สีเคลื่อนไหวระหว่างสถานะได้หากต้องการ ดูข้อมูลเพิ่มเติมได้ที่ฟังก์ชันสี animateDefault* ใหม่ใน CheckboxConstants และ RadioButtonConstants (I1c532) - เปลี่ยนชื่อ rememberBackdropState เป็น rememberBackdropScaffoldState และเพิ่มพารามิเตอร์เพิ่มเติมสำหรับนาฬิกาภาพเคลื่อนไหว เปลี่ยนชื่อ param backdropScaffoldState ของ BackdropScaffold เป็น scaffoldState เปลี่ยนชื่อ BackdropConstants เป็น BackdropScaffoldConstants (Ib644d)
- เพิ่มคอมโพเนนต์ BottomSheetScaffold เวอร์ชันทดลอง (Ie02f0, b/148996320)
- เพิ่มคอมโพเนนต์ ModalBottomSheetLayout เวอร์ชันทดลอง (Ic209e, b/148996320)
- เปลี่ยนชื่อ ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation เป็น defaultElevation และตอนนี้จะแสดงค่า Dp แทน AnimatedValue (I5f3ed)
การแก้ไขข้อบกพร่อง
- อัปเดต Graphics API หลายรายการ
- อัปเดต API การแปลงการปรับขนาดและการหมุน เพื่อใช้พารามิเตอร์ออฟเซ็ตเดียว เพื่อแสดงพิกัดจุดหมุน แทนพารามิเตอร์ลอยตัวแยกกัน สำหรับพิกัด x/y ใน DrawScope และ DrawTransform
- นำเมธอด Rect.expandToInclude และ Rect.join ออกแล้ว
- อัปเดตเอกสารประกอบเกี่ยวกับรัศมีให้ระบุว่าวงรี นอกเหนือจากวงกลมรี
- เพิ่มเอกสารเพื่อระบุว่าไม่ควรเรียกใช้ ตัวสร้างสาธารณะสําหรับคลาส Radius แบบอินไลน์โดยตรง แต่ควรสร้างอินสแตนซ์ออบเจ็กต์ Radius ผ่านตัวสร้างฟังก์ชัน แทน
- นำ API RoundRect ออกเพื่อค้นหา topRight, bottomRight, bottomCenter ฯลฯ
- เลิกใช้ Rect.shift เพื่อใช้ Rect.translate
- นำ API RoundRect.grow และ Rect.shrink ออกแล้ว
- เปลี่ยนชื่อ RoundRect.outerRect เป็น Rect.boundingRect
- นำเมธอด RoundRect.middleRect/tallMiddleRect/wideMiddleRect และ Rect.isStadium ออก
- เปลี่ยนชื่อ RoundRect.longestSide เป็น RoundRect.maxDimension
- เปลี่ยนชื่อ RoundRect.shortestSide เป็น RoundRect.minDimension
- เปลี่ยน RoundRect.center ให้เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน
- อัปเดตตัวสร้าง RoundRect เพื่อใช้พร็อพเพอร์ตี้ Radius แทนพารามิเตอร์แต่ละรายการสำหรับค่ารัศมี x/y
- นำ API ขนาดที่ถือว่าเป็นสี่เหลี่ยมผืนผ้าที่มี ต้นทางที่ 0,0 ออกแล้ว
- เพิ่ม API ที่ทำลายตัวเองลงใน Radius
- ย้ายฟังก์ชันส่วนขยาย RoundRect ต่างๆ ไปเป็น พร็อพเพอร์ตี้แทน
- (I8f5c7, b/168762961)
- เลิกใช้งาน foundation.Box แล้ว โปรดใช้ foundation.layout.Box แทน (Ie5950, b/167680279)
- เปลี่ยนชื่อ Stack เป็น Box แล้ว เราจะเลิกใช้งาน Box ที่มีอยู่ก่อนหน้านี้เพื่อเปลี่ยนไปใช้ Box ใหม่ใน compose.foundation.layout ลักษณะการทำงานของ Box ใหม่คือการวางองค์ประกอบย่อยซ้อนกันเมื่อมีองค์ประกอบย่อยหลายรายการ ซึ่งแตกต่างจาก Box ก่อนหน้าซึ่งทำงานคล้ายกับคอลัมน์ (I94893, b/167680279)
- เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการตกแต่ง/เพิ่มระยะขอบในช่อง ให้ใช้ตัวแก้ไขแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- อัปเดต Graphics API หลายรายการ
- อัปเดต DrawScope API ด้วยเมธอดการเปลี่ยนรูปแบบที่กำหนดขอบเขตเพื่อระบุว่าการเปลี่ยนรูปแบบจะใช้ภายใน Callback เท่านั้นและจะนำออกหลังจากเรียกใช้ Callback
- อัปเดตเอกสารประกอบ clipPath เพื่ออ้างอิงถึง Path แทนสี่เหลี่ยมผืนผ้าโค้งมน
- แก้ไขการเว้นวรรคในเอกสารสำหรับพารามิเตอร์ด้านขวา ใน clipPath
- เปลี่ยนชื่อ DrawScope.drawCanvas เป็น drawIntoCanvas และ นำพารามิเตอร์ขนาดออก
- เปลี่ยนชื่อพารามิเตอร์ dx/dy ในเมธอด Inset เป็น horizontal และ vertical
- เพิ่มการโอเวอร์โหลด Inset ที่ให้ค่า Inset เดียวกันกับขอบทั้ง 4 ด้าน
- นำเอกสารเกี่ยวกับวิธีการส่วนที่เว้นไว้ออก ซึ่งระบุว่าระบบจะใช้ส่วนที่เว้นไว้กับทั้ง 4 ด้าน
- อัปเดตเอกสารประกอบสำหรับคลาส Rect
- อัปเดตความคิดเห็นเกี่ยวกับพารามิเตอร์ Rect ให้ตรงกับรูปแบบ kdoc
- นำ Rect.join และ Rect.expandToInclude ออกแล้ว
- สร้างการโอเวอร์โหลดสำหรับ Rect.translate(offset) และ เลิกใช้งาน Rect.shift
- (If086a, b/167737376)
- เราป้องกันการนำเข้าแบบคงที่ของเนื้อหาขอบเขตเลย์เอาต์ (เช่น alignWithSiblings ใน RowScope) คุณควรใช้ขอบเขตที่ชัดเจนแทน:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }(I216be, b/166760797)
เวอร์ชัน 1.0.0-alpha03
16 กันยายน 2020
androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 และ androidx.compose.material:material-icons-extended:1.0.0-alpha03 เวอร์ชัน 1.0.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อพารามิเตอร์
BottomNavigationItem'sonSelectเป็นonClick(I91925, b/161809324) - เพิ่มพารามิเตอร์ InteractionState ไปยัง BottomNavigationItem และ Tab ซึ่งช่วยให้ยกเลิกสถานะนี้และปรับลักษณะที่คอมโพเนนต์ปรากฏในสถานะต่างๆ ได้ (Ia3e9e, b/168025711)
- นำพารามิเตอร์
disabledBackgroundColorและdisabledContentColorออกจากปุ่ม คุณควรใช้ฟังก์ชันสีเริ่มต้นใหม่ภายใน ButtonConstants แทน หากคุณตั้งค่า contentColor / backgroundColor อย่างชัดเจนอยู่แล้ว คุณควรใช้ฟังก์ชันเริ่มต้นเหล่านี้แทน และปรับแต่งพารามิเตอร์บางส่วน / ทั้งหมดเพื่อหลีกเลี่ยงการเขียนทับสีสำหรับสถานะที่เปิดใช้ / ปิดใช้ (If9b52) - สีพื้นหลังของช่องข้อความจะไม่ใช้ความโปร่งใสอัลฟ่าโดยนัยอีกต่อไป แต่ระบบจะใช้สีที่ระบุผ่านพารามิเตอร์ backgroundColor โดยตรง (Iecee9, b/167951441)
- เปลี่ยนชื่อ InnerPadding เป็น PaddingValues แล้ว (I195f1, b/167389171)
- พารามิเตอร์
resistanceFactorAtMinและresistanceFactorAtMaxในModifier.swipeableถูกแทนที่ด้วยพารามิเตอร์ความต้านทานเดียว เราได้เพิ่มdefaultResistanceConfigใหม่ในSwipeableConstants(I54238) - เพิ่มการรองรับระดับความสูงแบบมีสถานะที่เคลื่อนไหวได้สำหรับ Button และ FloatingActionButton ตอนนี้ระดับความสูงจะเคลื่อนไหวระหว่างสถานะเริ่มต้นและสถานะที่กด หากต้องการปรับแต่งระดับความสูงระหว่างสถานะต่างๆ โปรดใช้
ButtonConstants.defaultAnimatedElevation()และFloatingActionButtonConstants.defaultAnimatedElevation()แทนการตั้งค่า Dp แบบคงที่ในทุกกรณี (I37925) - ป้ายกำกับกลายเป็นพารามิเตอร์ที่ไม่บังคับภายใน TextField และ OutlinedTextField (I267f6, b/162234081)
การแก้ไขข้อบกพร่อง
- ตอนนี้ฟังก์ชันการทดสอบส่วนกลาง เช่น
onNodeหรือwaitForIdleเลิกใช้งานแล้ว โปรดย้ายข้อมูลไปยังฟังก์ชันใหม่ที่กำหนดไว้ใน ComposeTestRule (I7f45a) - เราเลิกใช้งาน DpConstraints และ API ที่ใช้ DpConstraints แล้ว (I90cdb, b/167389835)
- ระบบเปลี่ยนชื่อพารามิเตอร์ minWidth และ maxWidth ของ widthIn เป็น min และ max เช่นเดียวกับ preferredWidthIn, heightIn, preferredHeightIn (I0e5e1, b/167389544)
- นำการดำเนินการเชิงความหมายของการเลื่อนไปข้างหน้า/ข้างหลังออก เพิ่มขั้นตอน ใน AccessibilityRangeInfo (Ia47b0)
- การใช้งานแรงโน้มถ่วงได้รับการเปลี่ยนชื่ออย่างสม่ำเสมอเป็น "การจัดแนว" ใน Layout API (I2421a, b/164077038)
- เพิ่ม onNode และเมธอดส่วนกลางอื่นๆ ใน ComposeTestRule เนื่องจาก เมธอดส่วนกลางปัจจุบันจะเลิกใช้งาน (Ieae36)
- ย้าย
createAndroidComposeRuleและAndroidInputDispatcherจากandroidx.ui.test.androidไปยังandroidx.ui.test(Idef08, b/164060572)
เวอร์ชัน 1.0.0-alpha02
2 กันยายน 2020
androidx.compose.material:material:1.0.0-alpha02, androidx.compose.material:material-icons-core:1.0.0-alpha02 และ androidx.compose.material:material-icons-extended:1.0.0-alpha02 เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคอมโพเนนต์ BackdropScaffold เวอร์ชันทดลอง (Iad908)
การแก้ไขข้อบกพร่อง
- แทนที่ Matrix4 ด้วย Matrix ส่วนอื่นๆ ทั้งหมด ของแพ็กเกจ vectormath ถูกนำออกแล้ว (Ibd665, b/160140398)
เวอร์ชัน 1.0.0-alpha01
26 สิงหาคม 2020
androidx.compose.material:material:1.0.0-alpha01, androidx.compose.material:material-icons-core:1.0.0-alpha01 และ androidx.compose.material:material-icons-extended:1.0.0-alpha01 เวอร์ชัน 1.0.0-alpha01 มีคอมมิตต่อไปนี้
ปัญหาที่ทราบ
= อักขระแรกในข้อความ TextField จะนำออกโดยใช้ปุ่ม Backspace ไม่ได้ (b/165956313)
เวอร์ชัน 0.1.0-dev
เวอร์ชัน 0.1.0-dev17
19 สิงหาคม 2020
androidx.compose.material:material:0.1.0-dev17, androidx.compose.material:material-icons-core:0.1.0-dev17 และ androidx.compose.material:material-icons-extended:0.1.0-dev17 เวอร์ชัน 0.1.0-dev17 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้นำ RadioGroup และ RadioGroupItems ที่เลิกใช้งานไปก่อนหน้านี้ออกแล้ว ใช้ Row และ RadioBotton แทน (I381b7, b/163806637)
- นำการเรียกกลับ onFocusChanged ออกจาก TextField ใช้ Modifier.focusObserver แทน (I51089, b/161297615)
- เลิกใช้งาน Modifier.drawBorder แล้ว โปรดใช้ Modifier.border แทน เราได้แทนที่คลาสข้อมูลเส้นขอบด้วย BorderStroke (I4257d, b/158160576)
- เปลี่ยนชื่อพร็อพเพอร์ตี้บางรายการใน SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction เพิ่มฟังก์ชัน rememberSwipeableState สำหรับสร้าง SwipeableState (I2fc9c, b/163129614, b/163132293)
- เพิ่มการรองรับแถบแสดงข้อความพร้อมการจัดตำแหน่งและการจัดคิวที่เหมาะสมแล้ว เข้าถึงได้ผ่านฟังก์ชันระงับ
SnackbarHostState.showSnackbarนอกจากนี้- เพิ่มคอมโพเนนต์ SnackbarHost แล้ว โดยจะโฮสต์แถบแสดงข้อความตามสถานะและมีหน้าที่เปลี่ยนระหว่างแถบแสดงข้อความ
- เพิ่ม SnackbarHostState เพื่อให้ควบคุมแถบแสดงข้อความ แถบแสดงข้อความโฮสต์ และแยกออกจาก ScaffoldState ได้ คุณยังเข้าถึงสถานะนี้ผ่าน
scaffoldState.snackbarHostStateได้ด้วย - เพิ่มการโอเวอร์โหลด Snackbar เพื่อรองรับอินเทอร์เฟซทั่วไประหว่าง snackbarHostState กับ Snackbar เอง (I79aaa)
- เพิ่มพารามิเตอร์ที่เปิดใช้ไปยัง IconButton และจัดเรียงพารามิเตอร์ใหม่ใน IconToggleButton (I0a941, b/161809385, b/161807956)
- ระบบได้นำ ListItem เวอร์ชันที่มี API ที่อิงตามสตริงออกแล้ว ใช้เวอร์ชันสล็อตแทน (Ib8f57, b/161804681)
- นำคอมโพเนนต์ FilledTextField ที่เลิกใช้งานแล้วออก โปรดใช้ TextField แทนเพื่อรับการใช้งาน Material Design ของช่องข้อความที่กรอก (I5e889)
- ตอนนี้ AlertDialog ใช้ FlowRow สำหรับปุ่มแล้ว (I00ec1, b/161809319, b/143682374)
- เพิ่มพารามิเตอร์ใน Modifier.swipeable เพื่อเปลี่ยนจำนวน แรงต้านเมื่อปัดผ่านขอบเขต นำพารามิเตอร์ [min/max]Value ออกแล้ว (I93d98)
- เพิ่มพารามิเตอร์ backgroundColor ลงใน LinearProgressIndicator และนำการเว้นวรรคภายในออกจาก CircularProgressIndicator เพิ่ม ProgressIndicatorConstants.DefaultProgressAnimationSpec ใหม่ ซึ่งใช้เป็น AnimationSpec เริ่มต้นได้เมื่อเคลื่อนไหวความคืบหน้าระหว่างค่า (If38b5, b/161809914, b/161804677)
- เพิ่มพารามิเตอร์ velocityThreshold ที่ไม่บังคับลงใน Modifier.swipeable (I698ba)
- bottomBarSize, fabSize และอื่นๆ จะไม่พร้อมใช้งานใน ScaffoldState อีกต่อไป ใช้ Modifier.onPosition แทนในคอมโพเนนต์ที่คุณต้องการทราบขนาด มีการเพิ่ม contentColor และพารามิเตอร์ Modifier ลงใน Scaffold (Ic6f7b, b/161811485, b/157174382)
- เปลี่ยนชื่อและจัดเรียงพารามิเตอร์บางรายการในแท็บเพื่อให้สอดคล้องกับ API อื่นๆ (Ia2d12, b/161807532)
- แยก TabRow ออกเป็น TabRow และ ScrollableTabRow โดยนำ isScrollable ออกจาก TabRow นอกจากนี้ ยังแสดง edgePadding ใน ScrollableTabRow ซึ่งช่วยให้ควบคุมพื้นที่ว่างก่อน / หลังแท็บได้ (I583e8, b/161809544)
- เราได้นำออบเจ็กต์
TabRowออกและแทนที่ด้วย TabConstants TabRow.TabPosition ได้ย้ายไปอยู่ที่ระดับบนสุด (TabPosition) และเปลี่ยนชื่อ indicatorContainer เป็นindicatorแล้ว ดูตัวอย่างและเอกสารประกอบเพื่อดูข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้ API ที่อัปเดตแล้วและค่าเริ่มต้น (I54d45, b/161809544) - เราได้ปรับพารามิเตอร์เกณฑ์ใน Modifier.swipeable โดยตอนนี้พารามิเตอร์จะ รับคู่สถานะ (ประเภท T) และแสดงผลเกณฑ์ระหว่างสถานะเหล่านั้น ในรูปแบบของ ThresholdConfig เพิ่มพารามิเตอร์ dismissThresholds ลงใน SwipeToDismiss ซึ่งเป็นแลมบ์ดา (DismissDirection) -> ThresholdConfig (Ie1080)
- แถบเลื่อนมีสีเพิ่มเติมสำหรับการปรับแต่งแบบละเอียด (I73e64, b/161810475)
- เปลี่ยนชื่อพารามิเตอร์สีของการ์ดเป็น backgroundColor (I01fc1, b/161809546)
- ตอนนี้ Snackbar มีสีพื้นหลังและเนื้อหาที่ปรับแต่งได้แล้ว (I238f2, b/161804381)
- เพิ่มพารามิเตอร์การปรับแต่งตัวแก้ไข, backgroundColor, contentColor และ scrimColor ลงใน Drawer แล้ว (I23655, b/161804378)
- ตอนนี้เราเลิกใช้งาน
state { ... }ที่ใช้ร่วมกันได้แล้วเพื่อ เรียกใช้remember { mutableStateOf(...) }อย่างชัดเจนเพื่อความชัดเจน ซึ่งจะช่วยลดพื้นผิว API โดยรวมและจำนวนแนวคิดสำหรับการจัดการสถานะ และตรงกับรูปแบบby mutableStateOf()สำหรับการมอบสิทธิ์พร็อพเพอร์ตี้ของคลาส (Ia5727) - พารามิเตอร์ระยะห่างจากขอบของปุ่มได้รับการเปลี่ยนชื่อเป็น contentPadding (Id252e, b/161809394)
- เพิ่มคอมโพเนนต์ SwipeToDismiss ของ Material เวอร์ชันทดลอง (I129e5)
การแก้ไขข้อบกพร่อง
- นำ
onChildPositionedและOnChildPositionedModifierออกแล้ว นักพัฒนาแอปควรใช้onPositionedและOnPositionedModifierในเลย์เอาต์ย่อยแทน (I4522e, b/162109766) - เพิ่ม Lambda mergePolicy ไปยัง SemanticsPropertyKey แล้ว ซึ่งสามารถใช้เพื่อกำหนดนโยบายที่กำหนดเองสำหรับความหมายของ mergeAllDescendants การผสาน นโยบายเริ่มต้นคือการใช้ค่าระดับบนหากมีอยู่แล้ว ไม่เช่นนั้นจะใช้ค่าระดับล่าง (Iaf6c4, b/161979921)
- ตอนนี้ IntSize เป็นคลาสแบบอินไลน์ (I2bf42) แล้ว
PlacementScope.placeAbsolute()เปลี่ยนชื่อเป็นPlacementScope.place()และPlacementScope.place()ก่อนหน้าเปลี่ยนชื่อเป็นPlacementScope.placeRelative()ด้วยเหตุนี้ วิธีPlacementScope.place()จะไม่สะท้อนตำแหน่งในบริบทจากขวาไปซ้ายโดยอัตโนมัติอีกต่อไป หากต้องการใช้ฟีเจอร์นี้ โปรดใช้PlacementScope.placeRelative()แทน (I873ac, b/162916675)- เลิกใช้ PxBounds ใน Rect อัปเดตการใช้งานทั้งหมด ของ PxBounds ด้วย rect และเพิ่ม คำอธิบายประกอบที่เลิกใช้งาน/แทนที่อย่างเหมาะสม เพื่อช่วยในการ ย้ายข้อมูล (I37038, b/162627058)
- เปลี่ยนชื่อ RRect เป็น RoundRect เพื่อให้สอดคล้องกับรูปแบบการตั้งชื่อของ Compose มากขึ้น สร้างตัวสร้างฟังก์ชันที่คล้ายกัน กับ RRect และเลิกใช้งานตัวสร้างฟังก์ชัน RRect (I5d325)
เวอร์ชัน 0.1.0-dev16
5 สิงหาคม 2020
androidx.compose.material:material:0.1.0-dev16, androidx.compose.material:material-icons-core:0.1.0-dev16 และ androidx.compose.material:material-icons-extended:0.1.0-dev16 เวอร์ชัน 0.1.0-dev16 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ Color เป็นคลาสสุดท้ายแทนที่จะเป็นอินเทอร์เฟซ คุณควรสร้างแอมเบียนต์ใหม่สำหรับออบเจ็กต์ธีมที่กำหนดเอง และเข้าถึงออบเจ็กต์ธีมผ่านแอมเบียนต์ใหม่ในคอมโพเนนต์ แทนที่จะขยายและให้การติดตั้งใช้งานที่กำหนดเอง ซึ่งคล้ายกับวิธีที่ MaterialTheme ทำงานภายใน (Ibae84)
- เปลี่ยนชื่อ ColorPalette เป็น Colors เพื่อให้สอดคล้องกับระบบสีของ Material มากขึ้น และเพื่อไม่ให้เกิดความสับสนว่า ColorPalette เป็นออบเจ็กต์การกำหนดธีม "ทั่วไป" ซึ่งแตกต่างจากการใช้งานระบบสีของ Material โดยเฉพาะ นอกจากนี้ ยังเปลี่ยนชื่อ lightColorPalette และ darkColorPalette เป็น lightColors และ darkColors ตามลำดับ (I9e976, b/161812111)
- เปลี่ยนชื่อพารามิเตอร์
textของ BottomNavigationItem เป็นlabel,onSelectedเป็นonSelect,activeColorเป็นselectedContentColor,inactiveColorเป็นunselectedContentColorและอัปเดตลำดับพารามิเตอร์ให้ตรงกับหลักเกณฑ์ (Icb605, b/161809324) Modifier.stateDraggableได้รับการปรับปรุงใหม่ทั้งหมดและเปลี่ยนชื่อเป็น Modifier.swipeable มีการเปิดตัวคลาส SwipeableState ใหม่ และมีการรีแฟกเตอร์ DrawerState และ BottomDrawerState เพื่อรับค่าจากคลาสนี้ [Modal/Bottom]DrawerLayout ไม่รับพารามิเตอร์ onStateChange อีกต่อไป (I72332, b/148023068)- แพ็กเกจ foundation.shape.corner ถูกทำให้แบนเป็น foundation.share (I46491, b/161887429)
- เพิ่มคำอธิบายประกอบ ExperimentalMaterialApi ทำเครื่องหมาย RippleTheme เป็นเวอร์ชันทดลอง (Ic5fa0, b/161784800)
- เราเปลี่ยนชื่อ Material FilledTextField เป็น TextField และเปลี่ยนชื่อ TextField พื้นฐานเป็น BaseTextField เพื่อให้ค้นพบและใช้งาน API ที่ต้องการได้ง่ายที่สุด (Ia6242, b/155482676)
การแก้ไขข้อบกพร่อง
- เลิกใช้งาน OnChildPositioned แล้ว ให้ใช้ OnPositioned ในองค์ประกอบย่อยแทน (I87f95, b/162109766)
- แก้ไข API แบบกว้าง (I077bc)
- นำอินเทอร์เฟซ OffsetBase ที่ไม่ได้ใช้ออก
- จัดแนวคลาส Offset และ IntOffset ให้มี API ที่สอดคล้องกัน
- เปลี่ยนชื่อ IntOffset.Origin เป็น IntOffset.Zero เพื่อให้สอดคล้องกับ Offset API
- ย้ายเมธอด nativeCanvas ออกจากอินเทอร์เฟซ Canvas เพื่อรองรับผู้ใช้ในการสร้างอินสแตนซ์ Canvas ของตนเอง
- สร้างคลาส EmptyCanvas ที่เป็น Stub เพื่อทำการรีแฟคเตอร์ DrawScope ให้เป็นพารามิเตอร์ที่ไม่ใช่ Null แทน lateinit และตรวจสอบว่าฟิลด์ไม่ใช่ Null
- เปลี่ยนชื่อ Enum ของ ClipOp ให้เป็น Pascal Case
- เปลี่ยนชื่อ Enum FilterQuality ให้เป็น Pascal Case
- เปลี่ยนชื่อ enums ของ StrokeJoin เป็น Pascal Case
- เปลี่ยนชื่อ PointMode enums เป็น Pascal Case
- เปลี่ยนชื่อ Enum ของ PaintingStyle ให้เป็น Pascal Case
- เปลี่ยนชื่อ enum ของ PathFillType ให้เป็น Pascal Case
- เปลี่ยนชื่อการแจงนับ StrokeCap เป็น Pascal Case
- อัปเดตการใช้งาน DrawCache เพื่อไม่ให้ใช้พารามิเตอร์ lateinit อีกต่อไป
- อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบเลื่อนเวลา สำหรับพารามิเตอร์ภายใน fillPaint และ strokePaint อีกต่อไป
- อัปเดต Image composable เพื่อหลีกเลี่ยงการใช้ Box เพื่อลดค่าใช้จ่าย
- อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
- อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ แต่ละคำสั่งเส้นทาง
- อัปเดตองค์ประกอบย่อยของเวกเตอร์เพื่อนำการตรวจสอบแบบมีเงื่อนไขที่ซ้ำซ้อนออก สำหรับการตรวจสอบความเท่ากัน เนื่องจาก Compose จัดการการตรวจสอบเหล่านี้อยู่แล้ว
- เลิกใช้งานเมธอดตัวสร้าง Rect Companion เพื่อใช้ตัวสร้างฟังก์ชันแทน
- อัปเดตคลาส Brush และตัวสร้างฟังก์ชันด้วย @Immutable และ @Stable API
- อัปเดตการแจงนับ VertexMode ให้เป็น PascalCase
- อัปเดตเมธอด selectPaint ของ DrawScope เพื่อเขียนทับพารามิเตอร์การขีดเขียนแบบมีเงื่อนไขใน Paint หากมีการเปลี่ยนแปลง
- อัปเดตขนาดเพื่อเพิ่ม API การแยกโครงสร้าง เปลี่ยนชื่อ UnspecifiedSize เป็น Unspecified และนำเมธอดที่ไม่ได้ใช้ออก
- ย้ายกล่องโต้ตอบไปยัง UI (I47fa6)
- นำ
SemanticsNodeInteraction.performPartialGestureออกแล้ว โปรดใช้SemanticsNodeInteraction.performGestureแทน (Id9b62) - เปลี่ยนชื่อ
SemanticsNodeInteraction.getBoundsInRoot()เป็นSemanticsNodeInteraction.getUnclippedBoundsInRoot()(Icafdf, b/161336532) - เราได้อัปเดต API สำหรับการรองรับจากขวาไปซ้ายแล้ว เพิ่ม LayoutDirectionAmbient ซึ่งใช้เพื่ออ่านและเปลี่ยนทิศทางเลย์เอาต์ได้ นำ Modifier.rtl และ Modifier.ltr ออกแล้ว (I080b3)
- เปลี่ยนชื่อ Modifier.deternimateProgress เป็น Modifier.progressSemantics (I9c0b4)
- อัปเดต material-icons-extended ด้วยไอคอนล่าสุดที่เพิ่มลงใน Material.io/icons (I4b1d3)
- ต้องระบุประเภท T อย่างชัดแจ้ง สำหรับ transitionDefinition (I1aded)
- เลิกใช้งาน Modifier.plus แล้ว โปรดใช้ Modifier.then แทน คำว่า "จากนั้น" มีสัญญาณการเรียงลำดับที่ชัดเจนกว่า และยังห้ามพิมพ์
Modifier.padding().background() + anotherModifierซึ่งจะทำให้การเชื่อมโยงขาดตอนและอ่านยากขึ้น (Iedd58, b/161529964) - เปลี่ยนชื่อ AndroidComposeTestRule เป็น createAndroidComposeRule (I70aaf)
- เพิ่ม SemanticsMatcher isFocused() และ isNotFocused() (I0b760)
- นำ
BaseGestureScope.globalBoundsออก ซึ่งไม่ควร ใช้ในการทดสอบ ให้ใช้พิกัดที่อยู่ใกล้กับโหนดที่คุณ โต้ตอบแทน (Ie9b08) - แก้ไขตำแหน่งป๊อปอัปในจอแสดงผลที่มีรอยบาก (Idd7dd)
- เราได้เปลี่ยนชื่อ Modifier.drawBackground เป็น Modifier.background (I13677)
เวอร์ชัน 0.1.0-dev15
22 กรกฎาคม 2020
androidx.compose.material:material:0.1.0-dev15, androidx.compose.material:material-icons-core:0.1.0-dev15 และ androidx.compose.material:material-icons-extended:0.1.0-dev15 เวอร์ชัน 0.1.0-dev15 มีคอมมิตต่อไปนี้
การอัปเดตการขึ้นต่อกัน
- หากต้องการใช้ Compose เวอร์ชัน
0.1.0-dev15คุณจะต้องอัปเดตการอ้างอิง ตามข้อมูลโค้ดใหม่ที่แสดงด้านบนในส่วนการประกาศการอ้างอิง
การเปลี่ยนแปลง API
ตอนนี้เราเลิกใช้งานคำอธิบายประกอบ
@Modelแล้ว ใช้ state และ mutableStateOf แทน การตัดสินใจเลิกใช้งานนี้เกิดขึ้นหลังจากที่เราได้หารือกันอย่างรอบคอบแล้วเหตุผลรองรับ
เหตุผลรวมถึงแต่ไม่จำกัดเพียง
- ลดพื้นที่ผิวของ API และแนวคิดที่เราต้องสอน
- สอดคล้องกับชุดเครื่องมืออื่นๆ ที่เทียบเคียงได้ (Swift UI, React, Flutter) มากขึ้น
- การตัดสินใจที่ย้อนกลับได้ เราสามารถนำ
@Modelกลับมาได้ทุกเมื่อ - นำการใช้งานในกรณีที่พบได้ยากและคำถามที่ตอบยากเกี่ยวกับการกำหนดค่า
@Modelออกเนื่องจากเป็นสิ่งที่เราต้องจัดการ @Modelคลาสข้อมูล เท่ากับ รหัสแฮช ฯลฯ- ฉันจะตั้งค่าให้บางพร็อพเพอร์ตี้ "สังเกตการณ์" และบางพร็อพเพอร์ตี้ไม่สังเกตการณ์ได้อย่างไร
- ฉันจะระบุความเท่าเทียมกันเชิงโครงสร้างเทียบกับเชิงอ้างอิงที่จะใช้ในการสังเกตได้อย่างไร
- ลด "ความมหัศจรรย์" ในระบบ จะช่วยลดโอกาสที่ผู้ใช้จะคิดว่าระบบฉลาดกว่าที่เป็นจริง (เช่น ระบบรู้ว่าต้องเปรียบเทียบรายการอย่างไร)
- ทำให้ความละเอียดของการสังเกตการณ์ใช้งานง่ายขึ้น
- ปรับปรุงการรีแฟกเตอร์จากตัวแปร -> พร็อพเพอร์ตี้ในคลาส
- อาจเปิดโอกาสในการเพิ่มประสิทธิภาพเฉพาะรัฐที่สร้างขึ้นด้วยมือ
- สอดคล้องกับส่วนอื่นๆ ของระบบนิเวศมากขึ้น และลดความคลุมเครือเกี่ยวกับสถานะที่ไม่เปลี่ยนแปลงหรือการ "ยอมรับสถานะที่เปลี่ยนแปลงได้"
หมายเหตุเกี่ยวกับการย้ายข้อมูล
การใช้งาน
@Modelที่มีอยู่เกือบทั้งหมดสามารถแปลงได้อย่างง่ายดายด้วย 2 วิธี ตัวอย่างด้านล่างมีคลาส@Modelที่มีพร็อพเพอร์ตี้ 2 รายการเพื่อเป็นตัวอย่างเท่านั้น และมีการใช้ใน Composable@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }วิธีที่ 1: ใช้
State<OriginalClass>และสร้างสำเนาแนวทางนี้ทำได้ง่ายขึ้นด้วยคลาสข้อมูลของ Kotlin กล่าวโดยสรุปคือ ให้เปลี่ยนพร็อพเพอร์ตี้
varทั้งหมดก่อนหน้านี้เป็นพร็อพเพอร์ตี้valของคลาสข้อมูล จากนั้นใช้stateแทนrememberและกำหนดค่าสถานะให้กับสำเนาที่โคลนของต้นฉบับโดยใช้เมธอดความสะดวกของคลาสข้อมูลcopy(...)โปรดทราบว่าวิธีนี้จะใช้ได้เฉพาะเมื่อการเปลี่ยนแปลงในคลาสนั้นๆ เกิดขึ้นในขอบเขตเดียวกันกับที่สร้างอินสแตนซ์
Stateหากคลาสมีการเปลี่ยนแปลงภายในตัวเองนอกขอบเขตการใช้งาน และคุณอาศัยการสังเกตการณ์ดังกล่าว แนวทางถัดไปคือแนวทางที่คุณต้องการใช้data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }วิธีที่ 2: ใช้ mutableStateOf และตัวแทนพร็อพเพอร์ตี้
แนวทางนี้ทำได้ง่ายขึ้นด้วยตัวแทนพร็อพเพอร์ตี้ของ Kotlin และ
mutableStateOfAPI ซึ่งช่วยให้คุณสร้างอินสแตนซ์ MutableState นอกคอมโพสิตได้ โดยพื้นฐานแล้ว ให้แทนที่พร็อพเพอร์ตี้varทั้งหมดของคลาสเดิมด้วยพร็อพเพอร์ตี้varที่มีmutableStateOfเป็นผู้มอบสิทธิ์พร็อพเพอร์ตี้ ซึ่งมีข้อดีคือการใช้งานคลาสจะไม่เปลี่ยนแปลงเลย มีเพียงการใช้งานภายในเท่านั้น อย่างไรก็ตาม ลักษณะการทำงานจะไม่เหมือนกับตัวอย่างเดิมโดยสมบูรณ์ เนื่องจากตอนนี้แต่ละพร็อพเพอร์ตี้จะได้รับการสังเกต/ติดตามแยกกัน ดังนั้นการจัดองค์ประกอบใหม่ที่คุณเห็นหลังจากรีแฟคเตอร์นี้อาจแคบลง (ซึ่งเป็นสิ่งที่ดี)class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
เปลี่ยนชื่อการเรียกกลับ onFocusChange ในช่องข้อความเป็น onFocusChanged (Ida4a1)
เพิ่มพารามิเตอร์ขีดจํากัดใน stateDraggable เพื่อระบุขีดจํากัด ระหว่างจุดยึด ใช้เพื่อกำหนดเกณฑ์ 56dp ในลิ้นชักด้านล่าง นอกจากนี้ ตอนนี้ BottomDrawerLayout ยังใช้การแจงนับ BottomDrawerState แยกต่างหากด้วย (I533fa)
นำ Modifier.ripple ที่เลิกใช้งานไปก่อนหน้านี้ออก ตอนนี้ Clickable ใช้ Ripple เป็นข้อบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณเพียงแค่ใช้ Clickable และรับข้อบ่งชี้ Ripple ได้ฟรี หากต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ขอบเขตสำหรับ Ripple คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยัง Clickable เป็นพารามิเตอร์การระบุ (I663b2, b/155375067)
นำการลบล้างที่เลิกใช้งานแล้วของ Composable FilledTextField ออก (I7f8f8)
เปลี่ยนชื่อออบเจ็กต์ปุ่ม (ที่มีค่าเริ่มต้นที่ฟังก์ชันปุ่มใช้) เป็น ButtonConstants (I7c5f7, b/159687878)
ตอนนี้ช่องเนื้อหาของปุ่มจะทำงานเป็นแถว (มีประโยชน์เมื่อคุณต้องการมีไอคอนพร้อมข้อความ โปรดดูตัวอย่างในปุ่มเกี่ยวกับวิธีเขียน) (I0ff10, b/158677863)
เราได้เลิกใช้งาน RadioGroup และ RadioGroupItem แล้ว ใช้ Box กับ Modifier.selectable, Row และ Column เพื่อสร้างชุดตัวเลือก RadioButton ที่เหมาะสมตามการออกแบบของคุณ (I7f5cf, b/149528535)
เพิ่ม Material Outlined Textfield (I1a518)
เลิกใช้งาน androidx.ui.foundation.TextFieldValue และ androidx.ui.input.EditorValue แล้ว นอกจากนี้ ยังมีการเลิกใช้งาน Composable TextField, FilledTextField และ CoreTextField ที่ใช้ประเภทดังกล่าวด้วย โปรดใช้ androidx.ui.input.TextFieldValue แทน (I4066d, b/155211005)
TabRow.TabPosition ไม่มีตำแหน่งใน Dp แต่ไม่มีใน IntPx (I34a07, b/158577776)
แทนที่การใช้งาน IntPx ด้วย Int แทนที่ IntPxPosition ด้วย IntOffset แทนที่ IntPxSize ด้วย IntSize (Ib7b44)
เพื่อรวมจำนวนคลาสที่ใช้เพื่อแสดงข้อมูลการปรับขนาด ให้กำหนดมาตรฐานการใช้คลาส Size แทน PxSize ซึ่งจะมอบประโยชน์ ของคลาสอินไลน์เพื่อใช้ประโยชน์จาก long ในการแพ็กค่าลอยตัว 2 ค่าเพื่อแสดง ความกว้างและความสูงที่แสดงเป็นค่าลอยตัว (Ic0191)
เลิกใช้งาน Modifier.ripple ตอนนี้ Clickable ใช้ Ripple เป็นข้อบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณเพียงแค่ใช้ Clickable และรับข้อบ่งชี้ Ripple ได้ฟรี หากต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ขอบเขตสำหรับ Ripple คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยัง Clickable เป็นพารามิเตอร์การระบุ (I101cd, b/155375067)
เราได้ปรับปรุง Scaffold API โดยเปลี่ยนชื่อพารามิเตอร์บางรายการและเพิ่มพารามิเตอร์ใหม่เพื่อให้ปรับแต่งได้ดียิ่งขึ้น เพิ่ม Getter เพื่อค้นหาขนาดของ Fab, TopBar และ BottomBar (I0e7ce)
เพิ่มคอมโพเนนต์ DropdownMenu ใน ui-material ซึ่งเป็นการติดตั้งใช้งานเมนู Material Design (I9bb3d)
อนุญาตให้แสดง/ซ่อนแป้นพิมพ์เสมือนด้วยตนเองโดยใช้ SoftwareKeyboardController (Ifb9d6, b/155427736)
เพิ่ม Modifier.indication ลงในแพ็กเกจพื้นฐานแล้ว ใช้เพื่อแสดงการกด/ลาก/การบ่งชี้อื่นๆ ในองค์ประกอบที่โต้ตอบได้ที่กำหนดเอง (I8425f, b/155287131)
การใช้งาน CanvasScope ที่รวมกัน ตอนนี้จึงมีเพียง DrawScope และ ContentDrawScope เปลี่ยนชื่อ CanvasScope เป็น DrawScope อัปเดต DrawScope เพื่อใช้ Density interface และระบุ LayoutDirection ลบคลาสย่อย DrawScope ใน ContentDrawScope อัปเดต Painter และ PainterModifier เพื่อไม่ให้รักษาพร็อพเพอร์ตี้ RTL ด้วยตนเองอีกต่อไป เนื่องจาก DrawScope มีพร็อพเพอร์ตี้นี้อยู่แล้ว โดยไม่ต้องระบุด้วยตนเอง (I1798e)
เปลี่ยนชื่อ Emphasis.emphasize() เป็น Emphasis.applyEmphasis() (Iceebe)
ตอนนี้ปุ่มที่ปิดใช้จะแสดงตามข้อกำหนดของ Material Design (I47dcb, b/155076924)
FilledTextField รองรับการดำเนินการ IME, การแปลงภาพ และประเภทแป้นพิมพ์ (I1f9cf, b/155075201)
เพิ่มพารามิเตอร์ strokeWidth ลงใน CircularProgressIndicator เพื่อปรับแต่งขนาดเส้น หากต้องการเปลี่ยนขนาดเส้น (ความสูง) ของ LinearProgressIndicator คุณสามารถใช้ Modifier.preferredHeight() หรือตัวปรับขนาดอื่นๆ ได้ (Icea16, b/154919081)
เพิ่มพารามิเตอร์ strokeWidth ลงใน CircularProgressIndicator เพื่อปรับแต่งขนาดเส้น หากต้องการเปลี่ยนขนาดเส้น (ความสูง) ของ LinearProgressIndicator คุณสามารถใช้ Modifier.preferredHeight() หรือตัวปรับขนาดอื่นๆ ได้ (Icea16, b/154919081)
เพิ่ม API ช่องสำหรับไอคอนท้ายและไอคอนนำใน FilledTextField และการจัดการสถานะข้อผิดพลาด (Ic12e0)
สีเริ่มต้นของ FAB และ Extended FAB เปลี่ยนเป็น MaterialTheme.colors.secondary แล้ว (I3b9b9, b/154118816)
แทนที่การใช้ Color ที่อนุญาตให้เป็น Null ทั้งหมดใน API ด้วย ที่ไม่ใช่ Null และใช้ Color.Unset แทน Null (Iabaa7)
เปลี่ยนชื่อ EdgeInsets เป็น InnerPadding เปลี่ยนชื่อพารามิเตอร์ innerPadding ของปุ่ม Material เป็น padding (I66165)
ตอนนี้แถบเลื่อนไม่มีสถานะแล้ว ผู้ใช้จะต้องส่งและอัปเดตสถานะด้วยตนเองเช่นเดียวกับในตัวควบคุมอื่นๆ (Ia00aa)
นำ StaticDrawer ออกแล้ว หากจำเป็น ให้ใช้ Box ที่มีความกว้างตามข้อกำหนดของ Material แทน (I244a7)
เพิ่มการใช้งาน Material Design ของช่องข้อความที่กรอก (Ic75cd)
เพิ่มพารามิเตอร์ตัวแก้ไขไปยัง ListItem และจัดเรียงพารามิเตอร์ใหม่เพื่อ โปรโมตเนื้อหาแลมบ์ดาต่อท้าย (I66e21)
เพิ่มพารามิเตอร์ตัวสร้าง defaultFontFamily ลงใน Typography เพื่อให้ระบุชุดแบบอักษรเริ่มต้นที่จะใช้กับ TextStyle ที่ระบุทั้งหมดซึ่งไม่ได้ตั้งค่าชุดแบบอักษรไว้ (I89d07)
นำตารางข้อมูลวัสดุออกจากพื้นผิว API ชั่วคราว (Iaea61)
เปลี่ยนชื่อพารามิเตอร์ใน Divider Composable (Ic4373)
เด็ก (Ia6d19)
นำ MaterialTheme.emphasisLevels ออก ให้ใช้ EmphasisAmbient.current แทนเพื่อเรียกข้อมูลระดับความสำคัญ (Ib5e40)
ระบบการกำหนดรูปแบบรูปร่างได้รับการอัปเดตตามข้อกำหนดของ Material Design ตอนนี้คุณสามารถระบุรูปร่างขนาดเล็ก กลาง และใหญ่เพื่อให้คอมโพเนนต์ส่วนใหญ่ใช้ได้ (Ifb4d1)
เปลี่ยน API ของ MaterialTheme เช่น MaterialTheme.colors(), MaterialTheme.typography() ให้เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน นำวงเล็บออกจากการเรียกที่มีอยู่ โดยคาดว่าจะไม่มีการเปลี่ยนแปลงลักษณะการทำงาน (I3565a)
ปรับโครงสร้าง API ของ FloatingActionButton เพื่อยอมรับ Composable Lambda แทน Primitive ดูตัวอย่างที่อัปเดตแล้วสำหรับข้อมูลการใช้งาน (I00622)
เพิ่มพารามิเตอร์
enabledลงในช่องทำเครื่องหมาย สวิตช์ และสลับได้ (I41c16)ตอนนี้ Ripple เป็นตัวปรับแต่งแล้ว แม้ว่า Clickable จะยังไม่ได้แปลง แต่การใช้งานที่แนะนําคือ
Clickable(onClick = { ... }, modifier = ripple())(Ie5200, b/151331852, b/150060763)ย้าย Surface และ Card จาก androidx.ui.material.surface ไปยัง androidx.ui.material (I88a6d, b/150863888)
ตอนนี้ปุ่ม, FloatingActionButton และ Clickable มี
enabledparam แยกกันแล้ว เราได้เปลี่ยนชื่อหรือจัดเรียงพารามิเตอร์บางรายการใน Button ใหม่ (I54b5a)เปลี่ยนชื่อ Image เป็น ImageAsset เพื่อให้แยกความแตกต่างระหว่างข้อมูล Image กับ Composable ของ Image ที่กำลังจะเปิดตัวซึ่งใช้ในการเข้าร่วมเลย์เอาต์และวาดเนื้อหาได้ดียิ่งขึ้น _Body:สร้างเมธอดส่วนขยายใน android.graphics.Bitmap, Bitmap.asImageAsset() เพื่อสร้างอินสแตนซ์ของ ImageAsset ที่มีประโยชน์สำหรับการรวมการพัฒนาแอปพลิเคชัน Android แบบเดิมเข้ากับเฟรมเวิร์ก Compose (Id5bbd)
นำ Snackbar API ที่มีพารามิเตอร์ String ออกเพื่อใช้โอเวอร์โหลดที่ยอมรับแลมบ์ดาที่ใช้ได้กับ Composable แทน ดูตัวอย่างที่อัปเดตแล้วสำหรับ ข้อมูลการใช้งาน (I55f80)
เปลี่ยนโครงสร้างภายในโค้ด Tab API เพื่อยอมรับแลมบ์ดา
textและicon(Ia057e)เพิ่มคอมโพเนนต์ BottomNavigation ดูเอกสารและตัวอย่างเพื่อดูข้อมูลการใช้งาน (I731a0)
เพิ่ม Icon, IconButton และ IconToggleButton โดยนำ AppBarIcon ออก คุณสามารถแทนที่การใช้งาน AppBarIcon ที่มีอยู่ด้วย IconButton ได้โดยตรง และตอนนี้ปุ่มดังกล่าวจะมีเป้าหมายการสัมผัสที่ถูกต้องแล้ว ดูตัวอย่างสำหรับ ข้อมูลการใช้งาน และดูไอคอนสำหรับไอคอน Material ที่ระบุ ซึ่งคุณใช้กับคอมโพเนนต์เหล่านี้ได้โดยตรง (I96849)
แทนที่ ButtonStyle ด้วยฟังก์ชันที่แตกต่างกันและนำการโอเวอร์โหลดข้อความ (สตริง) ออก ดูตัวอย่างที่อัปเดตแล้วสำหรับข้อมูลการใช้งาน (If63ab, b/146478620, b/146482131)
เปลี่ยนชื่อตัวปรับแต่ง
Borderเป็นDrawBorder(I8ffcc)LayoutCoordinates ไม่มีพร็อพเพอร์ตี้ตำแหน่งอีกต่อไป พร็อพเพอร์ตี้ position ไม่มีความหมายเมื่อพิจารณา LayoutModifiers, rotation หรือการปรับขนาด นักพัฒนาแอปควรใช้ parentCoordinates และ childToLocal() เพื่อคำนวณการเปลี่ยนจาก LayoutCoordinate หนึ่ง ไปยังอีก LayoutCoordinate หนึ่งแทน
LayoutCoordinates ใช้ IntPxSize สำหรับพร็อพเพอร์ตี้ขนาดแทน PxSize เลย์เอาต์ใช้ขนาดพิกเซลที่เป็นจำนวนเต็มสำหรับเลย์เอาต์ ดังนั้นขนาดเลย์เอาต์ทั้งหมด ควรใช้จำนวนเต็มและไม่ใช่ค่าทศนิยม (I9367b)
การเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบของ Ambient API ดูรายละเอียดได้ในบันทึกและ
Ambient<T>เอกสารประกอบ (I4c7ee, b/143769776)เพิ่มคอมโพเนนต์ Scaffold Material แล้ว การติดตั้งใช้งานโครงสร้างพื้นฐาน (I7731b)
แทนที่ DrawBorder ด้วยตัวแก้ไขเส้นขอบ (Id335a)
การแก้ไขข้อบกพร่อง
- เลิกใช้งาน FocusModifier แล้ว และแนะนำให้ใช้ Modifier.focus, Modifier.focusRequester, Modifier.focusObserver แทน เราเลิกใช้งาน FocusState และ FocusDetailedState แล้วเพื่อเปลี่ยนไปใช้ FocusState2 (I46919, b/160822875, b/160922136)
- เลิกใช้งาน VerticalScroller และ HoriziontalScroller แล้ว ใช้ ScrollableColumn และ ScrollableRow เพื่อสร้างประสบการณ์การใช้งานในตัวที่มีลักษณะการทำงานและพารามิเตอร์ของ Column/Row หรือ Modifier.verticalScroll และ Modifier.horizontalScroll ในองค์ประกอบของคุณเอง ในทำนองเดียวกัน เราได้เลิกใช้งาน ScrollerPosition เพื่อให้ใช้ ScrollState' แทน (I400ce, b/157225838, b/149460415, b/154105299)
- เราได้ปรับปรุง API ของ Modifier.draggable และ Modifier.scrollable ใหม่ เรานำ DragDirection ออกเพื่อใช้ Orientation แทน เราได้ปรับปรุงข้อกำหนดของรัฐสำหรับข้อความที่เลื่อนได้ให้ง่ายขึ้น เปลี่ยนชื่อ ScrollableState เป็น ScrollableController (Iab63c, b/149460415)
runOnIdleComposeเปลี่ยนชื่อเป็นrunOnIdle(I83607)- ตอนนี้พร็อพเพอร์ตี้ความหมายแบบค่าเดียวจะใช้รูปแบบการเรียก เช่น ตอนนี้ 'semantics { hidden = true }' จะเขียนเป็น 'semantics { hidden() }' (Ic1afd, b/145951226, b/145955412)
- เราได้เปลี่ยนชื่อ API การทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น เปลี่ยนชื่อ API ทั้งหมดที่ขึ้นต้นด้วย findXYZ เป็น onNodeXYZ เราได้เปลี่ยนชื่อ API ทั้งหมดที่ขึ้นต้นด้วย doXYZ เป็น performXYZ (I7f164)
- เราได้เปลี่ยน Transition API ให้แสดงผล TransitionState แทนการส่ง TransitionState ไปยังองค์ประกอบย่อย ซึ่งจะทำให้ API สอดคล้องกับ animate() API มากขึ้น (I24e38)
- เพิ่มคลาสหน่วย IntBounds ซึ่งแสดงขอบเขตพิกเซลจำนวนเต็มจากการจัดวาง เราได้อัปเดต API ของ PopupPositionProvider เพื่อให้ใช้งานได้แล้ว (I0d8d0, b/159596546)
- เพิ่มแฟล็กที่ไม่บังคับใหม่ useUnmergedTree ลงในเครื่องมือค้นหาการทดสอบ (I2ce48)
- นำ API สำหรับการทดสอบขนาดที่ล้าสมัยออกแล้ว (Iba0a0)
- นำคลาสอินไลน์ของ Shader ที่ ห่อหุ้มคลาสที่คาดไว้ของ NativeShader ออก เปลี่ยนชื่อ NativeShader เป็น Shader คลาสอินไลน์ Shader ที่ห่อไว้ไม่ได้เพิ่มสิ่งที่มีประโยชน์ใดๆ ให้กับพื้นผิว API และเป็นคลาสอินไลน์ ดังนั้นให้ใช้คลาส NativeShader โดยตรง (I25e4d)
- ตอนนี้ป๊อปอัป กล่องโต้ตอบ และเมนูจะรับค่า MaterialTheme ตามบริบท (Ia3665, b/156527485)
- ตอนนี้ Material DropdownMenu เลื่อนได้แล้ว (Ide699)
- นำพารามิเตอร์ทิศทางการจัดวางออกจากบล็อกการวัดของฟังก์ชัน Layout() อย่างไรก็ตาม คุณสามารถดูทิศทางเลย์เอาต์ได้ภายใน Callback ผ่านออบเจ็กต์ขอบเขตการวัด (Ic7d9d)
- ใช้ AnimationSpec แทน AnimationBuilder ใน API ระดับบนสุด เพื่ออธิบายแนวคิดของข้อกำหนดภาพเคลื่อนไหวแบบคงที่ - ปรับปรุง DSL การเปลี่ยนโดยการนำข้อกำหนด Lambda ออกสำหรับ การสร้าง AnimationSpec เช่น Tween, Spring แต่จะใช้พารามิเตอร์ของเครื่องมือสร้างโดยตรงแทน - ปรับปรุงความสะดวกในการใช้งาน AnimationSpec โดยรวมด้วยการเปิดตัว ตัวสร้างแทนการใช้ตัวสร้าง - เปลี่ยนระยะเวลาและการหน่วงเวลาสำหรับ KeyFrames และ Tween เป็น Int ซึ่งจะ ช่วยลดการแคสต์ประเภทที่ไม่จำเป็นและการโอเวอร์โหลดเมธอด (เพื่อ รองรับทั้ง Long และ Int) (Ica0b4)
- ปุ่มสลับจะปรากฏในสถานะที่ปิดใช้เมื่อตั้งค่า
enabledเป็น false (If4624, b/155941869, b/159331694) - เราเปลี่ยนชื่อ Modifier.tag เป็น Modifier.layoutId เพื่อไม่ให้สับสนกับ Modifier.testTag (I995f0)
- ตอนนี้ตำแหน่ง Int ของเส้นการจัดแนวที่ส่งกลับจาก Placeable#get(AlignmentLine) จะไม่ใช่ค่าว่างอีกต่อไป หากไม่มีบรรทัดการจัดแนวที่ค้นหา ระบบจะแสดงผล AlignmentLine.Unspecified (I896c5, b/158134875)
ปรับโครงสร้างคลาส Radius ให้เป็น คลาสอินไลน์ นำวิธีการสร้างรูปทรงเสริมออก เพื่อใช้ตัวสร้างฟังก์ชัน ที่มีพารามิเตอร์เริ่มต้นเพื่อให้รัศมี ตามแกน y ตรงกับพารามิเตอร์รัศมีแกน x ที่จำเป็น
อัปเดต DrawScope.drawRoundRect เพื่อใช้พารามิเตอร์ Radius เดียวแทนค่าทศนิยม 2 ค่าแยกกันสำหรับรัศมีตามแกน x และ y (I46d1b)
เพื่อรวมจำนวนคลาสที่ใช้เพื่อแสดงข้อมูลการวางตำแหน่ง ให้ใช้คลาส Offset แทน PxPosition ซึ่งจะมอบประโยชน์ ของคลาสอินไลน์เพื่อใช้ประโยชน์จาก long ในการแพ็กค่าทศนิยม 2 ค่าเพื่อแสดงออฟเซ็ต x และ y ที่แสดงเป็นทศนิยม (I3ad98)
แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการ ปรับโครงสร้างครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล ลบคลาส Px ทั้งหมด (I3ff33)
เลิกใช้งานคอมโพเนนต์ที่สลับได้แล้ว ใช้ Modifier.toggleable แทน (I35220, b/157642842)
แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างโค้ดครั้งใหญ่ เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I086f4)
แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการ ปรับโครงสร้างครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (Id3434)
แทนที่การใช้คลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I97a5a)
แก้ไขปัญหาที่ onClick ไม่ได้รับการเรียกใช้สำหรับ DropdonMenuItems (I3998b, b/157673259)
เลิกใช้งาน MutuallyExclusiveSetItem แล้ว โปรดใช้ Modifier.selectable แทน (I02b47, b/157642842)
ตอนนี้เราเลิกใช้งาน TestTag แล้ว โปรดใช้ Modifier.testTag แทน (If5110, b/157173105)
เคอร์เซอร์ของ TextField มีภาพเคลื่อนไหวแบบกะพริบ (Id10a7)
แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I19d02)
ตอนนี้ VerticalScroller มี Column ให้ใช้งานได้ทันที ตอนนี้ HorizontalScroller มี Row ให้ใช้งานได้ทันที (Ieca5d, b/157020670)
แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่ เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (Iede0b)
เราได้ยกเลิกการเลิกใช้งาน Modifier.semantics เพื่ออนุญาตให้ใช้กับคอมโพเนนต์ระดับสูง (I4cfdc)
มีการเปลี่ยนแปลง API ตัวแก้ไข DrawLayer โดยเปลี่ยนชื่อ outlineShape เป็น shape และมีค่าเริ่มต้นเป็น RectangleShape และตอนนี้เป็นแบบไม่เป็น Null แล้ว เปลี่ยนชื่อ clipToOutline เป็น clip และนำ clipToBounds ออกเนื่องจากเหมือนกับ clip == true ที่มี RectangleShape (I7ef11, b/155075735)
อัปเดต API Compose ระดับสูงขึ้น ที่แสดง Canvas เพื่อ แสดง CanvasScope แทน ซึ่งจะช่วยให้ผู้บริโภคไม่ต้องดูแลออบเจ็กต์ Paint ของตนเอง สำหรับผู้บริโภคที่ยังคงต้องเข้าถึง Canvas สามารถใช้วิธี drawCanvas extension ซึ่งมีฟังก์ชันเรียกกลับเพื่อออกคำสั่งวาดด้วย Canvas พื้นฐาน (I80afd)
เลิกใช้งาน AlignmentLineOffset Composable แล้ว โปรดใช้ตัวแก้ไข relativePaddingFrom() แทน นำ Composable CenterAlignmentLine ออกแล้ว (I60107)
มีการเปลี่ยนแปลง API ของ Lambda ต่อท้าย WithConstraints ตอนนี้แทนที่จะมี 2 พารามิเตอร์ ก็จะมีขอบเขตตัวรับซึ่งนอกเหนือจากข้อจำกัดและ layoutDirection แล้ว ยังมีพร็อพเพอร์ตี้ minWidth, maxWidth, minHeight และ maxHeight ใน Dp (I91b9a, b/149979702)
เพิ่มตัวแก้ไขเลย์เอาต์ defaultMinSizeConstraints ซึ่งจะตั้งค่าข้อจำกัดด้านขนาดให้กับเลย์เอาต์ที่ห่อไว้เฉพาะเมื่อไม่ได้ระบุข้อจำกัดที่เกี่ยวข้องที่เข้ามา (0 สำหรับข้อจำกัดขั้นต่ำและอนันต์สำหรับข้อจำกัดสูงสุด) (I311ea, b/150460257)
นำ FocusManagerAmbient ออกแล้ว ใช้ FocusModifier.requestFocus เพื่อรับโฟกัส (Ic4826)
สร้าง CanvasScope API ที่ครอบคลุมออบเจ็กต์ Canvas เพื่อแสดงพื้นผิว API การวาดภาพแบบประกาศที่ไม่มีสถานะ การเปลี่ยนรูปแบบจะอยู่ในขอบเขตของตัวรับสัญญาณเอง และข้อมูลการปรับขนาดจะอยู่ในขอบเขตของขอบเขตส่วนที่เว้นไว้ที่เกี่ยวข้องด้วย โดยไม่จำเป็นต้องให้ผู้ใช้ดูแลออบเจ็กต์สถานะ Paint ของตนเองเพื่อกำหนดค่าการดำเนินการวาด
เพิ่ม CanvasScopeSample รวมถึง อัปเดตแอปเดโมให้มีเดโมกราฟิกแบบประกาศ (Ifd86d)
เพิ่มการปรับแต่งสีเคอร์เซอร์ลงใน TextField (I6e33f)
ตอนนี้ TextFieldValue ที่ใช้กับ TextField จะยังคงอยู่เมื่อมีการสร้างกิจกรรมใหม่เมื่อใช้ในลักษณะนี้
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }(I5c3ce, b/155075724)เปลี่ยนชื่อ LayoutModifier2 เป็น LayoutModifier (Id29f3)
นำอินเทอร์เฟซ LayoutModifier ที่เลิกใช้งานแล้วออก (I2a9d6)
แทนที่พารามิเตอร์ focusIdentifier ของ CoreTextField/TextField ด้วย FocusNode เพื่อผสานรวมกับระบบย่อยโฟกัส (I7ea48)
ฟังก์ชันการวัดค่าโดยธรรมชาติใน Layout และ LayoutModifier2 มีตัวรับ IntrinsicMeasureScope แล้ว ซึ่งมี API การค้นหาค่าโดยธรรมชาติพร้อมทิศทางการจัดวางที่ส่งต่อโดยนัย (Id9945)
เพิ่ม Modifier.zIndex() ใหม่เพื่อควบคุมลำดับการวาดขององค์ประกอบย่อยภายในเลย์เอาต์หลักเดียวกัน เปลี่ยนชื่อพร็อพเพอร์ตี้ elevation ใน DrawLayerModifier เป็น shadowElevation และจะไม่ควบคุมลำดับการวาดอีกต่อไป มีการเปลี่ยนลำดับพารามิเตอร์ของ DrawShadow โดยตอนนี้ค่าระดับความสูงจะเป็นค่าแรก และรูปร่างจะเป็นค่าที่ 2 โดยมี RectangleShape เป็นค่าเริ่มต้น (I20150, b/152417501)
ย้าย RectangleShape จาก androidx.ui.foundation.shape.* ไปยัง androidx.ui.graphics.* (Ia74d5, b/154507984)
การอัปเดต API ของ TextField - ผสานรวมฟังก์ชันเรียกกลับ onFocus และ onBlur เป็นฟังก์ชันเรียกกลับ onFocusChange(Boolean) เดียวที่มีพารามิเตอร์ (I66cd3)
เพิ่มพารามิเตอร์ verticalGravity และ horizontalGravity ลงใน Row และ Column ตามลำดับ (I7dc5a)
อัปเดต wrapContentWidth และ wrapContentHeight เพื่อให้คาดหวังการจัดแนวแนวตั้งหรือแนวนอนแทนที่จะเป็นการจัดแนวใดก็ได้ เราได้อัปเดตตัวแก้ไขแรงโน้มถ่วงเพื่อให้ยอมรับการจัดแนวแนวตั้งหรือแนวนอน อัปเดตแถว คอลัมน์ และกองซ้อนให้รองรับการจัดแนวต่อเนื่องที่กำหนดเองแล้ว (Ib0728)
สร้าง PixelMap API เพื่อรองรับ การค้นหาข้อมูลพิกเซลจาก ImageAsset (I69ad6)
นำ ProvideContentColor ออก แล้วใช้ ContentColorAmbient โดยตรงกับ
Providers(Iee942) แทนเปลี่ยนชื่อโมดูล ui-text-compose เป็น ui-text แล้ว ตอนนี้ ui-text มี Composable ของ CoreText และ CoreTextField (Ib7d47)
เปลี่ยนชื่อโมดูล ui-text เป็น ui-text-core (I57dec)
ย้าย Composable ui-framework/CoreText, CoreTextField ไปไว้ภายใต้ ui-text-compose คุณอาจต้องรวม ui-text-compose ไว้ในโปรเจ็กต์ (I32042)
ปรับปรุง DrawModifier API:
- สร้างขอบเขตตัวรับสำหรับ draw() ContentDrawScope
- นำพารามิเตอร์ทั้งหมดใน draw() ออกแล้ว
- DrawScope มีอินเทอร์เฟซเหมือนกับ CanvasScope รุ่นก่อน
- ContentDrawScope มีเมธอด drawContent() (Ibaced, b/152919067)
runOnIdleComposeและrunOnUiThreadตอนนี้เป็นฟังก์ชันส่วนกลางแล้ว แทนที่จะเป็นเมธอดใน ComposeTestRule (Icbe8f)[Mutable]State property delegate operators moved to extensions to support Kotlin 1.4 property delegate optimizations. ผู้โทรต้องเพิ่ม imports เพื่อใช้
by state { ... }หรือby mutableStateOf(...)ต่อไป (I5312c)เพิ่ม positionInParent และ boundsInParent สำหรับ LayoutCoordinates (Icacdd, b/152735784)
เลิกใช้งาน ColoredRect แล้ว โปรดใช้ Box(Modifier.preferredSize(width, height).drawBackground(color)) แทน (I499fa, b/152753731)
เปลี่ยนชื่อ LayoutResult เป็น MeasureResult (Id8c68)
เพิ่ม LayoutModifier2 ซึ่งเป็น API ใหม่สําหรับกําหนดตัวแก้ไขเลย์เอาต์ เลิกใช้งาน LayoutModifier (If32ac)
แทนที่ตัวแก้ไขและตัวดำเนินการด้วยฟังก์ชันส่วนขยายของโรงงาน (I225e4)
ย้าย Draggable ไปยังตัวแก้ไขแล้ว (Id9b16, b/151959544)
เลิกใช้งาน Composable ของ ParentData แล้ว คุณควรสร้างตัวแก้ไขที่ใช้การเชื่อมต่อ ParentDataModifier หรือใช้ตัวแก้ไข LayoutTag หากเพียงต้องการติดแท็กองค์ประกอบย่อยของเลย์เอาต์เพื่อจดจำองค์ประกอบเหล่านั้นภายในบล็อกการวัด (I51368, b/150953183)
เลิกใช้งาน Composable ของ Center แล้ว ควรแทนที่ด้วยตัวแก้ไข LayoutSize.Fill + LayoutAlign.Center หรือด้วย Composable Box หรือ Stack รายการใดรายการหนึ่งที่มีตัวแก้ไขที่เหมาะสม (Idf5e0)
เพิ่ม VectorPainter API เพื่อ แทนที่ Subcomposition API ที่มีอยู่สำหรับ กราฟิกแบบเวกเตอร์ ผลลัพธ์ขององค์ประกอบย่อย คือออบเจ็กต์ VectorPainter แทนที่จะเป็น DrawModifier เลิกใช้งาน DrawVector composables ก่อนหน้าเพื่อใช้ VectorPainter
เปลี่ยนชื่อ Image(Painter) API เป็น PaintBox(Painter) สร้าง Composable แบบเวกเตอร์ที่ทำงานเหมือน Composable ของรูปภาพ แต่ใช้ VectorAsset แทน ImageAsset (I9af9a, b/149030271)
เปลี่ยนชื่อ LayoutFlexible เป็น LayoutWeight เปลี่ยนชื่อพารามิเตอร์ "แน่น" เป็น "เติม" (If4738)
นำ RepaintBoundary ออกเพื่อใช้ DrawLayerModifier แทน (I00aa4)
DrawVector ได้รับการเปลี่ยนแปลงจากฟังก์ชันที่ประกอบกันได้ตามปกติ เป็นการแสดงผลตัวปรับแต่ง drawVector() ที่ จะวาดเวกเตอร์เป็นพื้นหลังของเลย์เอาต์ (I7b8e0)
ฟังก์ชันที่ประกอบกันได้ Opacity ถูกแทนที่ ด้วยตัวแก้ไข drawOpacity (I5fb62)
แทนที่ฟังก์ชันที่ประกอบกันได้ Clip ด้วยตัวแก้ไข drawClip() DrawClipToBounds เป็นตัวแก้ไขที่สะดวก ในการใช้เมื่อคุณต้องการตัดเฉพาะขอบเขตเลเยอร์ ด้วยรูปร่างสี่เหลี่ยมผืนผ้า (If28eb)
แทนที่ฟังก์ชันที่ประกอบกันได้ DrawShadow ด้วยตัวแก้ไข drawShadow() ตอนนี้ระบบจะวาดเงาเป็นส่วนหนึ่งของ LayerModifier แล้ว (I0317a)
เพิ่ม LayerModifier ซึ่งเป็นตัวแก้ไขที่อนุญาต ให้เพิ่ม RenderNode สำหรับเลย์เอาต์ ซึ่งช่วยให้ตั้งค่า การครอบตัด ความทึบ การหมุน การปรับขนาด และเงาได้ ซึ่งจะแทนที่ RepaintBoundary (I7100d, b/150774014)
ย้าย androidx.compose.ViewComposer ไปยัง androidx.ui.node.UiComposer แล้ว นำ androidx.compose.Emittable ออกแล้ว เนื่องจากซ้ำซ้อนกับ ComponentNode. androidx.compose.ViewAdapters จึงถูกนำออก และไม่ได้เป็นกรณีการใช้งานที่รองรับอีกต่อไป เลิกใช้งาน Compose.composeInto แล้ว โปรดใช้
setContentหรือsetViewContentแทน เลิกใช้งาน Compose.disposeComposition แล้ว โปรดใช้เมธอดdisposeในCompositionที่setContentแสดงผลแทน androidx.compose.Compose.subcomposeInto ย้ายไปที่ androidx.ui.core.subcomposeInto แล้ว เปลี่ยนชื่อ ComponentNode#emitInsertAt เป็น ComponentNode#insertAt แล้ว เปลี่ยนชื่อ ComponentNode#emitRemoveAt เป็น ComponentNode#removeAt แล้ว เปลี่ยนชื่อ ComponentNode#emitMode เป็น ComponentNode#move แล้ว (Idef00)Created Image composable to handle sizing/layout in addition to drawing a given ImageAsset to the screen. Composable นี้ยังรองรับการวาดอินสแตนซ์ Painter ใดก็ได้โดยคำนึงถึงขนาดโดยธรรมชาติ รวมถึงรองรับขนาดคงที่หรือขนาดขั้นต่ำที่กำหนด (Ibcc8f)
เลิกใช้งาน Composable Wrap แล้ว สามารถแทนที่ได้ด้วยตัวแก้ไข LayoutAlign หรือด้วยฟังก์ชันที่ประกอบกันได้ Stack (Ib237f)
WithConstraints มีพารามิเตอร์ LayoutDirection (I6d6f7)
ทำให้มีการส่งต่อทิศทางเลย์เอาต์จากโหนดเลย์เอาต์หลักไปยังโหนดย่อย เพิ่มตัวปรับแต่งทิศทางเลย์เอาต์ (I3d955)
คอมโพเนนต์ Stack รองรับทิศทางจากขวาไปซ้าย (Ic9e00)
นำ Composable DrawShape ออกแล้ว ใช้ตัวแก้ไข DrawBackground แทน (I7ceb2)
รองรับทิศทางจากขวาไปซ้ายในตัวแก้ไข LayoutPadding (I9e8da)
เพิ่ม AdapterList ซึ่งเป็นคอมโพเนนต์รายการแบบเลื่อนที่ จัดองค์ประกอบและวางรายการที่มองเห็นได้เท่านั้น ปัญหาที่ทราบในปัจจุบัน คือมีเฉพาะแนวตั้งและไม่สามารถจัดการการเปลี่ยนแปลงทั้งหมด ในกรณีที่เปลี่ยนแปลงองค์ประกอบย่อย (Ib351b)
อัปเดตแฟล็ก
ComposeFlags.COMPOSER_PARAMเป็นtrueซึ่งจะเปลี่ยนกลยุทธ์การสร้างโค้ดสำหรับปลั๊กอิน Compose ในระดับสูง การดำเนินการนี้จะทำให้มีการสร้างฟังก์ชัน @Composable พร้อมพารามิเตอร์สังเคราะห์เพิ่มเติม ซึ่งจะส่งผ่านไปยังการเรียก @Composable ที่ตามมาเพื่อให้รันไทม์จัดการการดำเนินการได้อย่างเหมาะสม นี่เป็นการเปลี่ยนแปลงที่สำคัญในไบนารี แต่ควรคงความเข้ากันได้ระดับแหล่งที่มาในการใช้งาน Compose ที่ได้รับอนุญาตทั้งหมด (I7971c)เพิ่มคอมโพเนนต์ Canvas แล้ว Composable นี้ใช้พื้นที่บางส่วน (ผู้ใช้ระบุ) และช่วยให้คุณวาดโดยใช้ CanvasScope (I0d622) ได้
เราได้รวม Density และ DensityScope เข้าไว้ในอินเทอร์เฟซเดียว ตอนนี้คุณใช้ DensityAmbient.current แทน ambientDensity() ได้แล้ว แทนที่จะใช้ withDensity(density) ให้ใช้ with(density) (I11cb1)
เปลี่ยน LayoutCoordinates เพื่อให้ providedAlignmentLines เป็น Set แทนที่จะเป็น Map และให้ LayoutCoordinates ใช้โอเปอเรเตอร์ get() แทนสำหรับการดึงค่า ซึ่งจะช่วยให้ผู้แก้ไขแก้ไขค่าอย่างน้อย 1 ค่าของชุดได้ง่ายขึ้นโดยไม่ต้องสร้างคอลเล็กชันใหม่สำหรับผู้แก้ไขแต่ละราย (I0245a)
ตอนนี้ Scroller จะแสดงลักษณะการทำงานของการปัดแบบเนทีฟของ Android (I922af, b/147493715)
การปรับปรุงแพลตฟอร์ม API ของข้อจํากัด (I0fd15)