เขียนเนื้อหา
androidx.compose.material
androidx.compose.material.icons
(ดูเอกสารอ้างอิง API สำหรับแพ็กเกจ Compose ทั้งหมด)
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
|---|---|---|---|---|
| 22 ตุลาคม 2025 | 1.9.4 | - | 1.10.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 | องค์ประกอบพื้นฐานของ Compose UI ที่จำเป็นต่อการโต้ตอบกับอุปกรณ์ ซึ่งรวมถึงเลย์เอาต์ การวาด และอินพุต |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มการอ้างอิงใน Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับ
แอปหรือโมดูล
Groovy
dependencies { implementation "androidx.compose.material:material:1.9.4" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.9.4") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.10
เวอร์ชัน 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.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 หากต้องการเรียกใช้การตรวจสอบ Lint ของ Compose ภายใน IDE คุณต้องใช้ Android Studio Ladybug หรือเวอร์ชันที่ใหม่กว่า
การเปลี่ยนแปลง 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หากต้องการเรียกใช้การตรวจสอบ Lint ของ Compose ภายใน IDE คุณต้องใช้ Android Studio Ladybug หรือเวอร์ชันที่ใหม่กว่า
การเปลี่ยนแปลง 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 หากต้องการเลือกไม่ใช้ลักษณะการทำงานนี้ คุณสามารถนำการอ้างอิงใน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.bottomSheetใหม่เพื่อสร้าง 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 ที่ใช้ร่วมกันได้แทน (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 มีคอมมิตต่อไปนี้
- การอัปเดตการขึ้นต่อกัน
เวอร์ชัน 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
- เปิดตัว Flag ชั่วคราวเพื่อควบคุมว่า 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 ไม่รองรับระยะขอบโดยค่าเริ่มต้นและควรส่งค่าด้วยตนเอง ซึ่งแตกต่างจากคอมโพเนนต์ 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
- เราได้เลิกใช้งาน API ของ
Swipeableของ 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จะแสดงเป็นค่า FloatanimateToและsnapToเป็นข้อมูลภายใน โปรดใช้expand()และcollapse()แทน นำdirectionและoverflowออกแล้วoffsetถูกแทนที่ด้วยrequireOffset()แล้ว I323b4 - ทําเครื่องหมายฟังก์ชัน
snapToใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีแทร็กสำหรับตัวบ่งชี้ความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับตัวบ่งชี้ความคืบหน้าทั้งแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
ModalBottomSheetState,ModalBottomSheetState.SaverและrememberModalBottomSheetState'sconfirmStateChangeเป็นconfirmValueChange(Ib48d1) - เพิ่ม
Modifier.minimumInteractiveComponentSizeโดยสามารถใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบแบบสัมผัสได้หากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ใน
ModalBottomSheetLayoutanimateTo ของModalBottomSheetStateไม่รับพารามิเตอร์animationSpecอีกต่อไป และตอนนี้ออฟเซ็ตที่แสดงเป็นค่าที่กำหนดให้เป็น Null ได้ ใช้requireOffsetเพื่อกำหนดให้ต้องมีการชดเชย (Ia2e79) - เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility(I8f206) - การเปลี่ยนแปลงที่รวมไว้ใน Swipeable API ใน
ModalDrawer. DrawerStateของanimateToถูกแทนที่ด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซ็ตเป็นค่า Null ได้แล้ว ใช้requireOffsetเพื่อกำหนดให้ต้องมีการชดเชย (I3de9e) - อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
- เพิ่มพารามิเตอร์
minLinesลงในข้อความ Material และ Material3TextFieldและ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 ใน
ModalDrawerระบบได้แทนที่animateToของDrawerStateด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซ็ตเป็นค่าที่กำหนดให้เป็น Null ได้แล้ว ใช้requireOffsetเพื่อกำหนดให้ต้องมีการชดเชย (I3de9e) - เพิ่มพารามิเตอร์
minLinesลงในข้อความ Material และ Material3TextFieldและ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จะแสดงเป็นค่า FloatanimateToและ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ใน Surface ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการข้ามตามความหมายเชิงความหมายขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379) - ทําเครื่องหมายฟังก์ชัน
snapToใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีแทร็กสำหรับตัวบ่งชี้ความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับตัวบ่งชี้ความคืบหน้าทั้งแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
ModalBottomSheetState,ModalBottomSheetState.SaverและrememberModalBottomSheetState'sconfirmStateChangeเป็น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 ในModalDrawerระบบได้แทนที่animateToของDrawerStateด้วยเมธอดopenและcloseแล้ว และตอนนี้ออฟเซ็ตเป็นค่าที่กำหนดให้เป็น Null ได้ ใช้requireOffsetเพื่อกำหนดให้ต้องมีการชดเชย (I3de9e) - เพิ่ม Modifier API เพื่อค้นหาข้อมูลการเลื่อนขององค์ประกอบระดับบน (I2ba9d, b/203141462)
- ใช้ใน
Clickableเพื่อหน่วงเวลาการโต้ตอบการกดอย่างถูกต้อง เมื่อท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน - แก้ไขปัญหาที่
Clickablesไม่หน่วงการกระเพื่อมอย่างถูกต้องเมื่อใช้ภายในScrollable ViewGroup - อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
PullRefreshIndicatorอาจค้างหลังจากเรียกใช้onRefreshหากไม่ได้เปลี่ยนสถานะการรีเฟรชเป็นจริง (Ie2416, b/248274004)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ 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 และ Material3TextFieldและOutlinedTextFieldซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d) - เพิ่มพารามิเตอร์
minLinesลงในBasicTexและ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
- เปลี่ยนชื่อพารามิเตอร์จากค่าเป็นค่าใน
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จะพิจารณาสถานะของชีตเมื่อวางแถบข้อความด้วย โดยในสถานะยุบ แถบข้อความจะอยู่เหนือชีตและ FAB ส่วนในสถานะขยาย แถบข้อความจะยึดกับด้านล่างของชีต (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)
- การอัปเดต Material 2 Surface API ที่เพิ่มฟังก์ชันที่โอเวอร์โหลดเพิ่มเติมสำหรับ 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ปัญหาการตัดข้อความอันเป็นผลมาจาก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ที่อนุญาตให้รายงานเวลาคอมไพล์เมื่อมีการเรียกใช้ฟังก์ชันที่ใช้ร่วมกันซึ่งกำหนดเป้าหมายไปยังแอปพลิเคชันที่ไม่ได้ออกแบบมาเพื่อใช้ในกรณีส่วนใหญ่ ปลั๊กอินคอมไพเลอร์ Compose จะอนุมานคำอธิบายประกอบได้ ดังนั้นการใช้คำอธิบายประกอบเหล่านี้โดยตรงจึงไม่ค่อยเกิดขึ้น กรณีที่อนุมานไม่ได้ ได้แก่ การสร้างและ การใช้ตัวปรับแต่งที่กำหนดเอง ฟังก์ชันที่ประกอบกันได้แบบนามธรรม (เช่น เมธอดอินเทอร์เฟซ) ฟิลด์ หรือตัวแปรส่วนกลางที่เป็น แลมบ์ดาที่ประกอบกันได้ (ระบบจะอนุมานตัวแปรและพารามิเตอร์ภายใน) หรือเมื่อใช้
ComposeNodeหรือฟังก์ชันที่ประกอบกันได้ที่เกี่ยวข้องสำหรับฟังก์ชันที่กำหนดเองที่เรียกใช้ฟังก์ชันที่ใช้ร่วมกันได้
ComposeNodeหรือReusableComposeNodeจะต้องเพิ่มCompoableTargetคำอธิบายประกอบสำหรับฟังก์ชันและประเภทพารามิเตอร์แลมบ์ดาที่ใช้ร่วมกันได้ อย่างไรก็ตาม เราขอแนะนำ ให้สร้างคำอธิบายประกอบที่มีคำอธิบายประกอบเป็น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 มีคอมมิตต่อไปนี้
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ขึ้นอยู่กับ Kotlin
1.6.10
การมีส่วนร่วมภายนอก
- ตอนนี้
ModalBottomSheetStateมีธงisSkipHalfExpandedแล้ว คุณตั้งค่าผ่านเครื่องมือสร้างหรืออัปเดตในภายหลังได้โดยตั้งค่าพร็อพเพอร์ตี้isSkipHalfExpandedของModalBottomSheetStateเป็น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 Components และมีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง 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 Components และมีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง 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 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขรัศมีมุมที่ใช้กับ
Checkbox(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 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้ Ripple รองรับสถานะการวางเมาส์และการโฟกัสแล้ว ดังนั้นการวางเมาส์ / การโฟกัสคอมโพเนนต์ เช่น ปุ่ม จะแสดงการซ้อนทับสถานะที่ถูกต้อง
เวอร์ชัน 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 to respectDp.Hairlineสำหรับพารามิเตอร์ความหนา เพื่อรองรับการวาดตัวคั่นแบบพิกเซลเดียว โดยไม่คำนึงถึงความหนาแน่นของจอแสดงผล (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 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- อัปเดตให้ขึ้นอยู่กับ Kotlin
1.5.31
เวอร์ชัน 1.0.3
29 กันยายน 2021
androidx.compose.material:material-*:1.0.3 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.3 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- อัปเดตให้ขึ้นอยู่กับ 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 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- อัปเดตให้ขึ้นอยู่กับ 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เป็น false เพื่อลบล้างลักษณะการทำงานนี้ (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 ตัวเพื่อระบุว่าควรติดแฟล็กวิธีนี้เป็น "มาแรง" "สตาร์ทอัป" หรือ "หลังสตาร์ทอัป" หรือไม่<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)- เพิ่มการ์ดใหม่ที่โอเวอร์โหลดซึ่งจัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ การระบุ, InteractionSource, เปิด/ปิด เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ
Modifier.clickableเนื่องจากในกรณีดังกล่าว การ์ดจะไม่ตัดการระบุการกระเพื่อม
- เพิ่มการ์ดใหม่ที่โอเวอร์โหลดซึ่งจัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ การระบุ, InteractionSource, เปิด/ปิด เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ
- การเปลี่ยนแปลงพฤติกรรม: ตอนนี้ 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 Thread จะโหลดอยู่ เช่น เมื่อไปยังส่วนต่างๆ ของหน้าจอ การเปลี่ยนแปลงนี้ไม่ได้เปลี่ยนพื้นผิว 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)
- ตอนนี้องค์ประกอบย่อยของแถวและคอลัมน์ที่มีน้ำหนัก(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)
- ตัวแก้ไขสำหรับการปรับขนาดให้ตรงกับขนาดที่แท้จริงไม่ได้อยู่ในขั้นทดลองอีกต่อไป (I15744)
- นำการยืนยัน dp ออก (I798d2)
- นำการเรียกกลับ SoftwareKeyboardController ออกจากฟิลด์ข้อความทั้งหมด เพื่อแทนที่ด้วย API ใหม่ในเร็วๆ นี้ (Iae869, b/168778053)
- ตอนนี้แลมบ์ดาการดำเนินการของ Switch, Checkbox และ RadioButton เป็นค่าว่างได้แล้ว อัปเดตตัวอย่างช่องทําเครื่องหมายในแถวที่คลิกได้เพื่อใช้ฟีเจอร์นี้ (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 เหล่านั้นจะเรียกใช้เฉพาะ@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)
ย้ายการปฐมนิเทศไปไว้ในแพ็กเกจพื้นฐานแล้ว VelocityTracker ย้ายจาก ui.gesture ไปยัง ui.input.pointer (Iff4a8, b/175294473)
ตอนนี้ drawerState.open() และ drawerState.close() เป็นฟังก์ชันที่ระงับแล้ว ใช้ rememberCoroutineScope() เพื่อรับขอบเขตของการจัดองค์ประกอบเพื่อเรียกใช้ (I16f60, b/175294473)
เปลี่ยนชื่อ Providers เป็น CompositionLocalProvider แล้ว
- ตัวสร้างองค์ประกอบไม่รับพารามิเตอร์คีย์อีกต่อไปและเลิกใช้งานแล้ว
- currentCompositeKeyHash ได้รับการเปลี่ยนให้เป็นพร็อพเพอร์ตี้ระดับบนสุดที่ประกอบกันได้แทนที่จะเป็นฟังก์ชันระดับบนสุดที่ประกอบกันได้
- ย้าย CompositionData และ CompositionGroup ไปยังเนมสเปซ androidx.compose.runtime.tooling แล้ว
- เราได้เปลี่ยน ComposableLambda ให้เป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
- เราได้เปลี่ยน ComposableLambdaN ให้เป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
- ฟังก์ชัน snapshotFlow ย้ายไปที่เนมสเปซ androidx.compose.runtime แล้ว
- วิธีการผสานของ SnapshotMutationPolicy ไม่ใช่เวอร์ชันทดลองอีกต่อไป
- ระบบได้นำฟังก์ชัน
@TestOnlyclearRoots ระดับบนสุดออกแล้ว ไม่จำเป็นอีกต่อไป - ระบบได้นำฟังก์ชัน 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)
ทำการเปลี่ยนแปลง Material 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 module แล้ว (Icf416)
- เราได้นำเมธอด Destructuring และ copy() ออกจาก คลาสหลายคลาสซึ่งไม่ค่อยมีการใช้งาน (I26702, b/178659281)
- ทำให้ halfExpand() และ expand() ใน ModalBottomSheetState เป็นแบบภายใน (Ic914e)
- เปลี่ยน Indication#createInstance เป็น @Composable และเปลี่ยน LocalIndication ให้มี Indication ไม่ใช่ () -> Indication (I5eeea, b/157150564)
- ย้าย AlertDialog และ DropdownMenu ให้ใช้ได้เฉพาะใน Android ในตอนนี้ เพิ่มพารามิเตอร์ PopupProperties ลงใน DropdownMenu เพื่อกำหนดค่าป๊อปอัปพื้นฐานเพิ่มเติม (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 }composable ออกไปก่อนหน้านี้และตอนนี้เราแนะนำให้ใช้remember { mutableStateOf(0) }เราจะนำsavedInstanceState { 0 }composable ออก คุณควรใช้rememberSaveable { mutableStateOf(0) }แทน และระบบจะบันทึกและกู้คืนโดยอัตโนมัติหากจัดเก็บประเภทที่ใช้ภายใน MutableState ไว้ใน Bundle ได้ หากก่อนหน้านี้คุณส่งออบเจ็กต์โปรแกรมบันทึกที่กำหนดเอง ตอนนี้คุณต้องใช้การโอเวอร์โหลดใหม่ของ 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ของแท็บที่เปลี่ยนแปลง และพารามิเตอร์labelของ BottomNavigationItem ให้เป็นค่าที่กำหนดให้เป็น Null ได้ เพื่อสื่อถึงลักษณะการทำงานของคอมโพเนนต์ได้ดียิ่งขึ้นเมื่อมีการระบุพารามิเตอร์เหล่านี้หรือไม่ระบุ เนื่องจากพารามิเตอร์เหล่านี้ส่งผลต่อขนาดและเลย์เอาต์ของคอมโพเนนต์ หากปัจจุบันคุณส่งemptyContent()เพื่อระบุว่าไม่มีข้อความ / ไอคอน / ป้ายกำกับ คุณควรใช้nullแทน (I57ed4)เปลี่ยนชื่อพารามิเตอร์ colorColorFor เป็น 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เพิ่มเมธอดจากโรงงานcreateEmptyComposeRule()ซึ่งจะแสดงผลComposeTestRuleและไม่เปิดใช้กิจกรรมให้คุณ ใช้เมื่อต้องการเปิดใช้กิจกรรมระหว่างการทดสอบ เช่น ใช้ActivityScenario.launch(I9d782, b/174472899)คุณปรับแต่ง Ripple ที่ใช้ใน Button และ 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)ระบบจะแทนที่ระยะเวลาและเวลาทำงานด้วยมิลลิวินาทีแบบยาว และขั้นตอนนี้จะนำการขึ้นต่อกันของอินพุตพอยน์เตอร์ในคลาสเหล่านั้นออก (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)
อัปเดต API กราฟิกเวกเตอร์ เพื่อรองรับการแยกวิเคราะห์การปรับสี ที่ใช้กับรูทของกราฟิกเวกเตอร์ (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() = ...ไวยากรณ์ที่ถูกต้องในปัจจุบันสำหรับการดำเนินการนี้คือการใส่คำอธิบายประกอบให้กับตัวรับของพร็อพเพอร์ตี้ ดังนี้
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 ในเวลาที่ทำการ 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 เพื่อให้มี 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 เพิ่ม typealias ของ VectorAssetBuilder เพื่อ ลิงก์ไปยัง ImageVector.Builder เพื่อความเข้ากันได้ (Icfdc8)
- เปลี่ยนชื่อ ImageAsset และ เมธอดที่เกี่ยวข้องเป็น ImageBitmap (Ia2d99)
- ย้ายพร็อพเพอร์ตี้ความหมายของรากฐานไปยัง UI (I6f05c)
fun RippleIndication()เลิกใช้งานแล้วและแทนที่ด้วยrememberRippleIndication()เพื่อให้สอดคล้องกับ API อื่นๆ (Id8e2c)- เพิ่มพารามิเตอร์ singleLine ลงใน BasicTextField, TextField และ OutlinedTextField ตั้งค่าพารามิเตอร์นี้เป็น true เพื่อให้ช่องข้อความเป็นบรรทัดเดียวที่เลื่อนได้ในแนวนอน (I57004, b/168187755)
การแก้ไขข้อบกพร่อง
- เพิ่มการดำเนินการทางความหมาย Dismiss (I2b706)
- ย้าย DrawModifier API จากแพ็กเกจ 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 สำหรับพารามิเตอร์ตัวแก้ไขในฟังก์ชันที่ใช้ร่วมกันได้ การตรวจสอบ 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) - มีการเปลี่ยนชื่ออาร์กิวเมนต์เชิงความหมาย mergeAllDescendants เป็น mergeDescendants (Ib6250)
- การควบคุมเวลาในการทดสอบ (TestAnimationClock และการใช้งาน) อยู่ในระยะทดลองแล้ว (I6ef86, b/171378521)
- นำโมดูล ui-test เก่าและ Stub ออก (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 แทน เพื่อให้ระบุได้ดียิ่งขึ้นว่า API ที่ใช้ได้ภายในใช้ "remember" เพื่อคงข้อมูลไว้ในคอมโพสิท (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 ซึ่งช่วยให้ปรับแต่ง / ปิดใช้การซ้อนทับระดับความสูงเริ่มต้นที่ใช้กับ Surface ในธีมมืดได้ (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 ด้วยเมธอดการเปลี่ยนรูปแบบที่กำหนดขอบเขต เพื่อระบุว่า การเปลี่ยนรูปแบบจะใช้ภายใน การเรียกกลับเท่านั้น และจะนำออกหลังจากเรียกใช้การเรียกกลับแล้ว
- อัปเดตเอกสารประกอบ 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 ที่เลิกใช้งานไปก่อนหน้านี้ออกแล้ว ใช้แถวและ 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 ซึ่งเป็น Lambda (DismissDirection) -> ThresholdConfig (Ie1080)
- แถบเลื่อนมีสีเพิ่มเติมสำหรับการปรับแต่งแบบละเอียด (I73e64, b/161810475)
- เปลี่ยนชื่อพารามิเตอร์สีของการ์ดเป็น backgroundColor (I01fc1, b/161809546)
- ตอนนี้สแน็กบาร์มีสีพื้นหลังและเนื้อหาที่ปรับแต่งได้แล้ว (I238f2, b/161804381)
- เพิ่มพารามิเตอร์การปรับแต่งตัวแก้ไข, backgroundColor, contentColor และ scrimColor ลงใน Drawer แล้ว (I23655, b/161804378)
- ตอนนี้เราเลิกใช้งาน
state { ... }ที่ใช้ร่วมกันได้แล้วเพื่อเปลี่ยนไปใช้ การเรียกremember { mutableStateOf(...) }อย่างชัดเจนเพื่อความชัดเจน ซึ่งจะช่วยลดพื้นผิว API โดยรวมและจำนวนแนวคิดสำหรับการจัดการสถานะ รวมถึงตรงกับรูปแบบby mutableStateOf()สำหรับการมอบสิทธิ์พร็อพเพอร์ตี้ ของคลาส (Ia5727) - เปลี่ยนชื่อพารามิเตอร์การเว้นวรรคของปุ่มเป็น contentPadding (Id252e, b/161809394)
- เพิ่มคอมโพเนนต์ Material ทดลอง SwipeToDismiss (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 package ถูกทำให้แบนเป็น 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 สตับเพื่อรีแฟคเตอร์ DrawScope ให้เป็นพารามิเตอร์ที่ไม่ใช่ Null แทน lateinit และตรวจสอบว่าฟิลด์ไม่ใช่ Null
- เปลี่ยนชื่อ Enum ของ ClipOp ให้เป็น Pascal Case
- เปลี่ยนชื่อ Enum FilterQuality ให้เป็น Pascal Case
- เปลี่ยนชื่อ enum StrokeJoin เป็น Pascal Case
- เปลี่ยนชื่อการแจงนับ PointMode ให้เป็น Pascal Case
- เปลี่ยนชื่อการแจงนับ PaintingStyle ให้เป็น Pascal Case
- เปลี่ยนชื่อการแจงนับ PathFillType เป็น Pascal Case
- เปลี่ยนชื่อ Enum ของ StrokeCap ให้เป็น Pascal Case
- อัปเดตการใช้งาน DrawCache เพื่อไม่ให้ ใช้พารามิเตอร์ lateinit อีกต่อไป
- อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบเลื่อนเวลา สำหรับพารามิเตอร์ภายใน fillPaint และ strokePaint อีกต่อไป
- อัปเดต Image composable เพื่อหลีกเลี่ยงการใช้ Box เพื่อลดค่าใช้จ่าย
- อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
- อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ คำสั่งเส้นทางแต่ละรายการ
- อัปเดตองค์ประกอบย่อยของเวกเตอร์เพื่อนำการตรวจสอบแบบมีเงื่อนไขที่ซ้ำซ้อนออก สำหรับการตรวจสอบความเท่ากัน เนื่องจาก Compose จัดการการตรวจสอบเหล่านี้อยู่แล้ว
- เลิกใช้งานเมธอดตัวสร้างคู่ของ Rect เพื่อ ใช้ตัวสร้างฟังก์ชันแทน
- อัปเดตคลาส 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 และจัดเรียงพารามิเตอร์ใหม่เพื่อ โปรโมตเนื้อหา Lambda ต่อท้าย (I66e21)
เพิ่มพารามิเตอร์ตัวสร้าง defaultFontFamily ลงใน Typography เพื่อให้ระบุชุดแบบอักษรเริ่มต้นที่จะใช้กับ TextStyles ที่ระบุซึ่งไม่มีการตั้งค่าชุดแบบอักษรได้ (I89d07)
นำตารางข้อมูลวัสดุออกจากพื้นผิว API ชั่วคราว (Iaea61)
เปลี่ยนชื่อพารามิเตอร์ใน Divider ที่ใช้ร่วมกันได้ (Ic4373)
เด็ก (Ia6d19)
นำ MaterialTheme.emphasisLevels ออก ให้ใช้ EmphasisAmbient.current แทนเพื่อเรียกข้อมูลระดับความสำคัญ (Ib5e40)
ระบบการกำหนดธีมรูปร่างได้รับการอัปเดตตามข้อกำหนดการออกแบบ Material ตอนนี้คุณสามารถระบุรูปร่างขนาดเล็ก กลาง และใหญ่เพื่อให้คอมโพเนนต์ส่วนใหญ่ใช้ได้ (Ifb4d1)
เปลี่ยน API ของ MaterialTheme เช่น MaterialTheme.colors(), MaterialTheme.typography() ให้เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน นำวงเล็บออกจากการเรียกที่มีอยู่แล้ว โดยคาดว่าจะไม่มีการเปลี่ยนแปลงด้านพฤติกรรม (I3565a)
ปรับโครงสร้าง API ของ FloatingActionButton เพื่อยอมรับ Composable lambdas แทน 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 แยกกันแล้ว มีการเปลี่ยนชื่อหรือจัดเรียงพารามิเตอร์บางรายการในปุ่มใหม่ (I54b5a)เปลี่ยนชื่อ Image เป็น ImageAsset เพื่อให้เห็นความแตกต่างระหว่างข้อมูล Image กับ Image ที่ใช้ร่วมกันได้ซึ่งกำลังจะเปิดตัวได้ดียิ่งขึ้น โดยใช้เพื่อเข้าร่วมในเลย์เอาต์และวาดเนื้อหา _Body:สร้างเมธอดส่วนขยายใน android.graphics.Bitmap, Bitmap.asImageAsset() เพื่อสร้างอินสแตนซ์ของ ImageAsset ที่มีประโยชน์ในการรวมการพัฒนาแอปพลิเคชัน Android แบบเดิมเข้ากับเฟรมเวิร์ก Compose (Id5bbd)
นำ Snackbar API ที่มีพารามิเตอร์ String ออกเพื่อใช้ การโอเวอร์โหลดที่ยอมรับ Composable Lambda ดูตัวอย่างที่อัปเดตแล้วสำหรับ ข้อมูลการใช้งาน (I55f80)
ปรับโครงสร้าง Tab API เพื่อยอมรับ Lambda
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)เพิ่มคอมโพเนนต์วัสดุโครงสร้างแล้ว เครื่องมือที่ใช้ในการต่อเติม (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)
- เปลี่ยนชื่อเป็น
runOnIdle(I83607)runOnIdleCompose - พร็อพเพอร์ตี้ที่มีความหมายแบบค่าเดียวจะใช้รูปแบบการเรียกในตอนนี้ เช่น ตอนนี้ 'semantics { hidden = true }' จะเขียนเป็น 'semantics { hidden() }' (Ic1afd, b/145951226, b/145955412)
- เราได้เปลี่ยนชื่อ API สำหรับการทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น เราได้เปลี่ยนชื่อ API ทั้งหมดที่ขึ้นต้นด้วย findXYZ เป็น onNodeXYZ API ทั้งหมดที่ขึ้นต้นด้วย doXYZ จะเปลี่ยนชื่อเป็น performXYZ (I7f164)
- เราได้เปลี่ยน Transition API ให้แสดงผล TransitionState แทนการส่ง TransitionState ไปยังองค์ประกอบย่อย ซึ่งจะทำให้ API สอดคล้องกับ API ของ animate() มากขึ้น (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 ซึ่งมีฟังก์ชันเรียกกลับเพื่อออกคำสั่งวาดด้วย 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)
แทนที่พารามิเตอร์ CoreTextField/TextField focusIdentifier ด้วย 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 ไปยังส่วนขยาย เพื่อรองรับการเพิ่มประสิทธิภาพการมอบสิทธิ์พร็อพเพอร์ตี้ Kotlin 1.4 ผู้โทรต้องเพิ่ม การนำเข้าเพื่อใช้
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 เพื่อแทนที่ API องค์ประกอบย่อยที่มีอยู่สำหรับ กราฟิกเวกเตอร์ ผลลัพธ์ขององค์ประกอบย่อย คือออบเจ็กต์ VectorPainter แทนที่จะเป็น DrawModifier เลิกใช้งาน Composable DrawVector ก่อนหน้าเพื่อใช้ VectorPainter
เปลี่ยนชื่อ Image(Painter) API เป็น PaintBox(Painter) สร้าง Vector ที่ใช้ร่วมกันได้ซึ่งทำงานเหมือน Image ที่ใช้ร่วมกันได้ แต่ใช้ VectorAsset แทน ImageAsset (I9af9a, b/149030271)
เปลี่ยนชื่อ LayoutFlexible เป็น LayoutWeight เปลี่ยนชื่อพารามิเตอร์ "แน่น" เป็น "เติม" (If4738)
นำ RepaintBoundary ออกเพื่อใช้ DrawLayerModifier แทน (I00aa4)
เราได้เปลี่ยน DrawVector จากฟังก์ชันที่ใช้ร่วมกันได้ทั่วไป เป็นการแสดงผล Modifier 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)สร้าง Composable ของรูปภาพเพื่อจัดการ การปรับขนาด/เลย์เอาต์ นอกเหนือจากการวาด ImageAsset ที่ระบุลงบนหน้าจอ Composable นี้ยังรองรับการวาดอินสแตนซ์ Painter ใดก็ได้โดยคำนึงถึงขนาดโดยธรรมชาติ รวมถึงรองรับขนาดคงที่หรือขนาดขั้นต่ำที่กำหนด (Ibcc8f)
เลิกใช้งานคอมโพสฟังก์ชัน Wrap แล้ว โดยสามารถแทนที่ได้ด้วยตัวแก้ไข LayoutAlign หรือด้วย Composable ของ Stack (Ib237f)
WithConstraints มีพารามิเตอร์ LayoutDirection (I6d6f7)
ทำให้ระบบส่งต่อทิศทางเลย์เอาต์จากโหนดเลย์เอาต์หลักไปยังโหนดลูก เพิ่มตัวปรับแต่งทิศทางเลย์เอาต์แล้ว (I3d955)
คอมโพเนนต์ Stack รองรับทิศทางจากขวาไปซ้าย (Ic9e00)
นำ DrawShape ที่ใช้ร่วมกันออกแล้ว ใช้ตัวแก้ไข DrawBackground แทน (I7ceb2)
รองรับทิศทางจากขวาไปซ้ายในตัวแก้ไข LayoutPadding (I9e8da)
เพิ่ม AdapterList ซึ่งเป็นคอมโพเนนต์รายการแบบเลื่อนที่ จัดองค์ประกอบและวางรายการที่มองเห็นได้เท่านั้น ปัญหาที่ทราบในปัจจุบัน คือมีเฉพาะแนวตั้งและไม่สามารถจัดการการเปลี่ยนแปลง ในกรณีทั้งหมดขององค์ประกอบย่อยได้อย่างเต็มที่ (Ib351b)
อัปเดตฟีเจอร์แฟล็ก
ComposeFlags.COMPOSER_PARAMเป็นtrueซึ่งจะเปลี่ยนกลยุทธ์การสร้างโค้ดสำหรับปลั๊กอินการเขียน ในระดับสูง การดำเนินการนี้จะทำให้ฟังก์ชัน @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)
ตอนนี้แถบเลื่อนจะแสดงลักษณะการทำงานของการปัดแบบเนทีฟของ Android (I922af, b/147493715)
การปรับปรุงแพลตฟอร์ม API ของข้อจำกัด (I0fd15)