เขียนเนื้อหา
androidx.compose.material
androidx.compose.material.icons
(ดูเอกสารข้อมูลอ้างอิง API สำหรับแพ็กเกจ Compose ทั้งหมด)
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
2 กรกฎาคม 2025 | 1.8.3 | - | 1.9.0-beta02 | - |
โครงสร้าง
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
หากต้องการเพิ่มทรัพยากร Dependency ใน Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
Groovy
dependencies { implementation "androidx.compose.material:material:1.8.3" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.8.3") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณจะช่วยให้ Jetpack ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.9
เวอร์ชัน 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-เบต้า01
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
คลาสที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Composable ของข้อความแทน (I31b93)
เวอร์ชัน 1.7.0-alpha08
1 พฤษภาคม 2024
androidx.compose.material:material-*:1.7.0-alpha08
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha08 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขปัญหาที่
backgroundColor
ไม่ได้ใช้กับTextFieldDecorationBox
และOutlinedTextFieldDecorationBox
ตอนนี้กล่องตกแต่งยอมรับพารามิเตอร์shape
แล้ว (I371c2, b/307694651) - ระบบได้นำ
RippleConfiguration#isEnabled
ออกแล้ว และทำให้LocalRippleConfiguration
เป็นค่าที่กำหนดให้เป็น Null ได้ หากต้องการปิดใช้การกระเพื่อม ให้ระบุ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)- เราได้เลื่อนระดับ Bottom Sheet มาตรฐานจากเวอร์ชันทดลองเป็นเวอร์ชันที่เสถียรแล้ว นำตัวสร้างที่เลิกใช้งานแล้วออก ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ Tween ตามหลักเกณฑ์แล้ว (I3c1a8, b/278692145, b/261409034)
- Modal Bottom Sheet ได้รับการเลื่อนระดับจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียร นำตัวสร้างที่เลิกใช้งานแล้วออก ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ
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 แล้ว โปรดดูAnchoredDraggable
API ของ 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 ใน
ModalBottomSheetLayout
animateTo ของModalBottomSheetState
ไม่รับพารามิเตอร์animationSpec
อีกต่อไป และตอนนี้ออฟเซ็ตที่แสดงเป็นค่าที่กำหนดให้เป็น Null ได้ ใช้requireOffset
เพื่อกำหนดให้ต้องมีการชดเชย (Ia2e79) - เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility
(I8f206) - การเปลี่ยนแปลงที่รวมไว้ใน Swipeable API ใน
ModalDrawer. DrawerState
ของanimateTo
ถูกแทนที่ด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซ็ตเป็นค่า Null ได้แล้ว ใช้requireOffset
เพื่อกำหนดให้ต้องมีการชดเชย (I3de9e) - อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
- เพิ่มพารามิเตอร์
minLines
ลงในข้อความ Material และ Material3TextField
และOutlinedTextField
ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
pullRefresh
ไม่ได้ใช้ความเร็ว ทำให้การเลื่อนเกินแสดง นอกจากนี้ ยังได้เปลี่ยนลายเซ็น API ของonRelease
lambda ใน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
เพื่อใช้SwipeableV2
API ใหม่ ด้วยเหตุนี้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 อัปเดตระยะขอบแนวนอนระหว่างชิปย่อยในตัวอย่างชิปกรุ๊ปแบบบรรทัดเดียวให้ตรงกับข้อกำหนด (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 ของonRelease
lambda ในModifier.pullRefresh
เพื่อแสดงผล Float สำหรับความเร็วที่ใช้ (I7db65, b/266874741) - คืนค่าเครื่องมือรับพร็อพเพอร์ตี้
LocalMinimuTouchTargetEnforcement
และทําเครื่องหมายว่าเลิกใช้งานแล้ว รวมถึงเปลี่ยนเส้นทางไปยังLocalMinimumInteractiveComponentEnforcement
(I60dd5)
เวอร์ชัน 1.4.0-alpha05
25 มกราคม 2023
androidx.compose.material:material-*:1.4.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha05 มีคอมมิตต่อไปนี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ระบบคำนวณ
ModalBottomSheetLayout's HalfExpanded
ไม่ถูกต้องและชีตจะดูเหมือนลอยอยู่ (I8c615, b/265610459) - แก้ไขข้อบกพร่องใน
ModalBottomSheetLayout
ซึ่งชีตจะขัดข้องเมื่อเปลี่ยนจากสถานะซ่อนเป็นสถานะที่มองเห็นได้ในบางกรณี (Ia9265, b/265444789)
เวอร์ชัน 1.4.0-alpha04
11 มกราคม 2023
androidx.compose.material:material-*:1.4.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มพร็อพเพอร์ตี้ความหมาย
IsContainer
ใน Surfaces ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการข้ามตามความหมายเชิงความหมายขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379) - ทําเครื่องหมายฟังก์ชัน
snapTo
ใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีของเส้นสำหรับสัญญาณบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับสัญญาณบอกสถานะความคืบหน้าทั้งแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
ModalBottomSheetState
,ModalBottomSheetState.Saver
และrememberModalBottomSheetState
'sconfirmStateChange
เป็นconfirmValueChange
(Ib48d1) - ความสามารถในการเป็นค่าว่างของประเภทการคืนค่าเพิ่มเติมของฟังก์ชันที่เลิกใช้งานแล้วและซ่อนอยู่ (Ibf7b0)
- เพิ่ม
Modifier.minimumInteractiveComponentSize
โดยสามารถใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบแบบสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ใน
ModalBottomSheetLayout
ModalBottomSheetState
ของ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) - รวมการเปลี่ยนแปลงใน
Swipeable
API ใน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
t และ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 ลองลดระดับความสูงของกล่องโต้ตอบหรือป๊อปอัป หากต้องการเลือกไม่ใช้ลักษณะการทำงานใหม่นี้ ให้พิจารณา Fork กล่องโต้ตอบหรือป๊อปอัปของคุณเองโดยตั้งค่าการยกระดับที่ต้องการ เราไม่แนะนำให้ทำเช่นนี้ เนื่องจากอาจส่งผลเสียต่อการช่วยเหลือพิเศษ และนักพัฒนาแอปต้องตรวจสอบว่าส่วนล่างของกล่องโต้ตอบหรือป๊อปอัปสามารถโต้ตอบได้และบริการการช่วยเหลือพิเศษอ่านได้
เวอร์ชัน 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
- เปลี่ยนชื่อ Composable
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) - เพิ่ม
LazyVerticalGrid
API ใหม่เพื่อกำหนดขนาดแกนไขว้ (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
แล้ว คุณตั้งค่าผ่านเครื่องมือสร้างหรืออัปเดตในภายหลังได้โดยตั้งค่าพร็อพเพอร์ตี้ModalBottomSheetState
ของisSkipHalfExpanded
เป็น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 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้ Ripples รองรับสถานะการวางเมาส์และการโฟกัสแล้ว ดังนั้นการวางเมาส์ / การโฟกัสคอมโพเนนต์ เช่น ปุ่ม จะแสดงการซ้อนทับสถานะที่ถูกต้อง
เวอร์ชัน 1.1.0-alpha06
13 ตุลาคม 2021
androidx.compose.material:material-*:1.1.0-alpha06
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มการโอเวอร์โหลดที่ไม่มีการระบุองค์ประกอบย่อยสำหรับเลย์เอาต์เพื่อปรับปรุงประสิทธิภาพ (Ib0d9a)
- การติดตั้งใช้งาน
ExposedDropdownMenu
โดยอิงตามExposedDropdownMenuBox
ที่มีTextField
และDropdownMenu
อยู่ภายใน (If60b2) - เพิ่ม
dismissOnOutsideClick
ลงในPopupProperties
เพื่อแทนที่dismissOnClickOutside
ซึ่งเลิกใช้งานแล้ว พร็อพเพอร์ตี้ใหม่จะได้รับตําแหน่งการคลิกและขอบเขตของจุดยึด ซึ่งช่วยให้ควบคุมได้ละเอียดยิ่งขึ้นว่าจะเรียกใช้ onDismissRequest หรือไม่ เช่น การตั้งค่านี้อาจมีประโยชน์ในการป้องกันไม่ให้เลิกใช้สมอเมื่อมีการแตะที่สมอupdateAndroidWindowManagerFlags
ได้รับการเพิ่มลงในPopupProperties
ซึ่งช่วยให้ควบคุมระดับต่ำสำหรับ Flag ที่ป๊อปอัปส่งไปยัง WindowManager ของ Android พารามิเตอร์ของ Lambda จะเป็นค่าสถานะที่คำนวณจากค่า PopupProperties ซึ่งส่งผลให้เกิดค่าสถานะ WindowManager เช่น focusable ผลลัพธ์ของ Lambda จะเป็น Flag สุดท้ายที่จะส่งไปยัง WindowManager ของ Android โดยค่าเริ่มต้น updateAndroidWindowManagerFlags จะไม่เปลี่ยนแปลงค่าสถานะที่คำนวณจากพารามิเตอร์ คุณควรใช้ API นี้ด้วยความระมัดระวัง เฉพาะในกรณีที่ป๊อปอัปมีข้อกำหนดด้านลักษณะการทำงานที่เฉพาะเจาะจงมาก (I6e9f9)
เวอร์ชัน 1.1.0-alpha05
29 กันยายน 2021
androidx.compose.material:material-*:1.1.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำสำหรับคอมโพเนนต์ Material ที่ไม่มีเป้าหมายการสัมผัสที่เข้าถึงได้ เนื่องจากวิธีนี้จะเพิ่มระยะห่างรอบๆ คอมโพเนนต์เพื่อให้แน่ใจว่ามีเป้าหมายการสัมผัสที่ใหญ่พอ จึงอาจเปลี่ยน UI ที่มีอยู่ซึ่งถือว่าขนาดของคอมโพเนนต์เหล่านี้คือขนาดภาพ และไม่ได้คำนึงถึงขนาดเป้าหมายการสัมผัส คุณสามารถใช้
LocalMinimumTouchTargetEnforcement
composition 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)
- อัปเดต
Divider
composable 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)- เพิ่ม Card overload ใหม่ที่จัดการการคลิก รวมถึงฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ indication, interactionSource, enabled/disabled เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ
Modifier.clickable
เนื่องจากในกรณีดังกล่าว การ์ดจะไม่ตัดการระบุการกระเพื่อม
- เพิ่ม Card overload ใหม่ที่จัดการการคลิก รวมถึงฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ indication, interactionSource, enabled/disabled เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ
- การเปลี่ยนแปลงพฤติกรรม: ตอนนี้ 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:
DrawerState
state ไม่ได้ขยาย 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
และModalBottomSheetLayoutState
BottomDrawerState#isOpen
จะแสดงผลเป็น "จริง" หากอยู่ในสถานะเปิดหรือขยาย (I87241)
เวอร์ชัน 1.0.0-beta02
10 มีนาคม 2021
androidx.compose.material:material-*:1.0.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
LocalSoftwareKeyboardController
composition local API ใหม่เพื่อแทนที่อินเทอร์เฟซSoftwareKeyboardController
ก่อนหน้าใน TextField (I5951e, b/168778053)
การแก้ไขข้อบกพร่อง
- บังคับใช้ข้อจำกัดในการใช้งาน API เวอร์ชันทดลองแบบสาธารณะ (I6aa29, b/174531520)
- เปลี่ยนการจัดแนวแนวนอนเริ่มต้นสำหรับ TopAppBar และ BottomAppBar เป็น Start ให้สอดคล้องกับแถว (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 companion ตามลำดับแล้ว ระบบได้ลบฟังก์ชัน 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 แล้ว ซึ่งตอนนี้อนุญาตให้ปรับแต่งภาพเคลื่อนไหวระงับแทนการลดทอนที่กำหนดไว้ล่วงหน้า (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 ไม่ใช่เวอร์ชันทดลองอีกต่อไป
- ระบบได้นำฟังก์ชัน
@TestOnly
clearRoots ระดับบนสุดออกแล้ว ไม่จำเป็นต้องทำอีกต่อไป - ระบบได้นำฟังก์ชัน keySourceInfoOf และ resetSourceInfo ออกแล้ว จึงไม่จำเป็นต้องใช้แล้ว
- มีการนำ Composer.collectKeySourceInformation ออกแล้ว ไม่จำเป็นต้องทำอีกต่อไป
- นำเมธอด isJoinedKey, joinedKeyLeft และ joinedKeyRight ออกแล้ว จึงไม่จำเป็นต้องใช้แล้ว
- เราได้ย้ายและจัดระเบียบ API ระดับบนสุดต่างๆ ไปยังไฟล์อื่น เนื่องจากความหมายของคลาสไฟล์ของ Kotlin การดำเนินการนี้จะทำให้ความเข้ากันได้แบบไบนารีใช้งานไม่ได้ แต่ความเข้ากันได้ของแหล่งที่มาจะยังคงใช้งานได้ ดังนั้นผู้ใช้ส่วนใหญ่จึงไม่น่าจะพบปัญหา
- (I99b7d, b/177245490)
เราได้ปรับปรุง Modifier.scrollable ใหม่ ตอนนี้ใช้ Scrollable interface แทนคลาส 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
และทำให้เป็นค่าว่างได้ - เปลี่ยนชื่อพารามิเตอร์
text
ในSnackbar
เป็นcontent
เพื่อให้สอดคล้องกัน - เพิ่มพารามิเตอร์
contentPadding
ลงในDropdownMenuItem
เพื่ออนุญาตให้ปรับแต่งระยะเว้นเริ่มต้น และทำให้content
เป็นส่วนขยายในRowScope
- เปลี่ยนชื่อ
ModalDrawerLayout
เป็นModalDrawer
แล้ว - เปลี่ยนชื่อ
BottomDrawerLayout
เป็นBottomDrawer
แล้ว - (I1cc66)
ตอนนี้ BasicTextField ยอมรับ Brush แทน Color เพื่อการปรับแต่งที่ดีขึ้น (I83a36)
ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยาย ใน ImageBitmap และ ImageVector companion ตามลำดับแล้ว ระบบได้ลบฟังก์ชัน load{Image,Vector,Font}Resource ออกแล้ว (I89130)
เปลี่ยน Indication#createIndication() เป็น Indication#rememberUpdatedIndication(InteractionState) และนำพารามิเตอร์ InteractionState ออกจาก IndicationInstance#drawIndication() IndicationInstance ควรมีหน้าที่รับผิดชอบในการวาดเอฟเฟ็กต์ภาพเท่านั้น และไม่ควรเปิดใช้ภาพเคลื่อนไหว / เขียนสถานะเพื่อตอบสนองต่อการเปลี่ยนแปลง InteractionState ภาพเคลื่อนไหวและการเขียนสถานะเหล่านี้ควรเกิดขึ้นภายใน
rememberUpdatedIndication()
แทน นอกจากนี้ เรายังเปลี่ยนพารามิเตอร์indication
ในModifier.indication
ให้เป็นพารามิเตอร์ที่ต้องระบุด้วย (Ic1764, b/152525426)
การแก้ไขข้อบกพร่อง
- เพิ่มองค์ประกอบ LocalSoftwareKeyboardController ใหม่ API เพื่อแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าใน TextField (I658b6, b/168778053)
เวอร์ชัน 1.0.0-alpha12
10 กุมภาพันธ์ 2021
androidx.compose.material:material-*:1.0.0-alpha12
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ตอนนี้ Modifier.pointerInput ต้องใช้คีย์ remember เพื่อระบุ เมื่อควรเริ่มคอรเราทีนการตรวจหาอินพุตของเคอร์เซอร์ใหม่สำหรับ การอ้างอิงใหม่ (I849cd)
- มีการทำเครื่องหมาย BottomDrawerLayout และ ListItem เป็น @ExperimentalMaterialApi (Id766e)
- มีการเพิ่ม PaddingValues.Absolute และสามารถใช้ใน API ที่ยอมรับ PaddingValues ได้ (Ia5f30)
- เลิกใช้งาน onImeActionPerformed แล้ว ให้ใช้ KeyboardActions แทน (If0bbd, b/179071523)
- เราได้เปลี่ยนชื่อ ImagePainter เป็น BitmapPainter เพื่อให้สอดคล้องกับ VectorPainter มากขึ้น และเพื่อให้การตั้งชื่อเป็นไปตาม รูปแบบการตั้งชื่อของ ImageBitmap และ ImageVector (Iba381, b/174565889)
- ตอนนี้ Animatable.snapTo และ Animatable.stop เป็นฟังก์ชันที่ระงับแล้ว (If4288)
- ComponentActivity.setContent ได้ย้ายไปอยู่ที่ androidx.activity.compose.setContent ในโมดูล androidx.activity:activity-compose แล้ว (Icf416)
- เราได้นำเมธอด Destructuring และ copy() ออกจาก คลาสหลายคลาสซึ่งไม่ค่อยมีการใช้งาน (I26702, b/178659281)
- ทําให้ halfExpand() และ expand() ใน ModalBottomSheetState เป็นแบบภายใน (Ic914e)
- เปลี่ยน Indication#createInstance เป็น @Composable และเปลี่ยน LocalIndication ให้มี Indication ไม่ใช่ () -> Indication (I5eeea, b/157150564)
- ย้าย AlertDialog และ DropdownMenu ให้ใช้ได้เฉพาะใน Android ในตอนนี้ เพิ่มพารามิเตอร์ PopupProperties ลงใน DropdownMenu เพื่อกำหนดค่าป๊อปอัปพื้นฐานเพิ่มเติม (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)เปลี่ยนชื่อพารามิเตอร์สี contentColor เป็น 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)คุณปรับแต่งการกระเพื่อมที่ใช้ใน 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 APIs จากแพ็กเกจ androidx.compose.ui ไปยังแพ็กเกจ androidx.compose.ui.draw สร้างไฟล์ DrawModifierDeprecated.kt เพื่อ รวมประเภทแทน/วิธีการช่วยเพื่อช่วยในการ ย้ายข้อมูลจาก API ที่เลิกใช้งานแล้วไปยัง API ปัจจุบัน (Id6044, b/173834241)
- เปลี่ยนชื่อ Modifier.drawLayer เป็น Modifier.graphicsLayer และอัปเดตคลาสที่เกี่ยวข้องเป็น GraphicsLayer ตาม ความคิดเห็นเกี่ยวกับ API (I0bd29, b/173834241)
- นำ
<T>
ออกจากการประกาศ SubcomposeLayout ตอนนี้คุณใช้ได้โดยไม่ต้องระบุประเภท (Ib60c8) - เพิ่ม Modifier.scale/rotate
APIs เพื่ออำนวยความสะดวกสำหรับ drawLayer
- เปลี่ยนชื่อ
Modifier.drawOpacity
เป็นModifier.alpha
แล้ว - เปลี่ยนชื่อ
Modifier.drawShadow
เป็นModifier.shadow
(I264ca, b/173208140)
- เปลี่ยนชื่อ
- เปลี่ยนชื่อพารามิเตอร์การจัดแนวของ Box เป็น contentAlignment (I2c957)
- เปลี่ยนชื่อตัวแก้ไข offsetPx เป็น offset ตอนนี้ฟังก์ชันเหล่านี้รับพารามิเตอร์ Lambda แทน State แล้ว (Ic3021, b/173594846)
- เปิดตัว SweepGradientShader และ SweepGradientBrush API (Ia22c1)
- เพิ่มการตรวจสอบ Lint สำหรับพารามิเตอร์ Modifier ในฟังก์ชันที่ใช้ร่วมกันได้ การตรวจสอบ Lint นี้จะตรวจสอบการตั้งชื่อ ประเภทการคืนค่า ค่าเริ่มต้น และลำดับของพารามิเตอร์เพื่อให้สอดคล้องกับหลักเกณฑ์ของ Compose (If493b)
- อัปเดต TextFieldValue API
- ทำให้ TextFieldValue.composition เป็นแบบอ่านอย่างเดียว
- นำข้อยกเว้นที่เกิดขึ้นสำหรับช่วงการเลือกที่ไม่ถูกต้องออกแล้ว (I4a675, b/172239032)
- เพิ่ม
Modifier.drawLayer()
โอเวอร์โหลดใหม่แล้ว โดยจะใช้บล็อก Lambda ใน GraphicsLayerScope ใหม่ ซึ่งคุณจะกําหนดพารามิเตอร์เลเยอร์ในลักษณะที่ช่วยให้ข้ามการจัดองค์ประกอบใหม่และการจัดเลย์เอาต์ใหม่ได้เมื่อมีการเปลี่ยนแปลงสถานะ ตอนนี้ DrawLayerModifier อยู่ภายในเพื่อเตรียมพร้อมที่จะย้ายตรรกะไปยังเมธอดplaceable.placeWithLayer()
ของ LayoutModifier (I15e9f, b/173030831) - เลิกใช้งาน Ambients ที่เลิกใช้งานแล้วซึ่งมี
Ambient
เป็นคำต่อท้าย และแทนที่ด้วยพร็อพเพอร์ตี้ใหม่ที่ขึ้นต้นด้วย Ambient ตามหลักเกณฑ์อื่นๆ ของ Ambients และ 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 เป็นคอมโพเนนต์ 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 หากต้องการใช้ 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 ออกจากพารามิเตอร์ Lambda ของ Scaffold คุณสามารถใช้ emptyContent() เพื่อแสดงว่าไม่มีเนื้อหาสำหรับพารามิเตอร์ที่ระบุ (I2b318, b/157633857, b/158551084)
เลิกใช้งาน API contentColor() และ currentTextStyle() แล้วแทนที่ด้วย AmbientContentColor และ AmbientTextStyle ตามลำดับ คุณเข้าถึงค่าปัจจุบันได้โดยใช้
.current
ในพร็อพเพอร์ตี้โดยรอบ เช่นเดียวกับพร็อพเพอร์ตี้โดยรอบอื่นๆ การเปลี่ยนแปลงนี้มีขึ้นเพื่อให้สอดคล้องกันและหลีกเลี่ยงการมีหลายวิธีในการทําสิ่งเดียวกัน นอกจากนี้ ยังเปลี่ยนชื่อพร็อพเพอร์ตี้โดยรอบบางรายการเพื่อให้สื่อถึงวัตถุประสงค์ได้ดียิ่งขึ้น ดังนี้- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
เพิ่ม AmbientElevationOverlay ซึ่งช่วยให้ปรับแต่ง / ปิดใช้การซ้อนทับระดับความสูงเริ่มต้นที่ใช้กับพื้นผิวในธีมมืดได้ (I5b74d)
การแก้ไขข้อบกพร่อง
- ในการปรับค่า Sentinel สำหรับคลาสแบบอินไลน์ให้เป็นมาตรฐาน ให้เปลี่ยนชื่อ Color.Unset เป็น Color.Unspecified เพื่อให้สอดคล้องกับคลาสแบบอินไลน์อื่นๆ (I97611, b/169797763)
- เปิดตัว TextOverflow.None เมื่อการล้นเป็น None ข้อความจะไม่จัดการการล้นอีกต่อไป และจะรายงานขนาดจริงไปยัง LayoutNode (I175c9, b/158830170)
- เปลี่ยนชื่อ launchInComposition เป็น LaunchedTask เพื่อให้เป็นไปตามหลักเกณฑ์ของ Compose API (I99a8e)
- เปลี่ยนชื่อ OnPositionedModifier เป็น OnGloballyPositionedModifier และเปลี่ยนชื่อ onPositioned() เป็น onGloballyPositioned() (I587e8, b/169083903)
เวอร์ชัน 1.0.0-alpha04
1 ตุลาคม 2020
androidx.compose.material:material:1.0.0-alpha04
androidx.compose.material:material-icons-core:1.0.0-alpha04
และ androidx.compose.material:material-icons-extended:1.0.0-alpha04
ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แสดงพารามิเตอร์ InteractionState ในคอมโพเนนต์ Material แบบมีสถานะ เพื่อให้สามารถยกสถานะขึ้นและอ่าน / ควบคุมสถานะได้ (Iaca5f, b/168025711, b/167164434)
- เปลี่ยนพารามิเตอร์
*color
ใน RadioButton และ TriStateCheckbox เพื่อให้ปรับแต่งสีที่ใช้ในแต่ละสถานะได้อย่างเต็มที่ รวมถึงเปลี่ยนวิธีที่สีเคลื่อนไหวระหว่างสถานะหากต้องการ ดูข้อมูลเพิ่มเติมได้ที่ฟังก์ชันสี animateDefault* ใหม่ใน CheckboxConstants และ RadioButtonConstants (I1c532) - เปลี่ยนชื่อ rememberBackdropState เป็น rememberBackdropScaffoldState และเพิ่มพารามิเตอร์เพิ่มเติมสำหรับนาฬิกาภาพเคลื่อนไหว เปลี่ยนชื่อ param backdropScaffoldState ของ BackdropScaffold เป็น scaffoldState เปลี่ยนชื่อ BackdropConstants เป็น BackdropScaffoldConstants (Ib644d)
- เพิ่มคอมโพเนนต์ BottomSheetScaffold เวอร์ชันทดลอง (Ie02f0, b/148996320)
- เพิ่มคอมโพเนนต์ ModalBottomSheetLayout เวอร์ชันทดลอง (Ic209e, b/148996320)
- เปลี่ยนชื่อ ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation เป็น defaultElevation และตอนนี้จะแสดงผลค่า Dp แทน AnimatedValue (I5f3ed)
การแก้ไขข้อบกพร่อง
- อัปเดต Graphics API หลายรายการ
- อัปเดต API การแปลงขนาดและการหมุน เพื่อใช้พารามิเตอร์ออฟเซ็ตเดียว เพื่อแสดงพิกัดจุดหมุน แทนพารามิเตอร์ลอยตัวแยกกัน สำหรับพิกัด x/y ใน DrawScope และ DrawTransform
- นำเมธอด Rect.expandToInclude และ Rect.join ออกแล้ว
- อัปเดตเอกสารประกอบเกี่ยวกับรัศมีให้ระบุว่าวงรี นอกเหนือจากวงกลม
- เพิ่มเอกสารเพื่อระบุว่าไม่ควรเรียกใช้ตัวสร้างสาธารณะสำหรับคลาส Radius แบบอินไลน์โดยตรง แต่ควรสร้างออบเจ็กต์ Radius ผ่านตัวสร้างฟังก์ชันของออบเจ็กต์แทน
- นำ API RoundRect ออกเพื่อค้นหา topRight, bottomRight, bottomCenter ฯลฯ
- เลิกใช้ Rect.shift เพื่อใช้ Rect.translate แทน
- นำ API RoundRect.grow และ Rect.shrink ออกแล้ว
- เปลี่ยนชื่อ RoundRect.outerRect เป็น Rect.boundingRect
- นำเมธอด RoundRect.middleRect/tallMiddleRect/wideMiddleRect และ Rect.isStadium ออก
- เปลี่ยนชื่อ RoundRect.longestSide เป็น RoundRect.maxDimension
- เปลี่ยนชื่อ RoundRect.shortestSide เป็น RoundRect.minDimension
- เปลี่ยน RoundRect.center ให้เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน
- อัปเดตตัวสร้าง RoundRect เพื่อใช้พร็อพเพอร์ตี้ Radius แทนพารามิเตอร์แต่ละรายการสำหรับค่ารัศมี x/y
- นำ API ขนาดที่ถือว่าเป็นสี่เหลี่ยมผืนผ้าที่มี ต้นทางที่ 0,0 ออกแล้ว
- เพิ่ม API การทำลายลงใน Radius
- ย้ายฟังก์ชันส่วนขยาย RoundRect ต่างๆ ไปเป็น พร็อพเพอร์ตี้แทน
- (I8f5c7, b/168762961)
- เลิกใช้งาน foundation.Box แล้ว โปรดใช้ foundation.layout.Box แทน (Ie5950, b/167680279)
- เปลี่ยนชื่อ Stack เป็น Box แล้ว ระบบจะเลิกใช้งาน Box ที่มีอยู่ก่อนหน้านี้เพื่อรองรับ Box ใหม่ใน compose.foundation.layout ลักษณะการทำงานของ Box ใหม่คือการวางองค์ประกอบย่อยซ้อนกันเมื่อมีองค์ประกอบย่อยหลายรายการ ซึ่งแตกต่างจาก Box ก่อนหน้าที่มีลักษณะการทำงานคล้ายกับคอลัมน์ (I94893, b/167680279)
- เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการมีการตกแต่ง/ระยะห่างภายในในช่อง ให้ใช้ตัวแก้ไขแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- อัปเดต Graphics API หลายรายการ
- อัปเดต DrawScope API ด้วยเมธอดการเปลี่ยนรูปแบบที่กำหนดขอบเขตเพื่อระบุว่าระบบจะใช้การเปลี่ยนรูปแบบภายในโค้ดเรียกกลับเท่านั้น และจะนำออกหลังจากเรียกใช้โค้ดเรียกกลับ
- อัปเดตเอกสารประกอบ clipPath เพื่ออ้างอิงถึง Path แทนสี่เหลี่ยมผืนผ้าโค้งมน
- แก้ไขการเว้นวรรคในเอกสารประกอบสำหรับพารามิเตอร์ right ใน 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
- เปลี่ยนชื่อพารามิเตอร์
onSelect
ของBottomNavigationItem
เป็น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 สำหรับสร้าง SwipeableStates (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
- ตอนนี้ Colors เป็นคลาสสุดท้ายแทนที่จะเป็นอินเทอร์เฟซ คุณควรสร้างแอมเบียนท์ใหม่สำหรับออบเจ็กต์ธีมที่กำหนดเอง และเข้าถึงออบเจ็กต์ธีมผ่านแอมเบียนท์ใหม่ในคอมโพเนนต์ แทนที่จะขยายและให้การติดตั้งใช้งานที่กำหนดเอง ซึ่งคล้ายกับวิธีที่ 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 were flatten to 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 enums เป็น Pascal Case
- เปลี่ยนชื่อการแจงนับ PaintingStyle เป็น Pascal Case
- เปลี่ยนชื่อการแจงนับ PathFillType เป็น Pascal Case
- เปลี่ยนชื่อ Enum StrokeCap ให้เป็น Pascal Case
- อัปเดตการใช้งาน DrawCache เพื่อไม่ให้ ใช้พารามิเตอร์ lateinit อีกต่อไป
- อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบเลื่อนเวลาอีกต่อไป สำหรับพารามิเตอร์ภายใน fillPaint และ strokePaint
- อัปเดต Image ที่ใช้ร่วมกันได้เพื่อหลีกเลี่ยงการใช้ Box เพื่อลดค่าใช้จ่าย
- อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
- อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ คำสั่งเส้นทางแต่ละรายการ
- อัปเดตองค์ประกอบย่อยของเวกเตอร์เพื่อนำการตรวจสอบแบบมีเงื่อนไขที่ซ้ำซ้อนออก สำหรับการตรวจสอบความเท่ากัน เนื่องจาก Compose จัดการการตรวจสอบเหล่านี้อยู่แล้ว
- เลิกใช้งานเมธอดตัวสร้างคู่ของ Rect เพื่อ ใช้ตัวสร้างฟังก์ชันแทน
- อัปเดตคลาส Brush และตัวสร้างฟังก์ชันด้วย @Immutable และ @Stable API
- อัปเดตการแจงนับ VertexMode ให้เป็น PascalCase
- อัปเดตเมธอด selectPaint ของ DrawScope เพื่อเขียนทับพารามิเตอร์การขีดเขียนแบบมีเงื่อนไข ในสีหากมีการเปลี่ยนแปลง
- อัปเดตขนาดเพื่อเพิ่ม 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 และ
mutableStateOf
API ซึ่งช่วยให้คุณสร้างอินสแตนซ์ 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 ในการแพ็กค่า Float 2 ค่าเพื่อแสดง ความกว้างและความสูงที่แสดงเป็น Float (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 Lambda แทน Primitive ดูตัวอย่างที่อัปเดตแล้วสำหรับข้อมูลการใช้งาน (I00622)
เพิ่มพารามิเตอร์
enabled
ลงในช่องทำเครื่องหมาย สวิตช์ และสลับได้ (I41c16)ตอนนี้ Ripple เป็นตัวปรับแต่งแล้ว แม้ว่า Clickable จะยังไม่ได้แปลง แต่การใช้งานที่แนะนำคือ
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)ย้าย Surface และ Card จาก androidx.ui.material.surface ไปยัง androidx.ui.material (I88a6d, b/150863888)
ตอนนี้ปุ่ม, FloatingActionButton และ Clickable มี
enabled
param แยกกันแล้ว มีการเปลี่ยนชื่อหรือจัดเรียงพารามิเตอร์บางรายการในปุ่มใหม่ (I54b5a)เปลี่ยนชื่อ Image เป็น ImageAsset เพื่อให้เห็นความแตกต่างระหว่างข้อมูลรูปภาพกับ Image composable ที่กำลังจะเปิดตัวซึ่งใช้ในการเข้าร่วมเลย์เอาต์และวาดเนื้อหาได้ดียิ่งขึ้น _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 หนึ่ง ไปยังอีกอันหนึ่งแทน
LayoutCoordinates ใช้ IntPxSize สำหรับพร็อพเพอร์ตี้ขนาดแทน PxSize เลย์เอาต์ใช้ขนาดพิกเซลจำนวนเต็มสำหรับเลย์เอาต์ ดังนั้นขนาดเลย์เอาต์ทั้งหมด ควรใช้จำนวนเต็มและไม่ใช่ค่าทศนิยม (I9367b)
การเปลี่ยนแปลงที่ไม่รองรับการทำงานย้อนหลังใน Ambient API ดูรายละเอียดได้ในบันทึกและเอกสารประกอบของ
Ambient<T>
(I4c7ee, b/143769776)เพิ่มคอมโพเนนต์เนื้อหา Scaffold แล้ว เครื่องมือที่ใช้ในการต่อเติม (I7731b)
แทนที่ DrawBorder ด้วย Border Modifier (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() อย่างไรก็ตาม คุณสามารถดูทิศทางเลย์เอาต์ได้ภายในโค้ดเรียกกลับผ่านออบเจ็กต์ขอบเขตการวัด (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 เพื่อใช้ พารามิเตอร์รัศมีเดียวแทนค่าลอยตัว 2 ค่าแยกกัน สำหรับรัศมีตามแกน x และ y (I46d1b)
เพื่อรวมจำนวนคลาสที่ใช้เพื่อแสดงข้อมูลการวางตำแหน่ง ให้ใช้คลาส Offset แทน PxPosition ซึ่งจะให้ประโยชน์ ของคลาสอินไลน์เพื่อใช้ประโยชน์จาก Long ในการแพ็กค่า Float 2 ค่าเพื่อแสดงออฟเซ็ต x และ y ที่แสดงเป็น Float (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)
แทนที่พารามิเตอร์ focusIdentifier ของ CoreTextField/TextField ด้วย FocusNode เพื่อผสานรวมกับระบบย่อยโฟกัส (I7ea48)
ฟังก์ชันการวัดค่าโดยธรรมชาติใน Layout และ LayoutModifier2 มีตัวรับ IntrinsicMeasureScope แล้ว ซึ่งมี API การค้นหาค่าโดยธรรมชาติพร้อมทิศทางการจัดวางที่ส่งต่อโดยนัย (Id9945)
เพิ่ม Modifier.zIndex() ใหม่เพื่อควบคุมลำดับการวาดขององค์ประกอบย่อยภายในเลย์เอาต์ระดับบนสุดเดียวกัน เปลี่ยนชื่อพร็อพเพอร์ตี้ elevation ใน DrawLayerModifier เป็น shadowElevation และจะไม่ควบคุมลำดับการวาดอีกต่อไป มีการเปลี่ยนแปลงลำดับพารามิเตอร์สำหรับ DrawShadow โดยตอนนี้ค่าระดับความสูงจะเป็นพารามิเตอร์แรก และรูปร่างจะเป็นพารามิเตอร์ที่ 2 โดยมี RectangleShape เป็นค่าเริ่มต้น (I20150, b/152417501)
ย้าย RectangleShape จาก androidx.ui.foundation.shape.* ไปยัง androidx.ui.graphics.* (Ia74d5, b/154507984)
การอัปเดต API ของ TextField - ผสานรวมการเรียกกลับ onFocus และ onBlur เป็นการเรียกกลับ onFocusChange(Boolean) รายการเดียวที่มีพารามิเตอร์ (I66cd3)
เพิ่มพารามิเตอร์ verticalGravity และ horizontalGravity ลงใน Row และ Column ตามลำดับ (I7dc5a)
อัปเดต wrapContentWidth และ wrapContentHeight เพื่อให้คาดหวังการจัดแนวแนวตั้งหรือแนวนอนแทนที่จะเป็นการจัดแนวใดก็ได้ เราได้อัปเดตตัวแก้ไขแรงโน้มถ่วงให้ยอมรับการจัดแนวแนวตั้งหรือแนวนอน อัปเดตแถว คอลัมน์ และกองซ้อนให้รองรับการจัดแนวต่อเนื่องที่กำหนดเองแล้ว (Ib0728)
สร้าง PixelMap API เพื่อรองรับ การค้นหาข้อมูลพิกเซลจาก ImageAsset (I69ad6)
นำ ProvideContentColor ออก แล้วใช้ ContentColorAmbient โดยตรงกับ
Providers
(Iee942)เปลี่ยนชื่อโมดูล ui-text-compose เป็น ui-text ui-text ตอนนี้มี Composable ของ CoreText และ CoreTextField (Ib7d47)
เปลี่ยนชื่อโมดูล ui-text เป็น ui-text-core (I57dec)
ย้าย Composable ui-framework/CoreText, CoreTextField ไปไว้ภายใต้ ui-text-compose คุณอาจต้องใส่ ui-text-compose ในโปรเจ็กต์ (I32042)
ปรับปรุง DrawModifier API:
- สร้างขอบเขตตัวรับสำหรับ draw() ContentDrawScope
- นำพารามิเตอร์ทั้งหมดใน draw() ออก
- DrawScope มีอินเทอร์เฟซเหมือนกับ CanvasScope รุ่นก่อน
- ContentDrawScope มีเมธอด drawContent() (Ibaced, b/152919067)
ตอนนี้
runOnIdleCompose
และrunOnUiThread
เป็นฟังก์ชันส่วนกลาง แทนที่จะเป็นเมธอดใน ComposeTestRule (Icbe8f)ย้ายตัวดำเนินการมอบสิทธิ์พร็อพเพอร์ตี้ [Mutable]State ไปยังส่วนขยาย เพื่อรองรับการเพิ่มประสิทธิภาพการมอบสิทธิ์พร็อพเพอร์ตี้ Kotlin 1.4 ผู้โทรต้องเพิ่ม imports เพื่อใช้
by state { ... }
หรือby mutableStateOf(...)
ต่อไป (I5312c)เพิ่ม positionInParent และ boundsInParent สำหรับ LayoutCoordinates (Icacdd, b/152735784)
เลิกใช้งาน ColoredRect แล้ว ใช้ Box(Modifier.preferredSize(width, height).drawBackground(color)) แทน (I499fa, b/152753731)
เปลี่ยนชื่อ LayoutResult เป็น MeasureResult (Id8c68)
เพิ่ม LayoutModifier2 ซึ่งเป็น API ใหม่สำหรับการกำหนดตัวแก้ไขเลย์เอาต์ และเลิกใช้งาน LayoutModifier (If32ac)
แทนที่ตัวแก้ไขและตัวดำเนินการด้วยฟังก์ชันส่วนขยายของโรงงาน (I225e4)
ย้าย Draggable ไปยังตัวแก้ไขแล้ว (Id9b16, b/151959544)
เลิกใช้งาน Composable ของ ParentData แล้ว คุณควรสร้างตัวแก้ไขที่ใช้การติดตั้งอินเทอร์เฟซ ParentDataModifier หรือใช้ตัวแก้ไข LayoutTag หากเพียงต้องการติดแท็กลูกเลย์เอาต์เพื่อจดจำภายในบล็อกการวัด (I51368, b/150953183)
เลิกใช้งาน Composable ของ Center แล้ว ควรแทนที่ด้วยตัวแก้ไข LayoutSize.Fill + LayoutAlign.Center หรือด้วย Composable Box หรือ Stack อย่างใดอย่างหนึ่งที่มีการใช้ตัวแก้ไขที่เหมาะสม (Idf5e0)
เพิ่ม VectorPainter API เพื่อแทนที่ 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)
ฟังก์ชันที่ประกอบได้ของความทึบแสงถูกแทนที่ ด้วยตัวแก้ไข 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 got LayoutDirection parameter (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)
ตอนนี้ Scroller จะแสดงลักษณะการทำงานของการปัดแบบเนทีฟของ Android (I922af, b/147493715)
การปรับปรุงพื้นผิว API ของข้อจำกัด (I0fd15)