เขียนเนื้อหา
androidx.compose.material
androidx.compose.material.icons
(ดูเอกสารอ้างอิง API สำหรับแพ็กเกจคอมโพสิททั้งหมด)
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
13 พฤศจิกายน 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
โครงสร้าง
คอมโพซเป็นชุดค่าผสมของรหัสกลุ่ม Maven 7 รายการภายใน androidx
กลุ่มแต่ละกลุ่มประกอบด้วยชุดฟังก์ชันการทำงานย่อยที่กำหนดเป้าหมายไว้ โดยแต่ละกลุ่มจะมีชุดหมายเหตุการเผยแพร่ของตัวเอง
ตารางนี้อธิบายกลุ่มและลิงก์ไปยังชุดบันทึกประจำรุ่นแต่ละชุด
กลุ่ม | คำอธิบาย |
---|---|
compose.animation | สร้างภาพเคลื่อนไหวในแอปพลิเคชัน Jetpack Compose เพื่อมอบประสบการณ์การใช้งานที่ดีขึ้นให้แก่ผู้ใช้ |
compose.compiler | เปลี่ยนรูปแบบฟังก์ชัน @Composable และเปิดใช้การเพิ่มประสิทธิภาพด้วยปลั๊กอินคอมไพเลอร์ Kotlin |
compose.foundation | เขียนแอปพลิเคชัน Jetpack Compose ด้วยองค์ประกอบพื้นฐานที่พร้อมใช้งานและขยายฐานรากเพื่อสร้างชิ้นส่วนระบบออกแบบของคุณเอง |
compose.material | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design ที่พร้อมใช้งาน นี่เป็นจุดแรกเข้าระดับที่สูงขึ้นของ Compose ซึ่งออกแบบมาเพื่อจัดหาคอมโพเนนต์ที่ตรงกับที่อธิบายไว้ใน www.material.io |
compose.material3 | สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design 3 ซึ่งเป็นวิวัฒนาการขั้นถัดไปของ Material Design Material 3 ประกอบด้วยธีมและคอมโพเนนต์ที่อัปเดต รวมถึงฟีเจอร์การปรับแต่งในแบบของคุณของ Material You เช่น สีแบบไดนามิก และออกแบบมาให้สอดคล้องไปกับสไตล์ภาพและ UI ของระบบ Android 12 ใหม่ |
compose.runtime | องค์ประกอบพื้นฐานของรูปแบบการเขียนโปรแกรมและการจัดการสถานะของ Compose รวมถึงรันไทม์หลักสำหรับกำหนดเป้าหมายปลั๊กอินคอมไพเลอร์ Compose |
compose.ui | องค์ประกอบพื้นฐานของ UI การเขียนที่จำเป็นต่อการโต้ตอบกับอุปกรณ์ ซึ่งรวมถึงเลย์เอาต์ ภาพวาด และอินพุต |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูล
Groovy
dependencies { implementation "androidx.compose.material:material:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพิงบิวด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.8
เวอร์ชัน 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 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มประสิทธิภาพลักษณะการทํางานของ
contentPadding
ของ Scaffold เพื่อหลีกเลี่ยงการจัดเรียงเนื้อหาส่วนเนื้อหาใหม่ทุกครั้งที่มีการเปลี่ยนแปลง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
Builder ใหม่เพื่อสร้าง BottomSheet ด้วย Safe Args ((I28589, I777db, b/351858980))
เวอร์ชัน 1.7
เวอร์ชัน 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 ไปใช้ Ripple API ใหม่แล้ว และจะไม่ค้นหา
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
ออกจากวัสดุ (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
ที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยังคอมโพสิชันข้อความแทน (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
ไม่ใช่แลมบ์ดาต่อท้ายอีกต่อไป (I9c029, b/261423850)BackdropScaffold
ได้รับการโปรโมตจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดtween
ตามหลักเกณฑ์ พารามิเตอร์snackbarHost
ของBackdropScaffold
ไม่ใช่พารามิเตอร์สุดท้ายอีกต่อไปเพื่อไม่ให้สับสนกับ Lambda ต่อท้ายBackdropScaffoldState
แสดงprogress(from, to)
API เพื่อค้นหาความคืบหน้าระหว่างจุดยึด (I73f48, b/261423218)- ชีตด้านล่างมาตรฐานได้รับการโปรโมตจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว นำตัวสร้างที่เลิกใช้งานออกแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของภาพเคลื่อนไหวแบบ 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 ไปใช้ Ripple API ใหม่แล้ว และจะไม่ค้นหา
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
ไว้ในคอมโพสิชัน 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) - แก้ไขการคํานวณ
offset
ของDropdownMenu
เพื่อให้ค่าออฟเซ็ต 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) - คําอธิบายประกอบเพิ่มเติมเพื่อระบุอินพุตที่อนุญาตสําหรับคอมโพสิเบิล (I51109)
- อัปเดตไฟล์ API เพื่อกำกับเนื้อหาการระงับความเข้ากันได้ (I8e87a, b/287516207)
- เพิ่มการจัดแนวเริ่มต้นใหม่สำหรับ
FabPosition
(Ib7aea, b/170592777) TextFieldColorsWithIcons
ในเนื้อหา 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
- เราได้เลิกใช้งาน
Swipeable
API ของ Material แล้ว โปรดดูAnchoredDraggable
API ของ Foundation ซึ่งเพิ่มประสิทธิภาพสำหรับทั้ง Use Case ที่ง่ายและซับซ้อน (I732e0)
การแก้ไขข้อบกพร่อง
- ตอนนี้
BottomSheetState
,ModalBottomSheetState
และBottomDrawerState
แสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่างจุดยึดปัจจุบัน (ยึดตำแหน่งแล้ว) กับจุดยึดที่ใกล้ที่สุดในทิศทางการปัด (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
ในลิ้นชักเป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีแทร็กสำหรับสัญญาณบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์ส่วนปลายของเส้นสำหรับทั้งสัญญาณบอกสถานะความคืบหน้าแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
confirmStateChange
ของModalBottomSheetState
,ModalBottomSheetState.Saver
และrememberModalBottomSheetState
เป็นconfirmValueChange
(Ib48d1) - เพิ่ม
Modifier.minimumInteractiveComponentSize
สามารถใช้เพื่อจองขนาดอย่างน้อย 48.dp เพื่อแยกแยะการโต้ตอบด้วยการสัมผัสในกรณีที่องค์ประกอบมีขนาดเล็กลง (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ไว้ใน
ModalBottomSheetLayout
animateTo ของModalBottomSheetState
จะไม่ใช้พารามิเตอร์animationSpec
อีกต่อไป และตอนนี้ออฟเซตที่แสดงจะนําค่า Null ได้ ใช้requireOffset
เพื่อกำหนดให้ต้องใช้ออฟเซ็ต (Ia2e79) - เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility
(I8f206) - การเปลี่ยนแปลงที่รวมอยู่ใน Swipeable API ใน
animateTo
ของModalDrawer. DrawerState
ได้แทนที่ด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซตจะเป็นค่า Null ได้ ใช้requireOffset
เพื่อกำหนดให้ต้องใช้ออฟเซ็ต (I3de9e) - อัปเดตลิ้นชักและชีตเพื่อเลื่อนการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
- เพิ่มพารามิเตอร์
minLines
ลงในข้อความ Material และ Material3,TextField
และOutlinedTextField
ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ตามจำนวนบรรทัดได้ (I4af1d)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
pullRefresh
ไม่ใช้ความเร็ว ทำให้การเลื่อนเกินแสดงขึ้น และเปลี่ยนลายเซ็น API ของonRelease
lambda ในModifier.pullRefresh
ให้แสดงผล Float สำหรับความเร็วที่ใช้ (I7db65, b/266874741) - ตอนนี้
BottomSheetState
,ModalBottomSheetState
และBottomDrawerState
แสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่างจุดยึดปัจจุบัน (ยึดตำแหน่งแล้ว) กับจุดยึดที่ใกล้ที่สุดในทิศทางการปัด (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
แสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่างจุดยึดปัจจุบัน (ยึดตำแหน่งแล้ว) กับจุดยึดที่ใกล้ที่สุดในทิศทางการปัด (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
จะไม่อนุญาตให้เป็นค่า Null อีกต่อไป แต่ระบบจะแสดงผลลัพธ์เป็นFloat.NaN
เพื่อระบุว่าไม่มีออฟเซ็ต (Ie9855) - เพิ่มตัวเลือกในการส่ง
ScrollState
เมื่อสร้างDropdownMenu
หรือExposedDropdownMenu
เพื่อควบคุมสถานะการเลื่อนแนวตั้งของรายการเมนูที่แสดง (Idb009, b/185304441) - เพิ่มการรองรับการเปิด/ปิดใช้ท่าทางสัมผัสของ
ModalBottomSheetLayout
เพื่อให้ผู้ใช้กำหนดค่านี้สำหรับกล่องข้อมูลด้านล่างที่แสดงอยู่ได้มากขึ้น (I40af0) - เพิ่มพารามิเตอร์สีลงใน
BasicText
เพื่อช่วยให้สร้างภาพเคลื่อนไหวหรือกำหนดสีข้อความได้อย่างมีประสิทธิภาพ (Iffd88, b/246961787) - การเปลี่ยนชื่อพร็อพเพอร์ตี้เชิงอรรถศาสตร์
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
ภายใน ตอนนี้ออฟเซตเป็นพร็อพเพอร์ตี้ทศนิยมที่อนุญาตค่าว่างเปล่าแล้ว แต่คุณยังคงเข้าถึงค่าปัจจุบันและค่าเป้าหมายของการปัดผ่านได้ผ่านพร็อพเพอร์ตี้ currentValue และ targetValue ระบบจะยังคงรองรับเมธอดระดับคลาสก่อนหน้านี้ เช่น เปิด/ขยาย/ปิด และพร็อพเพอร์ตี้ เช่นisOpen/isClosed
(Iad40c, b/178529942, b/220676296)
การแก้ไขข้อบกพร่อง
- อัปเดตข้อมูลภายในของคอมโพเนนต์ Switch ตอนนี้สวิตช์จะแสดงตัวอย่าง (สถานะเป้าหมาย) ที่ใกล้เคียงที่สุดเมื่อลาก (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 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มตัวอย่างการจัดเรียงชิปใหม่ อัปเดตระยะห่างแนวนอนระหว่างชิปย่อยในตัวอย่างกลุ่มชิปบรรทัดเดียวให้ตรงกับข้อกำหนด (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 และ Material3,TextField
และOutlinedTextField
ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ตามจำนวนบรรทัดได้ (I4af1d) - เพิ่มพารามิเตอร์
minLines
ลงในBasicText
และBasicTextField
ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพสิเบิลเหล่านี้ตามจำนวนบรรทัดได้ (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
semantics ใน Surfaces ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกําหนดลําดับการเรียกดูตามความหมายเชิงอรรถศาสตร์ขององค์ประกอบ เช่น พื้นผิว (I63379) - ทําเครื่องหมายฟังก์ชัน
snapTo
ในลิ้นชักเป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368) - เพิ่มพารามิเตอร์สีแทร็กสำหรับสัญญาณบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์ส่วนปลายของเส้นสำหรับทั้งสัญญาณบอกสถานะความคืบหน้าแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
- เปลี่ยนชื่อ
confirmStateChange
ของModalBottomSheetState
,ModalBottomSheetState.Saver
และrememberModalBottomSheetState
เป็นconfirmValueChange
(Ib48d1) - ข้อมูลเพิ่มเติมเกี่ยวกับค่าที่เป็นไปได้ของประเภทผลลัพธ์ของฟังก์ชันที่ซ่อนซึ่งเลิกใช้งานแล้ว (Ibf7b0)
- เพิ่ม
Modifier.minimumInteractiveComponentSize
สามารถใช้เพื่อจองขนาดอย่างน้อย 48.dp เพื่อแยกแยะการโต้ตอบด้วยการสัมผัสในกรณีที่องค์ประกอบมีขนาดเล็กลง (I33f58, b/258495559) - รวมการเปลี่ยนแปลงใน Swipeable API ไว้ใน
ModalBottomSheetLayout
animateTo
ของModalBottomSheetState
จะไม่ใช้พารามิเตอร์animationSpec
อีกต่อไป และoffset
ที่แสดงจะยอมรับค่า Null ได้ ใช้requireOffset
เพื่อกำหนดให้ต้องมีoffset
(Ia2e79)
การแก้ไขข้อบกพร่อง
- ตอนนี้ชีตของ
ModalBottomSheetLayout
จะมีความกว้างสูงสุด 640 dp (I71a4f, b/234927577) - แก้ไขปัญหาที่
rememberPullRefreshState
ไม่อัปเดตrefreshThreshold
และrefreshingOffset
เมื่อเวลาผ่านไป (Ifed10, b/263159832) - ตอนนี้ความคืบหน้าของสัญญาณบอกสถานะความคืบหน้าถูกจำกัดไว้อย่างเหมาะสมตามช่วงที่คาดไว้ (I8a7eb, b/262262727)
- เมื่อ
ModalBottomSheetState
ยังไม่ได้รับการยึดใดๆ ระบบจะอัปเดต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)
การอัปเดตทรัพยากร Dependency
- ตอนนี้ Compose UI และ Compose Material ขึ้นอยู่กับ Lifecycle 2.5.1 แล้ว (I05ab0, b/258038814)
เวอร์ชัน 1.4.0-alpha02
9 พฤศจิกายน 2022
androidx.compose.material:material-*:1.4.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.4.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้
awaitFirstDown
และwaitForUpOrCancellation
ยอมรับPointerEventPass
เพื่อให้มีความยืดหยุ่นมากขึ้น (I7579a, b/212091796) - เพิ่มพารามิเตอร์
minLines
ลงในข้อความ Material และ Material3,TextField
และOutlinedTextField
ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ตามจำนวนบรรทัดได้ (I4af1d) - เพิ่มพารามิเตอร์
minLines
ลงในBasicTex
t และBasicTextField
ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพสิเบิลเหล่านี้ในแง่ของจํานวนบรรทัดได้ (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()
เนื่องจากforEachGesture()
จะทำให้เหตุการณ์หายไประหว่างการใช้ท่าทางสัมผัส (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
- เพิ่มคอมโพเนนต์การดึงเพื่อรีเฟรชไปยัง "เขียน" (I29168)
- เปลี่ยนชื่อพารามิเตอร์จาก values เป็น value ใน 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
- เพิ่มคอมโพเนนต์การดึงเพื่อรีเฟรชไปยังคอมโพเนนต์ "เขียน" (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
ระยะห่างสูงสุดที่รองรับสำหรับกล่องโต้ตอบและป๊อปอัปสำหรับเขียนอีเมลลดลงจาก 30dp เป็น 8dp การเปลี่ยนแปลงนี้จะส่งผลต่อทั้งกล่องโต้ตอบและป๊อปอัปที่กําหนดเองของ Material และ UI การเปลี่ยนแปลงนี้ทำเพื่อลดข้อบกพร่องด้านการช่วยเหลือพิเศษใน Android เวอร์ชันที่ต่ำกว่า S และเพื่อให้มั่นใจว่าบริการการช่วยเหลือพิเศษในหน้าต่างเหล่านั้นสามารถโต้ตอบกับเนื้อหาในกล่องโต้ตอบหรือป๊อปอัปได้
การเปลี่ยนแปลงนี้จะส่งผลต่อคุณก็ต่อเมื่อคุณสร้างกล่องโต้ตอบหรือป๊อปอัปที่กําหนดเองโดยตั้งค่าระดับความสูงไว้สูงกว่า 8dp ลองลดระดับของกล่องโต้ตอบหรือป๊อปอัป หากต้องการเลือกไม่ใช้ลักษณะการทำงานใหม่นี้ ให้ลองแยกกล่องโต้ตอบหรือป๊อปอัปของคุณเองโดยตั้งค่าระดับที่ต้องการ เราไม่แนะนำให้ใช้วิธีนี้เนื่องจากอาจส่งผลเสียต่อการช่วยเหลือพิเศษ และต้องอาศัยนักพัฒนาแอปในการทำให้ส่วนล่างของกล่องโต้ตอบหรือป๊อปอัปโต้ตอบได้และบริการการช่วยเหลือพิเศษอ่านได้
เวอร์ชัน 1.3.0-alpha03
10 สิงหาคม 2022
androidx.compose.material:material-*:1.3.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha03 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.3.0-alpha02
27 กรกฎาคม 2022
androidx.compose.material:material-*:1.3.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha02 มีการคอมมิตเหล่านี้
การมีส่วนร่วมจากภายนอก
- แก้ไขปัญหา
AnimatedVisibility
เกี่ยวกับFloatingActionButton
ใน Scaffold (I3a0ae, b/224005027)
เวอร์ชัน 1.3.0-alpha01
29 มิถุนายน 2022
androidx.compose.material:material-*:1.3.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อพารามิเตอร์จาก values เป็น value ใน
RangeSlider
(I3b79a)
การแก้ไขข้อบกพร่อง
- อัปเดตตัวอย่างป้ายเพื่อให้คำอธิบายเนื้อหามีความชัดเจนมากขึ้น (I10b9d)
เวอร์ชัน 1.2
เวอร์ชัน 1.2.1
10 สิงหาคม 2022
androidx.compose.material:material-*:1.2.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้
เวอร์ชัน 1.2.0
27 กรกฎาคม 2022
androidx.compose.material:material-*:1.2.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-rc03
29 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-rc03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc03 มีการคอมมิตเหล่านี้
- ไม่มีการเปลี่ยนแปลงนับตั้งแต่ 1.2.0-rc02
เวอร์ชัน 1.2.0-rc02
22 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-rc02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-rc01
15 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้อินเทอร์เฟซในไลบรารีคอมโพสิทสร้างขึ้นโดยใช้เมธอดอินเทอร์เฟซเริ่มต้นของ jdk8 (I5bcf1)
การแก้ไขข้อบกพร่อง
- อัปเดตป้ายด้วยแท็บไอคอนนำหน้าเพื่อติดป้ายกับป้ายกำกับแทนไอคอน (I90993)
เวอร์ชัน 1.2.0-beta03
1 มิถุนายน 2022
androidx.compose.material:material-*:1.2.0-beta03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่
BottomSheetScaffold
วาดทับเงาของแถบแอปด้านบนBottomSheetScaffold
จะพิจารณาสถานะของชีตด้วยเมื่อวาง Snackbar: ในสถานะยุบ ระบบจะวาง Snackbar ไว้เหนือชีตและ FAB ส่วนในสถานะขยาย ระบบจะยึด Snackbar ไว้ที่ด้านล่างของชีต (Ia80b5, b/187771422)
เวอร์ชัน 1.2.0-beta02
18 พฤษภาคม 2022
androidx.compose.material:material-*:1.2.0-beta02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-beta01
11 พฤษภาคม 2022
androidx.compose.material:material-*:1.2.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- นี่เป็นรุ่นเบต้าแรกของ 1.2
การเปลี่ยนแปลง API
- เปลี่ยนชื่อคอมโพสิชัน
TextFieldDefaults.BorderStroke
ที่วาดเส้นขอบในOutlinedTextField
เป็นTextFieldDefaults.BorderBox
(I5f295)
เวอร์ชัน 1.2.0-alpha08
20 เมษายน 2022
androidx.compose.material:material-*:1.2.0-alpha08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha08 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เลิกใช้งานการบริโภคบางส่วน (ลดลงหรืออันดับ) แล้วในปี
PointerInputChange
คุณสามารถใช้consume()
เพื่อใช้การเปลี่ยนแปลงทั้งหมดได้ คุณสามารถใช้isConsumed
เพื่อระบุว่ามีการใช้การเปลี่ยนแปลงนี้ไปแล้วก่อนหน้านี้หรือไม่ - ตอนนี้
PointerInputChange::copy()
จะทําสําเนาแบบไม่เจาะลึกเสมอ ซึ่งหมายความว่าระบบจะใช้สำเนาของPointerInputChange
เมื่อมีการบริโภคสำเนาใดสำเนาหนึ่ง หากต้องการสร้างPointerInputChange
ที่ไม่มีค่า ให้ใช้ตัวสร้างแทน (Ie6be4, b/225669674)
เวอร์ชัน 1.2.0-alpha07
6 เมษายน 2022
androidx.compose.material:material-*:1.2.0-alpha07
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha07 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-alpha06
23 มีนาคม 2022
androidx.compose.material:material-*:1.2.0-alpha06
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การอัปเดต Card API แบบคลิกได้เพื่อติดตามการเปลี่ยนแปลงใน Surface API (I56bcb)
- การอัปเดต Material 2 Surface API ที่เพิ่มฟังก์ชันที่โอเวอร์โหลดเพิ่มเติมสำหรับพื้นผิวที่เลือกได้และเปิด/ปิดได้ (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)- เปลี่ยนกลับการเปลี่ยนแปลงก่อนหน้านี้ที่ใช้มุมมองสําหรับ
WindowInsetsControllerCompat
เพียงอย่างเดียว และต้องใช้ Window อีกครั้ง ซึ่งจําเป็นสําหรับการจัดการ Flag ของ Window บางรายการ เลิกใช้งานแล้วViewCompat.getWindowInsetsController
เปลี่ยนไปใช้WindowCompat.getInsetsController
เพื่อให้แน่ใจว่ามีการใช้หน้าต่างที่ถูกต้อง (เช่น หากมุมมองอยู่ในกล่องโต้ตอบ) (I660ae, b/219572936) - ข้อความ:
includeFontPadding
จะปิดอยู่โดยค่าเริ่มต้น ระบบจะจัดการปัญหาการถูกตัดเนื่องจาก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 จะอนุมานคำอธิบายประกอบได้ คุณจึงควรใช้คำอธิบายประกอบเหล่านี้โดยตรงในบางกรณีเท่านั้น กรณีที่ไม่สามารถอนุมานได้ ได้แก่ การสร้างและการใช้ Applier ที่กําหนดเอง ฟังก์ชันที่คอมโพสิเบิลแบบนามธรรม (เช่น เมธอดอินเทอร์เฟซ) ฟิลด์หรือตัวแปรส่วนกลางที่เป็น Lambda ที่คอมโพสิเบิล (ระบบจะอนุมานตัวแปรและพารามิเตอร์ภายใน) หรือเมื่อใช้
ComposeNode
หรือฟังก์ชันที่คอมโพสิเบิลที่เกี่ยวข้องสําหรับตัวใช้ที่กําหนดเอง ฟังก์ชันแบบคอมโพสิเบิลที่เรียก
ComposeNode
หรือReusableComposeNode
จะต้องเพิ่มแอตทริบิวต์CompoableTarget
สําหรับฟังก์ชันและพารามิเตอร์ LAMBDA ประเภทใดก็ได้ที่คอมโพสิเบิล อย่างไรก็ตาม เราขอแนะนำให้สร้างคำอธิบายประกอบที่มีคำอธิบายประกอบด้วยComposableTargetMarker
แล้วใช้คำอธิบายประกอบที่มีเครื่องหมายแทนการใช้ComposableTarget
โดยตรง คําอธิบายประกอบแบบคอมโพสิเบิลที่มีเครื่องหมายComposableTargetMarker
เทียบเท่ากับComposbleTarget
ที่มีชื่อแบบเต็มของคลาสแอตทริบิวต์เป็นพารามิเตอร์ applier ดูตัวอย่างการใช้ComposableTargetMarker
ได้ที่anroidx.compose.ui.UiComposable
(I38f11)
เวอร์ชัน 1.2.0-alpha03
9 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.2.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha03 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มตัวอย่างกลุ่มชิป (I97080, b/192585545)
เวอร์ชัน 1.2.0-alpha02
26 มกราคม 2022
androidx.compose.material:material-*:1.2.0-alpha02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
NonRestartableComposable
ลงในเมธอดที่โอเวอร์โหลดของเมธอดที่มีอยู่โดยไม่มีตรรกะที่ซับซ้อน ซึ่งจะช่วยลดการตรวจสอบการช่วยจํา (เท่ากับ) ที่คอมไพเลอร์สร้างขึ้นสําหรับพารามิเตอร์ทั้งหมดซึ่งซ้ำกันในฟังก์ชันภายในที่เรียกใช้ (I90490) - เพิ่มการรองรับชิปการดำเนินการ (I07100, b/192585545)
เวอร์ชัน 1.2.0-alpha01
12 มกราคม 2022
androidx.compose.material:material-*:1.2.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha01 มีการคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependency
- ตอนนี้ขึ้นอยู่กับ Kotlin
1.6.10
การมีส่วนร่วมจากภายนอก
- ตอนนี้
ModalBottomSheetState
มีสถานะธงisSkipHalfExpanded
โดยสามารถตั้งค่าผ่านเครื่องมือสร้างหรืออัปเดตในภายหลังโดยการตั้งค่าพร็อพเพอร์ตี้isSkipHalfExpanded
ของModalBottomSheetState
เป็นtrue
การอัปเดตค่าของisSkipHalfExpanded
จะทําให้ชีตมีการจัดองค์ประกอบใหม่ (I18b86, b/186669820)
เวอร์ชัน 1.1
เวอร์ชัน 1.1.1
23 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.1.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไข
NullPointerException
ที่androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462) - แก้ไขข้อขัดข้องที่เกิดขึ้นจากเนื้อหาในคลิปบอร์ดขณะอ่านจากคลิปบอร์ดใน Android (I06020, b/197769306)
- แก้ไข RTL ใน
LazyVerticalGrid
(aosp/1931080, b/207510535)
เวอร์ชัน 1.1.0
9 กุมภาพันธ์ 2022
androidx.compose.material:material-*:1.1.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.0.0
- การรองรับเอฟเฟกต์การเลื่อนผ่านของ Android 12 อย่างเสถียร
- การปรับปรุงขนาดเป้าหมายการสัมผัส
- โปรดทราบว่าสำหรับ Compose 1.0 คอมโพเนนต์ Material จะขยายพื้นที่เลย์เอาต์เพื่อให้เป็นไปตามหลักเกณฑ์การช่วยเหลือพิเศษของ Material สำหรับขนาดเป้าหมายการสัมผัส ตัวอย่างเช่น เป้าหมายการสัมผัสของปุ่มจะขยายให้มีขนาดขั้นต่ำ 48x48dp แม้ว่าคุณจะตั้งค่าขนาดของปุ่มให้เล็กกว่านี้ก็ตาม ซึ่งจะช่วยให้ Compose Material ทำงานในลักษณะเดียวกับคอมโพเนนต์ Material Design เพื่อให้ทำงานได้อย่างสอดคล้องกันหากคุณใช้ทั้ง Views และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจด้วยว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Compose Material คุณจะมีคุณสมบัติตรงตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษสำหรับเป้าหมายการสัมผัส
- การสนับสนุนที่เสถียรสำหรับแถบข้างสำหรับไปยังส่วนต่างๆ
- เปลี่ยน 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 เพื่อให้ทำงานได้อย่างสอดคล้องกันหากคุณใช้ทั้ง Views และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจด้วยว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Compose Material คุณจะมีคุณสมบัติตรงตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษสำหรับเป้าหมายการสัมผัส
การแก้ไขข้อบกพร่อง
- เพิ่มข้อมูลการแก้ไขข้อบกพร่องที่ดีขึ้นสำหรับโปรแกรมตรวจสอบเลย์เอาต์เมื่อตรวจสอบตัวปรับเป้าหมายการแตะขั้นต่ำ (aosp/1955036)
เวอร์ชัน 1.1.0-rc01
15 ธันวาคม 2021
androidx.compose.material:material-*:1.1.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-rc01 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขรัศมีมุมที่ใช้กับ
Checkbox
es (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 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้ภาพกระเพื่อมรองรับสถานะการวางเมาส์เหนือและโฟกัสแล้ว ดังนั้นการวางเมาส์เหนือ / โฟกัสคอมโพเนนต์ เช่น ปุ่ม จะแสดงการวางซ้อนสถานะที่ถูกต้อง
เวอร์ชัน 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 จะเป็น Flag ที่คำนวณจากค่า PopupProperties ซึ่งส่งผลให้เกิด Flag ของ WindowManager เช่น โฟกัสได้ ผลลัพธ์ของ Lambda จะเป็น Flag สุดท้ายที่จะส่งไปยัง WindowManager ของ Android โดยค่าเริ่มต้น updateAndroidWindowManagerFlags จะไม่เปลี่ยนแปลง Flag ที่คำนวณจากพารามิเตอร์ คุณควรใช้ 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 เพื่อระบุแหล่งที่มาของการโต้ตอบให้กับ 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 ให้ใช้Dp.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 ให้ใช้พารามิเตอร์ FilterQuality (Ie4fb0, b/180311607) ด้วย - เปลี่ยนชื่อ BadgeBox เป็น BadgedBox และเปลี่ยนพารามิเตอร์ให้ยอมรับคอมโพสิชันป้าย เพิ่มคอมโพเนนต์ป้ายซึ่งเป็นเนื้อหาป้ายทั่วไปสำหรับ BadgedBox (I639c6)
- เพิ่มคอมโพเนนต์ NavigationRail โปรดดูข้อมูลการใช้งานในเอกสารประกอบและตัวอย่าง (I8de77)
การแก้ไขข้อบกพร่อง
- เพิ่มตัวอย่าง NavigationRail ที่ปรับแนวด้านล่างและสาธิตแอปแคตตาล็อก (I3cffc)
- ตอนนี้กล่องโต้ตอบจะเป็นไปตามลักษณะการปรับขนาดแพลตฟอร์ม ตั้งค่า usePlatformDefaultWidth เป็น false เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
- เพิ่มการสาธิตแถบนําทางในแอปแคตตาล็อก (I04960)
- เพิ่มการสาธิตป้ายลงในแอปแคตตาล็อก (If285d)
รุ่น 1.0
เวอร์ชัน 1.0.5
3 พฤศจิกายน 2021
androidx.compose.material:material-*:1.0.5
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.5 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องในการติดตามอินสแตนซ์ derivedStateOf (aosp/1792247)
เวอร์ชัน 1.0.4
13 ตุลาคม 2021
androidx.compose.material:material-*:1.0.4
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.4 มีการคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependency
- อัปเดตให้ใช้ Kotlin
1.5.31
เวอร์ชัน 1.0.3
29 กันยายน 2021
androidx.compose.material:material-*:1.0.3
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.3 มีคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependency
- อัปเดตให้ใช้ Kotlin
1.5.30
เวอร์ชัน 1.0.2
1 กันยายน 2021
androidx.compose.material:material-*:1.0.2
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.2 มีคอมมิตเหล่านี้
อัปเดตเพื่อรองรับรุ่น Compose 1.0.2
Compose 1.0.2
จะยังคงใช้งานร่วมกับ Kotlin 1.5.21
ได้
เวอร์ชัน 1.0.1
4 สิงหาคม 2021
androidx.compose.material:material-*:1.0.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependency
- อัปเดตให้ใช้ Kotlin
1.5.21
เวอร์ชัน 1.0.0
28 กรกฎาคม 2021
androidx.compose.material:material-*:1.0.0
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
นี่เป็นเวอร์ชันเสถียรครั้งแรกของ Compose โปรดดูรายละเอียดเพิ่มเติมในบล็อกการเผยแพร่อย่างเป็นทางการของ Compose
ปัญหาที่ทราบ
หากคุณใช้ Android Studio Bumblebee Canary 4 หรือ AGP
7.1.0-alpha04
/7.1.0-alpha05
คุณอาจพบข้อขัดข้องต่อไปนี้java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
วิธีแก้ไขคือเพิ่ม minSdkVersion เป็น 24 ขึ้นไปชั่วคราวในไฟล์
build.gradle
ปัญหานี้จะได้รับการแก้ไขใน Android Studio Bumblebee และ AGP7.1
เวอร์ชันถัดไป (b/194289155)
เวอร์ชัน 1.0.0-rc02
14 กรกฎาคม 2021
androidx.compose.material:material-*:1.0.0-rc02
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-rc02 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ตอนนี้กล่องโต้ตอบจะเป็นไปตามลักษณะการปรับขนาดแพลตฟอร์ม ตั้งค่า
usePlatformDefaultWidth
เป็นเท็จเพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
เวอร์ชัน 1.0.0-rc01
1 กรกฎาคม 2021
androidx.compose.material:material-*:1.0.0-rc01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-rc01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคอมโพเนนต์
BadgeBox
ดูข้อมูลการใช้งานในเอกสารและตัวอย่าง (I5e284) - เปลี่ยนชื่อ
useDefaultMaxWidth
ในPopupProperties
เป็นusePlatformDefaultWidth
แล้ว (I05710) - ตอนนี้กล่องโต้ตอบสามารถใช้ความกว้างของหน้าจอได้เต็มรูปแบบ (I83929, b/190810877)
- เพิ่มการติดตั้งใช้งานแถบเลื่อนช่วงทดลอง (I2f4b3)
การแก้ไขข้อบกพร่อง
- เพื่อให้สอดคล้องกับข้อกำหนดของ Material Design OutlinedTextField ที่มีอินพุตที่ไม่ถูกต้องจะหยุดใช้สีข้อผิดพลาดสำหรับป้ายกำกับเมื่อใช้ป้ายกำกับเป็นตัวยึดตำแหน่ง เงื่อนไขหลังจะเป็นจริงเมื่อไม่มีข้อความป้อนข้อมูลในช่องข้อความและช่องข้อความไม่ได้อยู่ในโฟกัส การเปลี่ยนแปลงนี้ทำให้ความหมายของพารามิเตอร์
error:Boolean
ในฟังก์ชันTextFieldColors.labelColor()
เปลี่ยนแปลงไปด้วย โดยตอนนี้จะแสดงผลเป็นfalse
แม้ว่าอินพุตจะไม่ถูกต้องก็ตามหากมีการใช้ป้ายกำกับเป็นตัวยึดตําแหน่ง (I45f78)
เวอร์ชัน 1.0.0-beta09
16 มิถุนายน 2021
androidx.compose.material:material-*:1.0.0-beta09
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มพารามิเตอร์รูปร่างลงใน OutlinedTextField เพื่อให้ปรับแต่งรูปร่างของเส้นขอบได้ (I8f39e, b/181322957)
- TextOverflow เปลี่ยนเป็นคลาสในบรรทัด (I433af)
การแก้ไขข้อบกพร่อง
- หน้าจอเบลอใน 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
รูปแบบเหล่านี้อาจมีไวลด์การ์ด (
**
,*
และ?
) เพื่อให้กฎเดียวครอบคลุมเมธอดหรือคลาสหลายรายการ
กฎมีไว้เพื่ออะไร
เมธอดที่มี Flag
H
บ่งบอกว่าเมธอดนี้เป็นเมธอด "Hot" และควรคอมไพล์ล่วงหน้าเมธอดที่มี Flag
S
บ่งบอกว่าเป็นเมธอดที่เรียกใช้เมื่อเริ่มต้นระบบ และควรคอมไพล์ล่วงหน้าเพื่อหลีกเลี่ยงค่าใช้จ่ายในการคอมไพล์และการตีความเมธอดเมื่อเริ่มต้นระบบเมธอดที่มี Flag
P
บ่งบอกว่าเป็นเมธอดที่เรียกใช้หลังจากการเริ่มต้นคลาสที่อยู่ในไฟล์นี้บ่งบอกว่ามีการใช้คลาสดังกล่าวระหว่างการเริ่มต้นระบบและควรจัดสรรล่วงหน้าในกองเพื่อหลีกเลี่ยงค่าใช้จ่ายในการโหลดคลาส
ระบบนี้ทำงานอย่างไร
- ไลบรารีสามารถกำหนดกฎเหล่านี้ซึ่งจะรวมอยู่ในอาร์ติแฟกต์ AAR เมื่อสร้าง APK ที่มีอาร์ติแฟกต์เหล่านี้ ระบบจะผสานกฎเหล่านี้เข้าด้วยกันและใช้กฎที่ผสานเพื่อสร้างโปรไฟล์ ART แบบไบนารีที่กะทัดรัดซึ่งเจาะจงสำหรับ APK จากนั้น ART จะใช้โปรไฟล์นี้เมื่อติดตั้ง APK ในอุปกรณ์เพื่อคอมไพล์ชุดย่อยที่เฉพาะเจาะจงของแอปพลิเคชันล่วงหน้าเพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน โดยเฉพาะการใช้งานครั้งแรก โปรดทราบว่าการดำเนินการนี้จะไม่ส่งผลต่อแอปพลิเคชันที่แก้ไขข้อบกพร่องได้
เวอร์ชัน 1.0.0-beta08
2 มิถุนายน 2021
androidx.compose.material:material-*:1.0.0-beta08
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta08 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
การเปลี่ยนแปลง API ที่ทําให้ลักษณะการทํางานเปลี่ยนแปลง
- การเปลี่ยนแปลงลักษณะการทํางาน: ตอนนี้การ์ดจะกินคลิก ทำให้การคลิกที่เพิ่มผ่าน
Card(Modifier.clickable)
ใช้งานไม่ได้ โปรดใช้การโอเวอร์โหลดแบบใหม่ของการ์ดที่ยอมรับ onClick (Ia8744, b/183775620)- เพิ่มการโอเวอร์โหลดของการ์ดใหม่ซึ่งจัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ เช่น บ่งชี้ interactionSource เปิด/ปิดใช้ คุณไม่สามารถใช้การ์ดแบบคลิกไม่ได้ปกติกับ
Modifier.clickable
ได้ เนื่องจากการ์ดจะไม่ตัดการบ่งชี้การกระเพื่อมในกรณีดังกล่าว
- เพิ่มการโอเวอร์โหลดของการ์ดใหม่ซึ่งจัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ เช่น บ่งชี้ interactionSource เปิด/ปิดใช้ คุณไม่สามารถใช้การ์ดแบบคลิกไม่ได้ปกติกับ
- การเปลี่ยนแปลงลักษณะการทํางาน: ตอนนี้ Surface ใช้การคลิก ทำให้การคลิกที่เพิ่มผ่าน
Surface(Modifier.clickable)
ใช้งานไม่ได้ โปรดใช้การโอเวอร์โหลดแบบใหม่ของการทดสอบของ Surface ที่ยอมรับ onClick (I73e6c, b/183775620)- เพิ่มการโอเวอร์โหลด Surface ใหม่ซึ่งจัดการการคลิกและฟังก์ชันอื่นๆ ที่คลิกได้ เช่น บ่งชี้ interactionSource เปิด/ปิดใช้ คุณไม่สามารถใช้พื้นผิวแบบปกติที่คลิกไม่ได้กับ
Modifier.clickable
ได้ เนื่องจากพื้นผิวจะไม่ตัดการแสดงผลของภาพกระเพื่อมในกรณีดังกล่าว
- เพิ่มการโอเวอร์โหลด Surface ใหม่ซึ่งจัดการการคลิกและฟังก์ชันอื่นๆ ที่คลิกได้ เช่น บ่งชี้ interactionSource เปิด/ปิดใช้ คุณไม่สามารถใช้พื้นผิวแบบปกติที่คลิกไม่ได้กับ
การเปลี่ยนแปลง API
FabPosition
เปลี่ยนเป็นคลาสอินไลน์จาก enum เพื่อรองรับการขยายในอนาคต (I030fb)- ปรับแต่งการใช้ enum เป็นคลาสในบรรทัดเพื่อหลีกเลี่ยงปัญหาเกี่ยวกับคำสั่ง when ที่ครอบคลุมเมื่อมีการเพิ่มค่า enum ใหม่ (I2b5eb)
- เพิ่มการหมดเวลาการแตะไปยังรายการที่คลิกได้/เปิด/ปิดได้เพื่อป้องกันไม่ให้แสดงภาพกระเพื่อมขณะเลื่อน/ลาก (Ia2704, b/168524931)
- พร็อพเพอร์ตี้ ContentDescription และ TextSemantics ไม่ได้เป็นค่าเดี่ยวอีกต่อไป แต่เป็นรายการ ซึ่งจะช่วยให้ผสานข้อมูลดังกล่าวได้โดยไม่ต้องใช้การต่อสตริง รวมถึง API การทดสอบที่ดีขึ้นเพื่อใช้ประโยชน์จากการเปลี่ยนแปลงเหล่านี้ (Ica6bf, b/184825850)
Modifier.focusModifier()
เลิกใช้งานแล้วและแทนที่ด้วยModifier.focusTarget()
(I6c860)- แทนที่
FocusState
enum ด้วยอินเทอร์เฟซFocusState
(Iccc1a, b/187055290) - นํา
LocalRippleNativeRendering
ออกแล้วเนื่องจากการติดตั้งใช้งาน Ripple ที่รองรับ View ทำงานได้อย่างเสถียร (I7fab3, b/188569367)
การแก้ไขข้อบกพร่อง
Modifier.onGloballyPositioned()
มีการเปลี่ยนแปลงเพื่อรายงานพิกัดของตัวแก้ไขนี้ในเชนตัวแก้ไข ไม่ใช่พิกัดเลย์เอาต์หลังจากใช้ตัวแก้ไขทั้งหมด ซึ่งหมายความว่าตอนนี้ลําดับของตัวแก้ไขจะส่งผลต่อพิกัดที่จะรายงาน (Ieb67d, b/177926591)- เพิ่ม README สำหรับแคตตาล็อกวัสดุของ Compose ที่มีอยู่ (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 ชั่วคราวและจะถูกนําออกในอนาคต ดังนั้นหากคุณพบปัญหาที่ทําให้คุณต้องใช้ API นี้ โปรดรายงานข้อบกพร่อง (I902f8, b/168777351, b/183019123) - เพิ่ม CollectionInfo และ CollectionItemInfo Accessibility API ที่อนุญาตให้ทำเครื่องหมายคอลเล็กชันและรายการของคอลเล็กชันสำหรับบริการการช่วยเหลือพิเศษ (Id54ef, b/180479017)
- เพิ่ม Accessibility API
error
ที่อนุญาตให้ทำเครื่องหมายโหนดที่มีอินพุตไม่ถูกต้อง (I12997, b/180584804, b/182142737)
การแก้ไขข้อบกพร่อง
- อัปเดตการใช้งานส่วนตัดของแคตตาล็อก Material ของ Compose จาก https://github.com/google/accompanist/pull/365 (I25dc3)
- แถวและคอลัมน์ย่อยที่มี weight(fill = false) จะไม่ทําให้แถวและคอลัมน์หลักเต็มพื้นที่แกนหลักที่ใช้ได้ทั้งหมดอีกต่อไป (Ied94d, b/186012444, b/184355105)
เวอร์ชัน 1.0.0-beta05
21 เมษายน 2021
androidx.compose.material:material-*:1.0.0-beta05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta05 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- เพิ่มรูปภาพการ์ดคอมโพเนนต์ เครื่องมือเลือกธีม และ URL ของเมนูที่เฉพาะเจาะจงมากขึ้นลงในแคตตาล็อกวัสดุของ Compose ที่มีอยู่ (I9b58e)
เวอร์ชัน 1.0.0-beta04
7 เมษายน 2021
androidx.compose.material:material-*:1.0.0-beta04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การเปลี่ยนแปลง API: สถานะ
DrawerState
ไม่ได้ขยาย SwipeableState เวอร์ชันทดลองอีกต่อไป- การเปลี่ยนแปลง API: ตอนนี้
BottomDrawerState
ได้รับการทําเครื่องหมายเป็นเวอร์ชันทดลองเพื่อให้ตรงกับคอมโพเนนต์ BottomDrawer เวอร์ชันทดลองอยู่แล้ว (I81114, b/181656094)
- การเปลี่ยนแปลง API: ตอนนี้
- เปลี่ยนชื่อ
hideSoftwareKeyboard
และshowSoftwareKeyboard
ในSoftwareKeyboardController
เป็นhide()
และshow()
ตามลำดับ- ระบุอินเทอร์เฟซ CompositionLocal แบบสมบูรณ์สําหรับ LocalSoftwareKeyboardController ซึ่งจะช่วยให้ตั้งค่าได้ (มีประโยชน์อย่างยิ่งในการทดสอบ) (I579a6)
- เพิ่ม Accessibility API ของ LiveRegion หากทำเครื่องหมายโหนดเป็นภูมิภาคที่เผยแพร่อยู่ บริการการช่วยเหลือพิเศษจะแจ้งให้ผู้ใช้ทราบเกี่ยวกับการเปลี่ยนแปลงโดยอัตโนมัติ (Idcf6f, b/172590946)
การแก้ไขข้อบกพร่อง
- เพิ่มการใช้งานแคตตาล็อกวัสดุของ Compose ลงในโมดูลที่มีอยู่ ขณะนี้ยังไม่มีรูปภาพการ์ดคอมโพเนนต์ เครื่องมือเลือกธีม (จะเพิ่มในการเปลี่ยนแปลงที่ตามมา) (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 เพื่อให้สอดคล้องกับ Row (Ib2dc7)
- เพิ่มโมดูลใหม่และ UI ตัวยึดตำแหน่งสำหรับแคตตาล็อกวัสดุของ Compose ซึ่งตอนนี้ฝังอยู่ในเดโมการทดสอบการผสานรวมที่มีอยู่ (Idfcb3)
androidx.compose.ui:ui
ไม่ได้ขึ้นอยู่กับ AppCompat หรือ Fragment อีกต่อไป หากคุณใช้ ComposeView ในแอปพลิเคชันและกำลังใช้ Fragment และ/หรือ AppCompat โปรดตรวจสอบว่าคุณใช้ AppCompat 1.3 ขึ้นไป / Fragment 1.3 ขึ้นไป เนื่องจากเวอร์ชันเหล่านี้จำเป็นต้องใช้เพื่อตั้งค่าวงจรชีวิตของ ComposeView และเจ้าของสถานะที่บันทึกไว้อย่างถูกต้อง (I1d6fa, b/161814404)
เวอร์ชัน 1.0.0-beta01
24 กุมภาพันธ์ 2021
androidx.compose.material:material-*:1.0.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
นี่เป็นรุ่นแรกของ Compose 1.0.0 เบต้า
การเปลี่ยนแปลง API
- เปลี่ยนชื่อตัวแก้ไขขนาด เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize เปลี่ยนชื่อ Modifier.preferredWidth/preferredHeight/preferredSize เป็น width/height/size (I5b414)
- ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยายในคอมพาเนียน ImageBitmap และ ImageVector ตามลำดับแล้ว เราได้ลบฟังก์ชัน load{Image,Vector,Font}Resource ออกแล้ว (I89130)
- ตัวแก้ไขสำหรับการปรับขนาดตามค่าอินทรีย์ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I15744)
- นำการยืนยัน dp ออกแล้ว (I798d2)
- นำการเรียกกลับ SoftwareKeyboardController ออกจากช่องข้อความทั้งหมดเพื่อแทนที่ด้วย API ใหม่ในเร็วๆ นี้ (Iae869, b/168778053)
- ตอนนี้ Lambda การดำเนินการของ Switch, Checkbox และ RadioButton จะเป็นค่า Null ได้ ตัวอย่างช่องทําเครื่องหมายในแถวที่คลิกได้อัปเดตให้ใช้ฟีเจอร์นี้ (If601b, b/171819073)
- แทนที่
InteractionState
ด้วย[Mutable]InteractionSource
แล้ว- อินเทอร์เฟซมีหน้าที่ส่ง / รวบรวมเหตุการณ์การโต้ตอบ
- ใช้
interactionSource = remember { MutableInteractionSource() }
แทนการส่งinteractionState = remember { InteractionState() }
ไปยังคอมโพเนนต์ เช่นButton
และModifier.clickable()
- แทนที่จะใช้
Interaction.Pressed in interactionState
คุณควรใช้ฟังก์ชันส่วนขยายใน InteractionSource เช่น InteractionSource.collectIsPressedAsState() - สําหรับ Use Case ที่ซับซ้อน คุณสามารถใช้ InteractionSource.interactions เพื่อสังเกตการณ์สตรีมของการโต้ตอบ ดูข้อมูลเพิ่มเติมในเอกสารประกอบและตัวอย่างของ InteractionSource
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- เพิ่มอินเทอร์เฟซ AccessibilityManager และ LocalAccessibilityManager ใน 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 ที่อนุญาตให้ทำเครื่องหมายคอลเล็กชันแท็บหรือปุ่มตัวเลือกเพื่อวัตถุประสงค์ด้านการช่วยเหลือพิเศษ (Ie5c29)
เพิ่ม LazyListState.animateScrollToItem
วิธีนี้จะเลื่อนไปยังรายการที่เฉพาะเจาะจงในรายการอย่างราบรื่น (I4bfd7)
เปลี่ยนชื่อ
ScrollableState.smoothScrollBy()
เป็นanimateScrollBy()
เปลี่ยนชื่อLazyListState.snapToItemIndex()
เป็นscrollToItem()
เปลี่ยนชื่อScrollState.smoothScrollTo()
เป็นanimateScrollTo()
(I35ded)ตอนนี้คอมโพสิเบิลที่ทำเครื่องหมายด้วย
@ReadOnlyComposable
ได้รับการตรวจสอบเมื่อคอมไพล์เพื่อให้มั่นใจว่ามีการเรียกใช้เฉพาะ@ReadOnlyComposables
อื่นๆ เท่านั้น (I58961)นำ TargetAnimation API ออกแล้ว (If47d1, b/177457083)
ตอนนี้ตำแหน่งการเลื่อนใน Modifier.verticalScroll()/horizontalScroll() จะแสดงด้วย Int (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)
การวางแนวย้ายไปอยู่ในแพ็กเกจ Foundation แล้ว ย้าย 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 ไม่ได้อยู่ในช่วงทดลองอีกต่อไป
- นําฟังก์ชัน clearRoots ระดับบนสุด
@TestOnly
ออกแล้ว ไม่จำเป็นต้องใช้อีกต่อไป - เราได้นําฟังก์ชัน keySourceInfoOf และ resetSourceInfo ออกแล้ว จึงไม่จําเป็นต้องใช้อีกต่อไป
- นํา Composer.collectKeySourceInformation ออกแล้ว ไม่จำเป็นต้องใช้อีกต่อไป
- ระบบได้นำเมธอด isJoinedKey, joinedKeyLeft และ joinedKeyRight ออกแล้ว จึงไม่จําเป็นต้องใช้อีกต่อไป
- เราได้ย้ายและจัดระเบียบ API ระดับบนสุดต่างๆ ไว้ในไฟล์ต่างๆ การดำเนินการนี้จะทำลายความเข้ากันได้ของไฟล์ แต่จะไม่ทำลายความเข้ากันได้ของซอร์สโค้ด เนื่องจากความหมายของคลาสไฟล์ Kotlin จึงไม่ควรเป็นปัญหาสำหรับผู้ใช้ส่วนใหญ่
- (I99b7d, b/177245490)
Modifier.scrollable ได้รับการปรับใหม่ ตอนนี้ใช้อินเทอร์เฟซ Scrollable แทนคลาส ScrollableController (I4f5a5, b/174485541, b/175294473)
ตอนนี้ Modifier.draggable ยอมรับ DraggableState แทน Lambda ธรรมดาแล้ว คุณสามารถสร้างสถานะผ่าน
rememberDraggableState { delta -> }
เพื่อให้มีการทำงานเหมือนเดิมได้ (Ica70f, b/175294473)ตอนนี้ ZoomableController.smoothScaleBy และ ZoomableController.stopAnimation เป็นฟังก์ชันที่หยุดไว้ชั่วคราว (I7f970, b/177457083)
ลบ API บางรายการที่เลิกใช้งานไปก่อนหน้านี้ (Ice5da, b/178633932)
เปลี่ยนแปลง Material API ดังต่อไปนี้
- เพิ่มพารามิเตอร์ contentPadding ลงใน Top/BottomAppBar เพื่ออนุญาตให้ปรับแต่งการเว้นวรรคเริ่มต้น
- จัดเรียงพารามิเตอร์ใน BackdropScaffold ใหม่เพื่อให้เป็นไปตามหลักเกณฑ์ของ API ที่กำหนดให้พารามิเตอร์ที่จำเป็นอยู่ก่อนพารามิเตอร์ที่ไม่บังคับ
- ย้ายพารามิเตอร์
icon
ใน BottomNavigationItem ไปไว้หลังselected
และonClick
- เปลี่ยนชื่อพารามิเตอร์
alwaysShowLabels
ใน BottomNavigationItem เป็นalwaysShowLabel
- เปลี่ยนชื่อพารามิเตอร์
bodyContent
ในคอมโพเนนต์ 2-3 รายการเป็นcontent
- พารามิเตอร์ที่จัดเรียงใหม่ใน
ButtonDefaults.buttonColors()
โปรดทราบว่าเนื่องจากประเภทของพารามิเตอร์ไม่เปลี่ยนแปลง การดำเนินการนี้จะไม่ทำให้เกิดข้อผิดพลาดในโค้ด โปรดตรวจสอบว่าคุณใช้พารามิเตอร์ที่มีชื่อหรืออัปเดตลําดับด้วยตนเอง ไม่เช่นนั้นโค้ดจะไม่ทํางานเหมือนเดิม - เพิ่มพารามิเตอร์
secondaryVariant
ไปยังdarkColors()
แล้ว โดยปกติแล้วสีนี้จะเหมือนกับsecondary
ในธีมมืด แต่เพิ่มเข้ามาเพื่อความสอดคล้องและการปรับแต่งเพิ่มเติม - นํา ElevationDefaults และ animateElevation() ออกจากแพลตฟอร์ม API สาธารณะเนื่องจากไม่ค่อยมีการใช้งาน / มีประโยชน์
- เปลี่ยนชื่อ
onValueChangeEnd
ในSlider
เป็นonValueChangeFinished
และกำหนดให้มีค่า Null ได้ - เปลี่ยนชื่อพารามิเตอร์
text
ในSnackbar
เป็นcontent
เพื่อให้สอดคล้องกัน - เพิ่มพารามิเตอร์
contentPadding
ลงในDropdownMenuItem
เพื่ออนุญาตให้ปรับแต่งการเยื้องเริ่มต้น และทําให้content
เป็นส่วนขยายของRowScope
- เปลี่ยนชื่อ
ModalDrawerLayout
เป็นModalDrawer
แล้ว - เปลี่ยนชื่อ
BottomDrawerLayout
เป็นBottomDrawer
แล้ว - (I1cc66)
ตอนนี้ BasicTextField ยอมรับแปรงแทนสีเพื่อให้ปรับแต่งได้ดียิ่งขึ้น (I83a36)
ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยายในคอมพาเนียน ImageBitmap และ ImageVector ตามลำดับแล้ว เราได้ลบฟังก์ชัน load{Image,Vector,Font}Resource ออกแล้ว (I89130)
เปลี่ยน Indication#createIndication() เป็น Indication#rememberUpdatedIndication(InteractionState) และนําพารามิเตอร์ InteractionState ออกจาก IndicationInstance#drawIndication() IndicationInstance ควรมีหน้าที่รับผิดชอบในการวาดเอฟเฟกต์ภาพเท่านั้น และไม่ควรเปิดใช้งานภาพเคลื่อนไหว / เขียนสถานะเพื่อตอบสนองต่อการเปลี่ยนแปลงของ InteractionState ภาพเคลื่อนไหวและการเขียนสถานะเหล่านี้ควรเกิดขึ้นภายใน
rememberUpdatedIndication()
แทน พารามิเตอร์indication
ในModifier.indication
ยังเปลี่ยนเป็นแบบพารามิเตอร์ที่ต้องระบุด้วย (Ic1764, b/152525426)
การแก้ไขข้อบกพร่อง
- เพิ่ม API ใหม่สำหรับองค์ประกอบ LocalSoftwareKeyboardController แทนอินเทอร์เฟซ 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 ต้องใช้คีย์การจดจำเพื่อระบุว่าควรรีสตาร์ทโคโริวทีนการตรวจหาการป้อนข้อมูลด้วยเคอร์เซอร์เมื่อใดสำหรับข้อกําหนดใหม่ (I849cd)
- ได้ทำเครื่องหมาย BottomDrawerLayout และ ListItem เป็น @ExperimentalMaterialApi แล้ว (Id766e)
- เพิ่ม PaddingValues.Absolute แล้ว ซึ่งสามารถใช้ใน API ที่ยอมรับ PaddingValues (Ia5f30)
- onImeActionPerformed เลิกใช้งานแล้ว ให้ใช้ KeyboardActions แทน (If0bbd, b/179071523)
- เราได้เปลี่ยนชื่อ ImagePainter เป็น BitmapPainter เพื่อให้สอดคล้องกับรูปแบบการตั้งชื่อของ ImageBitmap และ ImageVector มากขึ้น และเพื่อให้สอดคล้องกับ VectorPainter (Iba381, b/174565889)
- ตอนนี้ Animatable.snapTo และ Animatable.stop เป็นฟังก์ชันที่หยุดทำงานแล้ว (If4288)
- ComponentActivity.setContent ได้ย้ายไปอยู่ใน androidx.activity.compose.setContent ในโมดูล androidx.activity:activity-compose (Icf416)
- ระบบได้นำเมธอดการจัดโครงสร้างใหม่และ 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) - เปลี่ยนชื่อ "ภาพพักหน้าจอ" ให้ตรงกับ "ภาพพักหน้าจอ" -> เปลี่ยนชื่อ CompositionLocal เดิมองค์ประกอบรอบข้างมีชื่อว่า AmbientFoo แต่ตอนนี้ CompositionLocals มีชื่อว่า LocalFoo (I2d55d)
- ย้ายการเลือกไปยังมูลนิธิแล้ว (I7892b)
- ในทำนองเดียวกับที่เรานําคอมโพสิเบิล
state { 0 }
ออกก่อนหน้านี้และตอนนี้ส่งเสริมให้ใช้คอมโพสิเบิลremember { mutableStateOf(0) }
เราจะนําคอมโพสิเบิลsavedInstanceState { 0 }
ออก คุณควรใช้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 จาก left/right เป็น start/end เพื่อรองรับการมิเรอร์อัตโนมัติของรูปร่างในทิศทาง rtl AbsoluteRounderCornerShape และ AbsoluteCutCornerShape เปิดตัวสำหรับกรณีที่ไม่ต้องการให้มีการแสดงผลแบบมิเรอร์อัตโนมัติ (I61040, b/152756983)
เปลี่ยนพารามิเตอร์
text
และicon
ของ Tab และพารามิเตอร์label
ของ BottomNavigationItem ให้เป็นแบบที่อนุญาตค่า Null เพื่อให้สื่อถึงลักษณะการทํางานของคอมโพเนนต์ได้ดีขึ้นเมื่อระบุ / ไม่ระบุพารามิเตอร์เหล่านี้ เนื่องจากส่งผลต่อขนาดและเลย์เอาต์ของคอมโพเนนต์ หากปัจจุบันคุณส่งemptyContent()
เพื่อแสดงว่าไม่มีข้อความ / ไอคอน / ป้ายกำกับ คุณควรใช้null
แทน (I57ed4)เปลี่ยนชื่อพารามิเตอร์สี contentColorFor เป็น backgroundColor (I5bb67)
เลิกใช้งาน TabDefaults และแทนที่ด้วย TabRowDefaults (I0f189)
เปิดตัว ColorMatrix API ที่ใช้เพื่อแก้ไขค่า RGB ของเนื้อหาต้นทาง ปรับแต่ง ColorFilter API ให้เป็นอินเทอร์เฟซและจับคู่กับการใช้งาน PathEffect (Ica1e8)
เลิกใช้งาน AnimatedValue/Float แล้ว โปรดใช้ Animatable แทน (I71345, b/177457083)
เพิ่ม SemanticsProperties.PaneTitle API (I20d5a)
เพิ่มพารามิเตอร์ที่เปิดใช้ใน Tab และ BottomNavigationItem เพื่อป้องกันไม่ให้คลิกได้ เปลี่ยน BottomNavigationItem เป็น RowScope.BottomNavigationItem เพื่อแสดงข้อกำหนดของเลย์เอาต์ใน API ได้ดียิ่งขึ้น (Id683d)
เลิกใช้งาน tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter และ pressIndicaitonGestureFilter แล้ว ให้ใช้ Modifier.clickable หรือ Modifier.pointerInput กับฟังก์ชัน detectTapGestures แทน (I6baf9, b/175294473)
เพิ่มพารามิเตอร์ layoutDirection ไปยัง createOutline ของ Shape ซึ่งช่วยให้สร้างรูปร่างที่คำนึงถึงทิศทางของเลย์เอาต์ได้ (I57c20, b/152756983)
นำ
Recomposer.current()
ออกแล้ว [Abstract]ตอนนี้ ComposeView จะตั้งค่าเริ่มต้นเป็น Recomposer ระดับหน้าต่างที่สร้างขึ้นแบบล่าช้าโดย ViewTreeLifecycleOwner ของหน้าต่าง การคอมโพสิชันใหม่และการนับภาพเคลื่อนไหวตาม 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
- โปรโมต Material API บางรายการให้ไม่ใช่
@Experimental
อีกต่อไป (I5d20e) - เพิ่มพารามิเตอร์คำอธิบายเนื้อหาลงในรูปภาพและไอคอนแล้ว ใช้เพื่อระบุคำอธิบายบริการการช่วยเหลือพิเศษ (I2ac4c)
- เปลี่ยนอินเทอร์เฟซพารามิเตอร์ที่มีสถานะของ Material ให้ใช้ฟังก์ชัน @Composable ที่แสดงผล
State<T>
เพิ่มAnimatable.asState()
เพื่อให้แปลง Animatable เป็นสถานะได้ง่ายขึ้น และเปลี่ยน animateElevation เป็นส่วนขยายที่ระงับใน Animatable ด้วย (If613c) - Snackbar, SnackbarHost, SnackbarHostState ไม่ใช่
@ExperimentalMaterialAPI
อีกต่อไป (Id1fb5) - เปลี่ยน Typography, Shapes และ TabPosition ไม่ให้จัดอยู่ในคลาสข้อมูลอีกต่อไป เพิ่มฟังก์ชันการคัดลอกสำหรับแบบอักษรและรูปร่างเพื่อแทนที่แบบอักษรและรูปร่างที่สร้างขึ้น (I40037)
- ลบ Material API บางรายการที่เลิกใช้งานไปแล้วก่อนหน้านี้ (Ifaa25)
การแก้ไขข้อบกพร่อง
- เราเลิกใช้งาน onCommit, onDispose และ onActive แล้วเพื่อหันมาใช้ SideEffect และ DisposableEffect API (If760e)
- เลิกใช้งาน Transition ตาม TransitionDefinition แล้ว (I0ac57)
- ตอนนี้ระบบรองรับสถานะเริ่มต้นใน updateTransition แล้ว (Ifd51d)
- WithConstraints ได้รับการปรับโฉมใหม่เป็น BoxWithConstraints และย้ายไปอยู่ใน foundation.layout (I9420b, b/173387208)
เลิกใช้งาน scrollBy ที่ไม่หยุดทำงานและนำ scrollTo ที่ไม่หยุดทำงานออก
ตอนนี้เราขอแนะนำให้ใช้ฟังก์ชันการระงับเพื่อควบคุมการเลื่อนและรอให้การเลื่อนเสร็จสิ้น เรากําลังเลิกใช้งานและ/หรือนําฟังก์ชันเหล่านี้เวอร์ชันที่ไม่มีการระงับออกเป็นส่วนหนึ่งของการเปลี่ยนแปลงนี้ (Ie9ced)
เลิกใช้งาน smoothScrollBy ที่ไม่หยุดทำงาน ตอนนี้เราขอแนะนำให้ใช้ฟังก์ชันการหยุดทำงานเพื่อควบคุมการเลื่อนและรอให้เลื่อนจนเสร็จ เราจะเลิกใช้งานเวอร์ชันที่ไม่มีการระงับของฟังก์ชันเหล่านี้เป็นส่วนหนึ่งของการเปลี่ยนแปลงนี้ (I12880)
เปิดตัว
ComposeContentTestRule
ซึ่งขยายจากComposeTestRule
และกำหนดsetContent
ซึ่งนําออกจากComposeTestRule
แล้ว เพิ่มเมธอดแฟกทอรีcreateEmptyComposeRule()
ที่แสดงผลComposeTestRule
และไม่เปิด Activity ให้คุณ ใช้คำสั่งนี้เมื่อคุณต้องการเปิดใช้งานกิจกรรมระหว่างการทดสอบ เช่น ใช้ActivityScenario.launch
(I9d782, b/174472899)คุณจะปรับแต่งภาพกระเพื่อมที่ใช้ใน Button และ FloatingActionButton ไม่ได้อีกต่อไปโดยระบุการบ่งชี้ใหม่ผ่าน AmbientIndication เนื่องจากนี่ไม่ใช่วิธีปรับแต่งคอมโพเนนต์เหล่านี้ และตอนนี้ก็ทำให้คอมโพเนนต์เหล่านี้สอดคล้องกับคอมโพเนนต์ Material อื่นๆ หากต้องการปรับแต่งภาพคลื่นในแอปพลิเคชัน ให้ดู 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)
ตอนนี้แพลตฟอร์มมีองค์ประกอบย่อยของเลย์เอาต์ได้หลายรายการ (I66a92, b/144488459)
ตอนนี้เราเลิกใช้งาน invalidate และ compositionReference() แล้ว และใช้ currentRecomposeScope และ rememberCompositionReference แทน (I583a8)
เปลี่ยน PopupPositionProvider ให้ใช้พิกัดแบบสัมพันธ์กับหน้าต่าง ไม่ใช่พิกัดแบบสัมบูรณ์ เปลี่ยนชื่อ parentGlobalBounds เป็น anchorBounds และเปลี่ยน windowGlobalBounds เป็น
windowSize: IntSize
(I2994a)ระบบจะนำ Duration และ Uptime ไปแทนที่ด้วย Long milliseconds และขั้นตอนนี้จะนําการพึ่งพาอินพุตเคอร์เซอร์ในคลาสเหล่านั้นออก (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 แทน เพื่อไม่ให้ผู้ใช้ใช้วิธีที่ไม่มีประสิทธิภาพ ผู้ใช้ยังคงเลือกได้ว่าไม่ต้องการลักษณะการทำงานแบบ Lazy และจะใช้ตัวแก้ไขโดยตรงได้ดังนี้ Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)
items(count: Int)
เมธอดแฟกทอรีใหม่สำหรับขอบเขตของ 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
- แก้ไข Velocity ให้มีองค์ประกอบและการดำเนินการทางคณิตศาสตร์ (Ib0447)
- เปลี่ยนชื่อ
@ExperimentalTesting
เป็น@ExperimentalTestApi
เพื่อให้สอดคล้องกับคำอธิบายประกอบ API เวอร์ชันทดลองที่คล้ายกัน (Ia4502, b/171464963) - เปลี่ยนชื่อ Position เป็น DpOffset และนํา getDistance() ออก (Ib2dfd)
- เปลี่ยนชื่อ Color.useOrElse() เป็น Color.takeOrElse() (Ifdcf5)
- เพิ่มปุ่มเปิด/ปิดลงใน 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)- เพิ่ม Semantics Role API และเพิ่ม Role เป็นพารามิเตอร์ให้กับ SemanticsModifier ที่คลิกได้ เลือกได้ และเปิด/ปิดได้ เปลี่ยน Modifier.progressSemantics เพื่อให้ Slider ใช้งานได้ด้วย (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) คอมโพซรองรับตัวรับพร็อพเพอร์ตี้ที่ทําการเรียกใช้แบบคอมโพซได้ เราจะยังคงรองรับรูปแบบนี้ แต่ไวยากรณ์สำหรับการประกาศตัวรับพร็อพเพอร์ตี้เป็น @Composable จะเปลี่ยนไป
ไวยากรณ์ที่เลิกใช้งานแล้วซึ่งใช้ทำเช่นนี้คือการกำกับเนื้อหาพร็อพเพอร์ตี้เอง
@Composable val someProperty: Int get() = ...
ไวยากรณ์ที่ถูกต้องสำหรับการดำเนินการนี้คือการทำคำอธิบายประกอบของ getter ของพร็อพเพอร์ตี้
val someProperty: Int @Composable get() = ...
ไวยากรณ์ทั้ง 2 รูปแบบจะใช้งานได้อีกระยะหนึ่ง แต่ไวยากรณ์ที่เลิกใช้งานก่อนหน้านี้จะกลายเป็นข้อผิดพลาดในการคอมไพล์ในที่สุด (Id9197)
เพิ่มคลัง
androidx.compose.material:material-ripple
ที่มี API ของ Ripple เพื่อช่วยในการสร้างคอมโพเนนต์แบบอินเทอร์แอกทีฟโดยไม่ต้องใช้คลัง Material ที่เหลือ เราได้เลิกใช้งาน rememberRippleIndication แล้วและแทนที่ด้วย rememberRipple (Ibdf11)
การแก้ไขข้อบกพร่อง
- ตอนนี้ Lambda ในตัวแก้ไขออฟเซตจะแสดงผล IntOffset แทน Float (Ic9ee5, b/174137212, b/174146755)
ปรับโครงสร้าง ShaderBrush ให้สร้างอินสแตนซ์ Shader แบบไม่สนใจเมื่อมีข้อมูลการปรับขนาดของสภาพแวดล้อมการวาด ซึ่งมีประโยชน์ในการกําหนดไล่ระดับสีที่ครอบครองขอบเขตการวาดทั้งหมดของคอมโพสิเบิล ณ เวลาจัดองค์ประกอบ โดยไม่ต้องติดตั้งใช้งาน DrawModifier ที่กําหนดเอง
API ตัวสร้างฟังก์ชันการไล่ระดับสีที่เลิกใช้งานแล้วเพื่อใช้เมธอดการสร้างในออบเจ็กต์ Gradient (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 เพิ่ม Type Alias ของ VectorAssetBuilder เพื่อลิงก์กับ ImageVector.Builder เพื่อความเข้ากันได้ (Icfdc8)
- เปลี่ยนชื่อ ImageAsset และเมธอดที่เกี่ยวข้องเป็น ImageBitmap (Ia2d99)
- ย้ายพร็อพเพอร์ตี้ความหมายพื้นฐานไปยัง ui (I6f05c)
fun RippleIndication()
เลิกใช้งานแล้วและแทนที่ด้วยrememberRippleIndication()
เพื่อให้สอดคล้องกับ API อื่นๆ (Id8e2c)- เพิ่มพารามิเตอร์ singeLine ลงใน BasicTextField, TextField และ OutlinedTextField ตั้งค่าพารามิเตอร์นี้เป็น "จริง" เพื่อให้ช่องข้อความเป็นบรรทัดเดียวที่เลื่อนในแนวนอนได้ (I57004, b/168187755)
การแก้ไขข้อบกพร่อง
- เพิ่มการดำเนินการตามความหมาย "ปิด" (I2b706)
- ย้าย API ของ DrawModifier จากแพ็กเกจ androidx.compose.ui ไปยังแพ็กเกจ androidx.compose.ui.draw สร้างไฟล์ DrawModifierDeprecated.kt เพื่อรวมการแทนที่ประเภท/เมธอดตัวช่วยเพื่อช่วยในการย้ายข้อมูลจาก API ที่เลิกใช้งานไปยัง API ปัจจุบัน (Id6044, b/173834241)
- เปลี่ยนชื่อ Modifier.drawLayer เป็น Modifier.graphicsLayer และอัปเดตคลาสที่เกี่ยวข้องเป็น GraphicsLayer ตามความคิดเห็นเกี่ยวกับ API ด้วย (I0bd29, b/173834241)
- นํา
<T>
ออกจากการประกาศ SubcomposeLayout แล้ว ตอนนี้คุณใช้แอตทริบิวต์นี้โดยไม่ต้องระบุประเภทได้แล้ว (Ib60c8) - เพิ่ม Modifier.scale/rotate
API เพื่อความสะดวกใน drawLayer
- เปลี่ยนชื่อ
Modifier.drawOpacity
เป็นModifier.alpha
แล้ว - เปลี่ยนชื่อ
Modifier.drawShadow
เป็นModifier.shadow
แล้ว (I264ca, b/173208140)
- เปลี่ยนชื่อ
- เปลี่ยนชื่อพารามิเตอร์การจัดตำแหน่งของกล่องเป็น contentAlignment (I2c957)
- เปลี่ยนชื่อตัวแก้ไข offsetPx เป็น offset ตอนนี้ใช้พารามิเตอร์ Lambda แทนสถานะ (Ic3021, b/173594846)
- เปิดตัว SweepGradientShader และ SweepGradientBrush API (Ia22c1)
- เพิ่มการตรวจสอบ Lint สําหรับพารามิเตอร์ตัวแก้ไขในฟังก์ชัน Composable การตรวจสอบ Lint นี้จะตรวจสอบการตั้งชื่อ ประเภทผลลัพธ์ ค่าเริ่มต้น และลําดับของพารามิเตอร์เพื่อให้สอดคล้องกับหลักเกณฑ์ของ Compose (If493b)
- TextFieldValue API ที่อัปเดตแล้ว
- ทําให้ TextFieldValue.composition เป็นอ่านอย่างเดียว
- นำข้อยกเว้นที่แสดงขึ้นเนื่องจากช่วงการเลือกไม่ถูกต้องออกแล้ว (I4a675, b/172239032)
- เพิ่มการโอเวอร์โหลด
Modifier.drawLayer()
ใหม่ โดยจะใช้บล็อก Lambda ใน GraphicsLayerScope ใหม่ที่คุณกําหนดพารามิเตอร์เลเยอร์ในลักษณะที่ข้ามการจัดองค์ประกอบใหม่และการจัดวางใหม่เมื่อเกิดการเปลี่ยนแปลงสถานะ ตอนนี้ DrawLayerModifier เป็นข้อมูลภายในเพื่อเตรียมย้ายข้อมูลตรรกะไปยังเมธอดplaceable.placeWithLayer()
ของ LayoutModifier (I15e9f, b/173030831) - เลิกใช้งานแอมเบียนท์ที่มีชื่อต่อท้ายด้วย
Ambient
และแทนที่ด้วยพร็อพเพอร์ตี้ใหม่ที่ขึ้นต้นด้วยแอมเบียนท์ตามหลักเกณฑ์อื่นๆ ของแอมเบียนท์และ Compose API (I33440) - เพิ่มการตรวจสอบ Lint เพื่อตรวจสอบว่าโรงงานตัวแก้ไขใช้
androidx.compose.ui.composed {}
ภายในแทนที่จะทําเครื่องหมายเป็น@Composable
(I3c4bc) - เปลี่ยนชื่ออาร์กิวเมนต์เชิงความหมาย mergeAllDescendants เป็น mergeDescendants (Ib6250)
- ตอนนี้การควบคุมเวลาในการทดสอบ (TestAnimationClock และการใช้งาน) อยู่ในช่วงทดลอง (I6ef86, b/171378521)
- นําโมดูล ui-test เก่าและสตับออก (I3a7cb)
- TextUnit.Inherit เปลี่ยนชื่อเป็น TextUnit.Unspecified เพื่อให้สอดคล้องกับหน่วยอื่นๆ (Ifce19)
- อัปเดตอินเทอร์เฟซการจัดแนวและทําให้ใช้งานได้ (I46a07, b/172311734)
- เปลี่ยนชื่อ id เป็น layoutId สำหรับ LayoutIdParentData Measurable.id เปลี่ยนชื่อเป็น Measurable.layoutId (Iadbcb, b/172449643)
เวอร์ชัน 1.0.0-alpha07
11 พฤศจิกายน 2020
androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
และ androidx.compose.material:material-icons-extended:1.0.0-alpha07
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราเลิกใช้งาน Emphasis แล้วและแทนที่ด้วย AmbientContentAlpha AmbientContentAlpha เป็นการแยกแยะระดับชั้นที่ง่ายขึ้นซึ่งแสดงค่าอัลฟาของเนื้อหาที่ต้องการสำหรับลําดับชั้นบางส่วน คล้ายกับที่ AmbientContentColor แสดงสีของเนื้อหาที่ต้องการ ตอนนี้ข้อความและไอคอนจะใช้ค่าปัจจุบันจาก AmbientContentAlpha โดยค่าเริ่มต้น และคุณสามารถดำเนินการ
color.copy(alpha = AmbientContentAlpha.current)
ด้วยตนเองเพื่อให้เกิดผลเหมือนกันในคอมโพเนนต์ คุณระบุค่าผ่าน AmbientContentAlpha ได้โดยตรงแทนการใช้ ProvideEmphasis และใช้ระดับเริ่มต้นใหม่ใน ContentAlpha เพื่อแทนที่ EmphasisLevels เดิม (Idf03e, b/159017896) - เพิ่ม androidx.compose.material.AmbientContentColor เข้ามาแทนที่ androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- เพิ่ม androidx.compose.material.Text เข้ามาแทนที่ androidx.compose.foundation.Text เป็นคอมโพเนนต์ข้อความระดับสูงที่กำหนดธีมได้ สำหรับคอมโพเนนต์ข้อความพื้นฐานที่ไม่ได้ใช้สี / สไตล์ข้อความจากธีม ให้ใช้ BasicText (Ie6ae0)
- เพิ่ม maxLines ลงใน TextField (Ib2a5b)
- อัปเดต TextFields ให้ยอมรับ KeyboardOptions (Ida7f3)
- ตอนนี้พื้นผิวจะใช้ความสูงสัมบูรณ์ (ทั้งหมด) เมื่อคำนวณการวางซ้อนความสูง ดังนั้นพื้นผิวที่ฝังอยู่ในพื้นผิวอื่นจะใช้ความสูงรวมเพื่อวาดการวางซ้อน (I7bd2b, b/171031040)
การแก้ไขข้อบกพร่อง
- ย้าย
captureToBitmap
ไปยังcaptureToImage
แล้ว (I86385) - เลิกใช้งาน AmbientTextStyle, ProvideTextStyle และ AmbientContentColor พื้นฐานแล้ว โปรดใช้เวอร์ชันใหม่ที่มีอยู่ในคลังวัสดุแทน สําหรับแอปพลิเคชันที่ไม่ใช่ Material คุณควรสร้างบรรยากาศการธีมเฉพาะสำหรับระบบการออกแบบของคุณเองแทน ซึ่งจะใช้ได้ในคอมโพเนนต์ของคุณเอง (I74acc, b/172067770)
- เราเลิกใช้งาน foundation.Text แล้วและแทนที่ด้วย material.Text สำหรับ API ข้อความพื้นฐานที่ไม่แสดงความคิดเห็นซึ่งไม่ใช้ค่าจากธีม โปรดดู androidx.compose.foundation.BasicText (If64cb)
- เปลี่ยนชื่อ KeyboardOptions เป็น ImeOptions (I82f36)
- ย้าย KeyboardType และ ImeAction ไปยัง KeyboardOptions (I910ce)
- เลิกใช้งาน BaseTextField แล้ว ให้ใช้ BasicTextField แทน (I896eb)
- นําคําอธิบายประกอบ ExperimentalSubcomposeLayoutApi ออกแล้ว ตอนนี้ SubcomposeLayout ใช้ได้โดยไม่ต้องเพิ่ม @OptIn แล้ว (I708ad)
- ย้าย FirstBaseline และ LastBaseline ไปยังแพ็กเกจ androidx.compose.ui.layout แล้ว (Ied2e7)
- อัปเดต Icon API ให้รับ Color.Unspecified เป็นสีที่เป็นไปได้ซึ่งจะวาดชิ้นงานหรือโปรแกรมวาดภาพที่ให้ไว้โดยไม่มี ColorFilter ก่อนหน้านี้ การพยายามละเว้นการปรับสีด้วย Color.Unspecified จะปรับสีด้วยสีโปร่งใสซึ่งทำให้ไม่มีการแสดงผลใดๆ เลย (I049e2, b/171624632)
- เปลี่ยนชื่อ relativePaddingFrom เป็น paddingFrom เพิ่มตัวแก้ไข paddingFromBaseline เพื่อระบุระยะห่างจากขอบเขตเลย์เอาต์ไปยังบรรทัดฐานของข้อความ (I0440a, b/170633813)
- เปลี่ยนชื่อ LaunchedTask เป็น LaunchedEffect เพื่อให้สอดคล้องกับ API ของ SideEffect และ DisposableEffect ไม่อนุญาตให้ใช้ LaunchedEffect ที่ไม่มีพารามิเตอร์เรื่องเพื่อส่งเสริมแนวทางปฏิบัติแนะนำ (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 ได้หากไม่ต้องการใช้คลังวัสดุ (I9f622)
- เพิ่ม FloatingActionButtonElevation เพื่อแสดงระดับความสูงที่ FAB ใช้ในสถานะต่างๆ ดูการใช้งานเริ่มต้นที่ FloatingActionButtonConstants.defaultElevation() (I2d4f5)
- เพิ่มอินเทอร์เฟซ SwitchColors เพื่อแสดงสีที่ใช้โดย Switch ในสถานะต่างๆ ดู 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 เมื่อ overflow เป็น 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 และเพิ่มพารามิเตอร์สำหรับนาฬิกาภาพเคลื่อนไหว เปลี่ยนชื่อพารามิเตอร์ backdropScaffoldState ของ BackdropScaffold เป็นแค่ scaffoldState เปลี่ยนชื่อจาก BackdropConstants เป็น BackdropScaffoldConstants (Ib644d)
- เพิ่มคอมโพเนนต์ BottomSheetScaffold เวอร์ชันทดลอง (Ie02f0, b/148996320)
- เพิ่มคอมโพเนนต์ ModalBottomSheetLayout เวอร์ชันทดลอง (Ic209e, b/148996320)
- เปลี่ยนชื่อ ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation เป็น defaultElevation และตอนนี้จะแสดงผลค่า Dp แทน AnimatedValue (I5f3ed)
การแก้ไขข้อบกพร่อง
- อัปเดต Graphics API หลายรายการ
- อัปเดต API การเปลี่ยนรูปแบบการแปลงขนาดและการหมุนเพื่อใช้พารามิเตอร์การเลื่อนตำแหน่งเดียวเพื่อแสดงพิกัดจุดหมุนแทนการใช้พารามิเตอร์ float แยกต่างหากสำหรับพิกัด x/y ใน DrawScope และ DrawTransform
- นําเมธอด Rect.expandToInclude และ Rect.join ออกแล้ว
- อัปเดตเอกสารประกอบของรัศมีเป็น "รูปไข่" นอกเหนือจาก "รูปไข่รี"
- เพิ่มเอกสารประกอบเพื่อระบุว่าไม่ควรเรียกใช้คอนสตรัคเตอร์แบบสาธารณะของคลาส Radius แบบอินไลน์โดยตรง แต่ควรสร้างอินสแตนซ์ออบเจ็กต์ Radius ผ่านคอนสตรัคเตอร์ของฟังก์ชันแทน
- นำ RoundRect API ออกเพื่อค้นหา 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)
- เปลี่ยนชื่อกองเป็นกล่องแล้ว เราจะเลิกใช้งาน Box ที่มีอยู่ก่อนหน้านี้เพื่อใช้ Box ใหม่ใน compose.foundation.layout ลักษณะการทํางานของกล่องใหม่คือการซ้อนองค์ประกอบย่อยไว้บนกันเมื่อมีองค์ประกอบย่อยหลายรายการ ซึ่งแตกต่างจากกล่องเวอร์ชันเก่าที่ทํางานคล้ายกับคอลัมน์ (I94893, b/167680279)
- เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการมีการตกแต่ง/ระยะห่างจากขอบในกล่อง ให้ใช้ตัวแก้ไขแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
- อัปเดต Graphics API หลายรายการ
- อัปเดต DrawScope API ด้วยเมธอดการเปลี่ยนรูปแบบแบบมีขอบเขตเพื่อระบุว่าจะใช้การเปลี่ยนรูปแบบภายในการเรียกกลับเท่านั้น และนำออกหลังจากเรียกการเรียกกลับแล้ว
- อัปเดตเอกสารประกอบ clipPath เพื่อใช้อ้างอิงเส้นทางแทนสี่เหลี่ยมผืนผ้ามน
- แก้ไขระยะห่างในเอกสารประกอบสำหรับพารามิเตอร์ด้านขวาใน clipPath
- เปลี่ยนชื่อ DrawScope.drawCanvas เป็น drawIntoCanvas และนําพารามิเตอร์ขนาดออก
- เปลี่ยนชื่อพารามิเตอร์ dx/dy ในเมธอด inset เป็นแนวนอนและแนวตั้ง
- เพิ่มการโอเวอร์โหลดของ inset ที่ให้ค่า inset เดียวกันกับขอบทั้ง 4
- นำเอกสารประกอบเกี่ยวกับวิธีการใส่ข้อความที่ระบุว่าจะมีการใส่ข้อความทั้ง 4 ด้านออก
- เอกสารประกอบที่อัปเดตสำหรับคลาส Rect
- อัปเดตความคิดเห็นเกี่ยวกับพารามิเตอร์ Rect ให้ตรงกับ kdoc style
- นํา 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) - Label กลายเป็นพารามิเตอร์ที่ไม่บังคับภายใน 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)
- การใช้การถ่วงน้ำหนักได้รับการเปลี่ยนชื่อเป็น "จัดแนว" หรือ "การจัดแนว" ใน API เลย์เอาต์อย่างสอดคล้องกัน (I2421a, b/164077038)
- เพิ่ม onNode และเมธอดส่วนกลางอื่นๆ ใน ComposeTestRule เนื่องจากเมธอดส่วนกลางปัจจุบันจะเลิกใช้งาน (Ieae36)
- ย้าย
createAndroidComposeRule
และAndroidInputDispatcher
จากandroidx.ui.test.android
ไปยังandroidx.ui.test
แล้ว (Idef08, b/164060572)
เวอร์ชัน 1.0.0-alpha02
2 กันยายน 2020
androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
และ androidx.compose.material:material-icons-extended:1.0.0-alpha02
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคอมโพเนนต์ BackdropScaffold เวอร์ชันทดลอง (Iad908)
การแก้ไขข้อบกพร่อง
- Matrix4 ถูกแทนที่ด้วย Matrix ส่วนอื่นๆ ทั้งหมดของแพ็กเกจ vectormath ถูกนำออกแล้ว (Ibd665, b/160140398)
เวอร์ชัน 1.0.0-alpha01
26 สิงหาคม 2020
androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
และ androidx.compose.material:material-icons-extended:1.0.0-alpha01
เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีการคอมมิตเหล่านี้
ปัญหาที่ทราบ
= นำอักขระแรกในวัสดุ TextField
ออกโดยใช้แป้น Backspace ไม่ได้ (b/165956313)
เวอร์ชัน 0.1.0-dev
เวอร์ชัน 0.1.0-dev17
19 สิงหาคม 2020
androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
และ androidx.compose.material:material-icons-extended:0.1.0-dev17
เผยแพร่แล้ว เวอร์ชัน 0.1.0-dev17 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้นำ RadioGroup และ RadioGroupItems เลิกใช้งานไปแล้วก่อนหน้านี้ ใช้ Row และ RadioBotton แทน (I381b7, b/163806637)
- นำการเรียกกลับ onFocusChanged ออกจาก TextField แล้ว ใช้ Modifier.focusObserver แทน (I51089, b/161297615)
- เลิกใช้งาน Modifier.drawBorder แล้ว ใช้ Modifier.border แทน BorderStroke (I4257d, b/158160576) เข้ามาแทนที่คลาสข้อมูลเส้นขอบ
- เปลี่ยนชื่อพร็อพเพอร์ตี้บางอย่างใน SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction เพิ่มฟังก์ชัน rememberSwipeableState สำหรับการสร้าง SwipeableState (I2fc9c, b/163129614, b/163132293)
- เพิ่มการรองรับ Snackbar ที่มีการจัดตำแหน่งและการจัดคิวที่เหมาะสม เข้าถึงผ่านฟังก์ชันระงับของ
SnackbarHostState.showSnackbar
นอกจากนี้- เพิ่มคอมโพเนนต์ SnackbarHost แล้ว โดยโฮสต์ Snackbar ตามสถานะและรับผิดชอบการเปลี่ยนระหว่าง Snackbar
- เราได้เพิ่ม SnackbarHostState เพื่อควบคุม Snackbar, โฮสต์ Snackbar และแยกออกจาก 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) - มีการปรับพารามิเตอร์ thresholds ใน Modifier.swipeable ตอนนี้พารามิเตอร์นี้รับคู่สถานะ (ประเภท T) และแสดงผลเกณฑ์ระหว่างสถานะเหล่านั้นในรูปแบบ ThresholdConfig เพิ่มพารามิเตอร์ dismissThresholds ลงใน SwipeToDismiss ซึ่งเป็น Lambda (DismissDirection) -> ThresholdConfig (Ie1080)
- แถบเลื่อนมีสีเพิ่มเติมสำหรับการปรับแต่งแบบละเอียด (I73e64, b/161810475)
- เปลี่ยนชื่อพารามิเตอร์สีของการ์ดเป็น backgroundColor (I01fc1, b/161809546)
- ตอนนี้สแน็กบาร์มีสีพื้นหลังและสีเนื้อหาที่ปรับแต่งได้ (I238f2, b/161804381)
- เพิ่มพารามิเตอร์การปรับแต่ง modifier, backgroundColor, contentColor และ scrimColor ลงในลิ้นชัก (I23655, b/161804378)
- ตอนนี้เราเลิกใช้งานคอมโพสิเบิล
state { ... }
แล้วเพื่อหันไปใช้การเรียกใช้remember { mutableStateOf(...) }
อย่างชัดแจ้งเพื่อความชัดเจน ซึ่งจะลดจำนวน API โดยรวมและจำนวนแนวคิดสำหรับการจัดการสถานะ และตรงกับรูปแบบby mutableStateOf()
สำหรับการมอบสิทธิ์พร็อพเพอร์ตี้ของคลาส (Ia5727) - เปลี่ยนชื่อพารามิเตอร์การเว้นวรรคของปุ่มเป็น contentPadding (Id252e, b/161809394)
- เพิ่มคอมโพเนนต์ SwipeToDismiss ของ Material ที่ทดลองใช้ (I129e5)
การแก้ไขข้อบกพร่อง
- นำ
onChildPositioned
และOnChildPositionedModifier
ออกแล้ว นักพัฒนาแอปควรใช้onPositioned
และOnPositionedModifier
ในเลย์เอาต์ย่อยแทน (I4522e, b/162109766) - เพิ่มแลมดา 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 เพื่อปรับให้เข้ากับรูปแบบการตั้งชื่อคอมโพสิทได้ดีขึ้น สร้างตัวสร้างฟังก์ชันที่คล้ายกับ 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 ผสานรวมกับ 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
- เปลี่ยนชื่อลิสต์ค่าคงที่ ClipOp เป็น Pascal Case
- เปลี่ยนชื่อเอนทิตี FilterQuality เป็น Pascal Case
- เปลี่ยนชื่อลิสต์ค่าคงที่ StrokeJoin เป็น Pascal Case
- เปลี่ยนชื่อเอนทิตี PointMode เป็น Pascal Case
- เปลี่ยนชื่อเอนทิตี PaintingStyle เป็น Pascal Case
- เปลี่ยนชื่อเอนทิตี PathFillType เป็น Pascal Case
- เปลี่ยนชื่อลิสต์ค่าคงที่ StrokeCap เป็น Pascal Case
- อัปเดตการใช้งาน DrawCache เพื่อไม่ให้ใช้พารามิเตอร์ lateinit อีกต่อไป
- อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบเลื่อนเวลาดำเนินการอีกต่อไปสำหรับพารามิเตอร์ภายในของ fillPaint และ strokePaint
- อัปเดตคอมโพสิชันรูปภาพเพื่อหลีกเลี่ยงการใช้ Box เพื่อลดค่าใช้จ่ายเพิ่มเติม
- อัปเดตคลาส Outline ให้มีคําอธิบายประกอบ @Immutable
- อัปเดต PathNode ให้มีคําอธิบายประกอบ @Immutable สําหรับคำสั่งเส้นทางแต่ละรายการ
- อัปเดตองค์ประกอบย่อยเวกเตอร์เพื่อนำการตรวจสอบแบบมีเงื่อนไขที่ซ้ำซ้อนออกเพื่อหาค่าเท่ากัน เนื่องจากคอมโพสิชันจัดการการตรวจสอบดังกล่าวอยู่แล้ว
- เลิกใช้งานเมธอดคอนสตรัคเตอร์ของ Rect ที่ใช้ร่วมกันเพื่อหันไปใช้คอนสตรัคเตอร์ของฟังก์ชัน
- อัปเดตคลาส Brush และตัวสร้างฟังก์ชันด้วย @Immutable และ @Stable API
- อัปเดต VertexMode enum เป็น PascalCase
- อัปเดตเมธอด selectPaint ของ DrawScope ให้เขียนทับพารามิเตอร์การวาดใน Paint ตามเงื่อนไขหากมีการเปลี่ยนแปลง
- อัปเดต Size เพื่อเพิ่ม 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 แทน "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 มีการคอมมิตเหล่านี้
การอัปเดตทรัพยากร Dependencies
- หากต้องการใช้ Compose เวอร์ชัน
0.1.0-dev15
คุณจะต้องอัปเดต Dependency ตามข้อมูลโค้ดใหม่ที่แสดงด้านบนในการประกาศ Dependency
การเปลี่ยนแปลง API
เลิกใช้งานคำอธิบายประกอบ
@Model
แล้ว ใช้ state และ mutableStateOf แทน เราตัดสินใจเลิกใช้งานฟีเจอร์นี้หลังจากได้หารือกันอย่างรอบคอบแล้วเหตุผล
โดยเหตุผลประกอบอาจรวมถึงแต่ไม่จํากัดเพียงรายการต่อไปนี้
- ลดจำนวน API และแนวคิดที่เราจำเป็นต้องสอน
- สอดคล้องกับชุดเครื่องมืออื่นๆ ที่เปรียบเทียบได้ (Swift UI, React, Flutter) มากขึ้น
- ผลการตัดสินที่ย้อนกลับได้ เราสามารถนำ
@Model
กลับมาใช้งานได้ในภายหลัง - นำการใช้งานเฉพาะกรณีและคำถามที่ตอบได้ยากเกี่ยวกับการกำหนดค่า
@Model
ออกเนื่องจากเป็นสิ่งที่เราต้องจัดการ @Model
data class, equals, hashcode ฯลฯ- ฉันจะทําให้พร็อพเพอร์ตี้บางรายการ "สังเกต" และพร็อพเพอร์ตี้อื่นๆ ไม่สังเกตได้อย่างไร
- ฉันจะระบุความเท่าเทียมเชิงโครงสร้างเทียบกับความเท่าเทียมเชิงอ้างอิงเพื่อใช้ในการสังเกตได้อย่างไร
- ลด "ความมหัศจรรย์" ในระบบ ช่วยลดโอกาสที่ผู้ใช้จะคิดว่าระบบฉลาดกว่าที่เป็น (เช่น รู้ว่าต้องดำเนินการอย่างไรกับรายการ)
- ทําให้รายละเอียดของการสังเกตใช้งานง่ายขึ้น
- ปรับปรุงความสามารถในการเปลี่ยนรูปแบบจากตัวแปร -> พร็อพเพอร์ตี้ในคลาส
- อาจเปิดโอกาสให้ทําการเพิ่มประสิทธิภาพที่เจาะจงรัฐด้วยตนเอง
- สอดคล้องกับระบบนิเวศส่วนอื่นๆ มากขึ้นและลดความคลุมเครือเกี่ยวกับ "สถานะที่เปลี่ยนแปลงไม่ได้" หรือ "การยอมรับสถานะที่เปลี่ยนแปลงได้"
หมายเหตุการย้ายข้อมูล
การใช้งาน
@Model
ที่มีอยู่เกือบทั้งหมดจะเปลี่ยนรูปแบบได้ง่ายๆ ใน 2 วิธี ตัวอย่างด้านล่างมีคลาส@Model
ที่มีพร็อพเพอร์ตี้ 2 รายการเพื่อใช้เป็นตัวอย่างเท่านั้น และมีการใช้คลาสดังกล่าวในคอมโพสิเบิล@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)
เพิ่มพารามิเตอร์ thresholds ใน stateDraggable เพื่อระบุเกณฑ์ระหว่างจุดยึด ซึ่งใช้ในการตั้งค่าเกณฑ์ 56dp ในลิ้นชักด้านล่าง นอกจากนี้ BottomDrawerLayout ยังใช้ลิสต์ค่า BottomDrawerState แยกต่างหากด้วย (I533fa)
นำ Modifier.ripple ที่ใช้ไม่ได้แล้วก่อนหน้านี้ออก ตอนนี้ Clickable ใช้การกระเพื่อมเป็นการแสดงผลเริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณจะใช้ Clickable และรับการแสดงผลการกระเพื่อมได้ฟรี หากต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ขอบเขตของภาพกระเพื่อม คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยัง clickable ในฐานะพารามิเตอร์การระบุ (I663b2, b/155375067)
นำการลบล้างที่เลิกใช้งานแล้วของคอมโพสิชัน FilledTextField ออก (I7f8f8)
เปลี่ยนชื่อออบเจ็กต์ Button (ซึ่งมีค่าเริ่มต้นที่ฟังก์ชัน Button ใช้) เป็น ButtonConstants (I7c5f7, b/159687878)
ตอนนี้ช่องเนื้อหาของปุ่มจะทํางานแบบแถว (มีประโยชน์เมื่อคุณต้องมีไอคอนที่มีข้อความ ดูตัวอย่างการเขียนในปุ่ม) (I0ff10, b/158677863)
เราได้เลิกใช้งาน RadioGroup และ RadioGroupItem แล้ว ใช้กล่องที่มี Modifier.selectable, Row และ Column เพื่อสร้างชุดตัวเลือก radioButton ที่เหมาะสมตามการออกแบบของคุณ (I7f5cf, b/149528535)
เพิ่มช่องข้อความขอบมน (I1a518)
เลิกใช้งาน androidx.ui.foundation.TextFieldValue และ androidx.ui.input.EditorValue แล้ว คอมโพสิเบิล 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 ใช้การกระเพื่อมเป็นการแสดงผลเริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณจะใช้ Clickable และรับการแสดงผลการกระเพื่อมได้ฟรี หากต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ขอบเขตของภาพกระเพื่อม คุณสามารถสร้าง 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 และระบุ 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 และ FAB แบบขยายเป็น MaterialTheme.colors.secondary แล้ว (I3b9b9, b/154118816)
แทนที่การใช้ Color ที่อนุญาตค่า Null ทั้งหมดใน API ด้วยค่าที่อนุญาตค่า Null และใช้ Color.Unset แทนค่า Null (Iabaa7)
เปลี่ยนชื่อ EdgeInsets เป็น InnerPadding เปลี่ยนชื่อพารามิเตอร์ innerPadding ของปุ่ม Material เป็น padding (I66165)
ตอนนี้แถบเลื่อนเป็นแบบไม่มีสถานะแล้ว ผู้ใช้จะต้องส่งและอัปเดตสถานะด้วยตนเอง เช่นเดียวกับในการควบคุมอื่นๆ (Ia00aa)
นำ StaticDrawer ออกแล้ว หากต้องการใช้ ให้ใช้กล่องที่มีความกว้างที่ระบุไว้ในวัสดุแทน (I244a7)
เพิ่มการใช้งาน Material Design ของช่องข้อความที่กรอกแล้ว (Ic75cd)
เพิ่มพารามิเตอร์ตัวแก้ไขลงใน ListItem และจัดเรียงพารามิเตอร์ใหม่เพื่อส่งเสริมบอดี้ Lambda ต่อท้าย (I66e21)
เพิ่มพารามิเตอร์คอนสตรัคเตอร์ defaultFontFamily ลงใน Typography ซึ่งช่วยให้ระบุชุดแบบอักษรเริ่มต้นที่จะใช้กับ TextStyles ที่ระบุซึ่งไม่มีการตั้งค่าชุดแบบอักษรได้ (I89d07)
นำตารางข้อมูลวัสดุออกจากแพลตฟอร์ม API ชั่วคราว (Iaea61)
เปลี่ยนชื่อพารามิเตอร์ในคอมโพสิชันตัวแบ่ง (Ic4373)
children (Ia6d19)
นำ MaterialTheme.emphasisLevels ออก และใช้ EmphasisAmbient.current เพื่อดึงข้อมูลระดับการเน้นแทน (Ib5e40)
ระบบธีมรูปร่างได้รับการอัปเดตตามข้อกำหนดของการออกแบบ Material ตอนนี้คุณสามารถระบุรูปร่างขนาดเล็ก กลาง และใหญ่เพื่อให้คอมโพเนนต์ส่วนใหญ่ใช้ (Ifb4d1)
เปลี่ยน API ของ MaterialTheme เช่น MaterialTheme.colors() และ MaterialTheme.typography() เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน นำวงเล็บออกจากการเรียกที่มีอยู่ คาดว่าจะไม่มีการเปลี่ยนแปลงลักษณะการทำงาน (I3565a)
ปรับโครงสร้าง FloatingActionButton API เพื่อยอมรับ Lambda แบบคอมโพสิเบิลแทนรูปแบบพื้นฐาน ดูตัวอย่างที่อัปเดตแล้วเพื่อดูข้อมูลการใช้งาน (I00622)
เพิ่มพารามิเตอร์
enabled
ลงในช่องทําเครื่องหมาย สวิตช์ และเปิด/ปิดได้ (I41c16)ตอนนี้ Ripple เป็นแป้นกดร่วมแล้ว แม้ว่าจะยังไม่ได้แปลงค่าที่คลิกได้ แต่การใช้งานที่แนะนําคือ
Clickable(onClick = { ... }, modifier = ripple())
(Ie5200, b/151331852, b/150060763)ย้าย Surface และการ์ดจาก androidx.ui.material.surface ไปยัง androidx.ui.material (I88a6d, b/150863888)
ตอนนี้ Button, FloatingActionButton และ Clickable มีพารามิเตอร์
enabled
แยกกัน มีการเปลี่ยนชื่อหรือจัดลําดับพารามิเตอร์ในปุ่มใหม่ (I54b5a)เปลี่ยนชื่อ Image เป็น ImageAsset เพื่อแยกความแตกต่างระหว่างข้อมูลรูปภาพกับองค์ประกอบรูปภาพที่กำลังจะเปิดตัวซึ่งใช้ในการวางเลย์เอาต์และวาดเนื้อหา _Body:สร้างเมธอดส่วนขยายใน android.graphics.Bitmap, Bitmap.asImageAsset(), เพื่อสร้างอินสแตนซ์ของ ImageAsset ซึ่งมีประโยชน์สำหรับการรวมการพัฒนาแอปพลิเคชัน Android แบบดั้งเดิมเข้ากับเฟรมเวิร์กคอมโพซ (Id5bbd)
นำ Snackbar API ที่มีพารามิเตอร์สตริงออกเพื่อใช้การโอเวอร์โหลดที่ยอมรับ Lambda แบบคอมโพสิเบิล ดูตัวอย่างที่อัปเดตแล้วสำหรับข้อมูลการใช้งาน (I55f80)
ปรับโครงสร้าง Tab API ให้ยอมรับ Lambda
text
และicon
(Ia057e)เพิ่มคอมโพเนนต์ BottomNavigation ดูข้อมูลการใช้งานได้ในเอกสารและตัวอย่าง (I731a0)
เพิ่ม Icon, IconButton และ IconToggleButton และนำ AppBarIcon ออก คุณสามารถแทนที่การใช้งาน AppBarIcon ที่มีอยู่ด้วย IconButton ได้โดยตรง แล้วตอนนี้ไอคอนเหล่านั้นจะมีเป้าหมายการสัมผัสที่ถูกต้อง ดูข้อมูลการใช้งานจากตัวอย่าง และดูไอคอนสำหรับ Material Icons ที่ให้มาซึ่งคุณใช้กับคอมโพเนนต์เหล่านี้ได้โดยตรง (I96849)
แทนที่ ButtonStyle ด้วยฟังก์ชันที่แยกต่างหากและนำการโอเวอร์โหลดข้อความ (สตริง) ออก ดูข้อมูลการใช้งานจากตัวอย่างที่อัปเดตแล้ว (If63ab, b/146478620, b/146482131)
เปลี่ยนชื่อตัวควบคุม
Border
เป็นDrawBorder
(I8ffcc)LayoutCoordinates ไม่มีพร็อพเพอร์ตี้ตำแหน่งแล้ว พร็อพเพอร์ตี้ตำแหน่งจะไม่มีความหมายเมื่อพิจารณา LayoutModifiers, การพลิก หรือการปรับขนาด นักพัฒนาซอฟต์แวร์ควรใช้ parentCoordinates และ childToLocal() เพื่อคํานวณการเปลี่ยนรูปแบบจาก LayoutCoordinate หนึ่งไปยังอีกรูปแบบหนึ่งแทน
LayoutCoordinates ใช้ IntPxSize สำหรับพร็อพเพอร์ตี้ขนาดแทน PxSize เลย์เอาต์ใช้ขนาดพิกเซลแบบจำนวนเต็มสำหรับเลย์เอาต์ ดังนั้นขนาดเลย์เอาต์ทั้งหมดควรใช้จำนวนเต็ม ไม่ใช่ค่าทศนิยม (I9367b)
การเปลี่ยนแปลงที่สำคัญใน Ambients 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 เพื่อประสบการณ์การใช้งานในตัวด้วยลักษณะการทำงานและพารามิเตอร์ของคอลัมน์/แถว หรือ Modifier.verticalScroll และ Modifier.horizontalScroll ในองค์ประกอบของคุณเอง ในทํานองเดียวกัน เราเลิกใช้งาน ScrollerPosition แล้วเพื่อหันมาใช้ ScrollState (I400ce, b/157225838, b/149460415, b/154105299)
- เราได้ทําการแก้ไข API Modifier.draggable และ Modifier.scrollable เราได้นํา DragDirection ออกแล้วเพื่อใช้ Orientation แทน สถานะที่จําเป็นสําหรับการเลื่อนได้ได้รับการลดความซับซ้อน เปลี่ยนชื่อ ScrollableState เป็น ScrollableController แล้ว (Iab63c, b/149460415)
- เปลี่ยนชื่อ
runOnIdleCompose
เป็นrunOnIdle
(I83607) - ตอนนี้พร็อพเพอร์ตี้ความหมายแบบค่าเดี่ยวใช้รูปแบบการเรียกแล้ว เช่น 'semantics { hidden = true }' ตอนนี้เขียนเป็น 'semantics { hidden() }' (Ic1afd, b/145951226, b/145955412)
- มีการเปลี่ยนชื่อ API การทดสอบหลายรายการเพื่อให้เข้าใจง่ายขึ้น API ทั้งหมดของ findXYZ เปลี่ยนชื่อเป็น onNodeXYZ แล้ว API ทั้งหมดของ doXYZ ได้เปลี่ยนชื่อเป็น performXYZ แล้ว (I7f164)
- Transition API มีการเปลี่ยนแปลงให้แสดงผล TransitionState แทนการส่ง TransitionState ไปยังรายการย่อย ซึ่งทำให้ API นี้สอดคล้องกับ API animate() มากขึ้น (I24e38)
- เพิ่มคลาสหน่วย IntBounds ซึ่งแสดงขอบเขตพิกเซลจำนวนเต็มจากเลย์เอาต์ เราได้อัปเดต API ของ PopupPositionProvider เพื่อใช้งานแล้ว (I0d8d0, b/159596546)
- เพิ่ม Flag ใหม่ที่ไม่บังคับอย่าง useUnmergedTree เพื่อทดสอบเครื่องมือค้นหา (I2ce48)
- นำ API การทดสอบขนาดที่ล้าสมัยออก (Iba0a0)
- นําคลาส Shader ในบรรทัดออกซึ่งรวมคลาส NativeShader ไว้แล้ว เปลี่ยนชื่อ NativeShader เป็น Shader คลาสอินไลน์ Shader ที่รวมไว้ไม่ได้เพิ่มสิ่งใดที่มีคุณค่าลงในแพลตฟอร์ม API และเป็นคลาสอินไลน์ ดังนั้นให้ใช้คลาส NativeShader โดยตรง (I25e4d)
- ตอนนี้ป๊อปอัป กล่องโต้ตอบ และเมนูจะรับค่า MaterialTheme ตามบริบท (Ia3665, b/156527485)
- ตอนนี้ DropdownMenu ของ Material เลื่อนได้แล้ว (Ide699)
- นําพารามิเตอร์ทิศทางเลย์เอาต์ออกจากบล็อกการวัดของฟังก์ชัน Layout() อย่างไรก็ตาม ทิศทางของเลย์เอาต์จะอยู่ในคอลแบ็กผ่านออบเจ็กต์ขอบเขตการวัด (Ic7d9d)
- ใช้ AnimationSpec แทน AnimationBuilder ใน API ระดับบนสุดเพื่อชี้แจงแนวคิดเกี่ยวกับข้อกําหนดเฉพาะของภาพเคลื่อนไหวแบบคงที่ - ปรับปรุง DSL การเปลี่ยนรูปแบบโดยนําข้อกําหนดของ Lambda ในการสร้าง AnimationSpecs เช่น Tween, Spring ออก แต่จะรับพารามิเตอร์คอนสตรัคเตอร์โดยตรงแทน -ปรับปรุงความง่ายในการใช้งานโดยรวมของ AnimationSpec โดยเปิดใช้คอนสตรัคเตอร์แทนที่จะใช้ตัวสร้าง -เปลี่ยนระยะเวลาและการหน่วงเวลาสำหรับ KeyFrames และ Tween เป็น Int ซึ่งจะช่วยลดการแคสต์ประเภทที่ไม่จำเป็นและการโอเวอร์โหลดเมธอด (เพื่อรองรับทั้ง Long และ Int) (Ica0b4)
- ตอนนี้สวิตช์จะปรากฏในสถานะปิดอยู่เมื่อตั้งค่า
enabled
เป็นเท็จ (If4624, b/155941869, b/159331694) - เปลี่ยนชื่อ Modifier.tag เป็น Modifier.layoutId เพื่อไม่ให้เกิดความสับสนกับ Modifier.testTag (I995f0)
- ตอนนี้ตำแหน่ง Int ของเส้นการจัดตำแหน่งที่แสดงผลจาก Placeable#get(AlignmentLine) จะไม่เป็นค่า Null หากไม่มีบรรทัดการจัดตำแหน่งที่ค้นหา ระบบจะแสดงผล AlignmentLine.Unspecified (I896c5, b/158134875)
ปรับโครงสร้างคลาส Radius เป็นคลาสแบบอินไลน์ นําเมธอดการสร้างคอมพาเนียนออกเพื่อใช้ตัวสร้างฟังก์ชันที่มีพารามิเตอร์เริ่มต้นเพื่อให้รัศมีตามแนวแกน y ตรงกับพารามิเตอร์รัศมีตามแนวแกน x ที่ต้องระบุ
อัปเดต DrawScope.drawRoundRect ให้ใช้พารามิเตอร์ Radius รายการเดียวแทนค่า float แยกกัน 2 ค่าสำหรับรัศมีตามแกน x และ y (I46d1b)
เพื่อรวมจำนวนคลาสที่ใช้แสดงข้อมูลตำแหน่ง ให้ใช้คลาส Offset แทน PxPosition ซึ่งให้ประโยชน์ของคลาสอินไลน์เพื่อใช้ประโยชน์จาก long เพื่อแพ็กค่า Float 2 ค่าเพื่อแสดงค่าออฟเซ็ต x และ y ที่แสดงเป็น Float (I3ad98)
แทนที่การใช้คลาส Px ในคลาสคอมโพสิต์ต่างๆ เป็นส่วนหนึ่งของความพยายามในการรีแฟกทอริงครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล ลบชั้น Px ทั้งหมด (I3ff33)
เลิกใช้งานคอมโพเนนต์ที่เปิด/ปิดได้ ใช้ Modifier.toggleable แทน (I35220, b/157642842)
แทนที่การใช้คลาส Px ในคลาสคอมโพสิต์ต่างๆ เป็นส่วนหนึ่งของความพยายามในการรีแฟกทอริงครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (I086f4)
แทนที่การใช้คลาส Px ในคลาสคอมโพสิต์ต่างๆ เป็นส่วนหนึ่งของความพยายามในการรีแฟกทอริงครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (Id3434)
แทนที่การใช้คลาส Px ในคลาสคอมโพสิต์ต่างๆ เป็นส่วนหนึ่งของความพยายามในการรีแฟกทอริงครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (I97a5a)
แก้ไขการเรียกใช้ onClick สำหรับ DropdonMenuItems ที่ไม่ทำงาน (I3998b, b/157673259)
เลิกใช้งาน MutuallyExclusiveSetItem แล้ว ใช้ Modifier.selectable แทน (I02b47, b/157642842)
เลิกใช้งาน TestTag แล้ว ใช้ Modifier.testTag แทน (If5110, b/157173105)
เคอร์เซอร์ของ TextField มีภาพเคลื่อนไหวกะพริบ (Id10a7)
แทนที่การใช้คลาส Px ในคลาสคอมโพสิต์ต่างๆ เป็นส่วนหนึ่งของความพยายามในการรีแฟกทอริงครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (I19d02)
ตอนนี้ VerticalScroller มีคอลัมน์ให้ใช้งานทันที ตอนนี้ HorizontalScroller มีแถวให้ใช้งานตั้งแต่แกะกล่อง (Ieca5d, b/157020670)
แทนที่การใช้คลาส Px ในคลาสคอมโพสิทต่างๆ เป็นส่วนหนึ่งของความพยายามในการรีแฟกทอริงครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (Iede0b)
Modifier.semantics เลิกเลิกใช้งานแล้วเพื่อให้ใช้กับคอมโพเนนต์ระดับสูงได้ (I4cfdc)
มีการเปลี่ยนแปลง API ของตัวแก้ไข DrawLayer โดยเปลี่ยนชื่อ outlineShape เป็น shape และมีค่าเริ่มต้นเป็น RectangleShape และตอนนี้ไม่ใช่ค่าที่ลบไม่ได้ เปลี่ยนชื่อ clipToOutline เป็น clip นำ clipToBounds ออกเนื่องจากเหมือนกับ clip == true ที่มี RectangleShape (I7ef11, b/155075735)
อัปเดต API ระดับที่สูงขึ้นเพื่อแสดง Canvas ให้แสดง CanvasScope แทน ซึ่งทำให้ผู้บริโภคไม่ต้องดูแลรักษาออบเจ็กต์ Paint ของตนเอง สําหรับผู้บริโภคที่ยังคงต้องการเข้าถึง Canvas อยู่ สามารถใช้เมธอดของส่วนขยาย drawCanvas ซึ่งจะให้การเรียกกลับเพื่อออกคําสั่งวาดด้วย Canvas ที่อยู่เบื้องหลัง (I80afd)
คอมโพสิชัน AlignmentLineOffset เลิกใช้งานแล้ว โปรดใช้ตัวแก้ไข relativePaddingFrom() แทน นําคอมโพสิเบิล CenterAlignmentLine ออกแล้ว (I60107)
มีการเปลี่ยนแปลง API ของแลมดาต่อท้าย 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)
การอัปเดต TextField API - ผสานการเรียกกลับ onFocus และ onBlur เข้าด้วยกันเป็นการเรียกกลับ onFocusChange(Boolean) รายการเดียวพร้อมพารามิเตอร์ (I66cd3)
เพิ่มพารามิเตอร์ verticalGravity และ horizontalGravity ลงในแถวและคอลัมน์ตามลำดับ (I7dc5a)
อัปเดต wrapContentWidth และ wrapContentHeight เพื่อใช้การวางแนวแนวตั้งหรือแนวนอนแทนการวางแนว เราได้อัปเดตตัวแก้ไขแรงโน้มถ่วงให้ยอมรับการจัดแนวแนวตั้งหรือแนวนอน อัปเดตแถว คอลัมน์ และกองเพื่อรองรับการจัดแนวต่อเนื่องที่กำหนดเอง (Ib0728)
สร้าง PixelMap API เพื่อรองรับการค้นหาข้อมูลพิกเซลจาก ImageAsset (I69ad6)
นำ ProvideContentColor ออก และใช้ ContentColorAmbient กับ
Providers
โดยตรงแทน (Iee942)เปลี่ยนชื่อโมดูล ui-text-compose เป็น ui-text ตอนนี้ ui-text มีคอมโพสิเบิล CoreText และ CoreTextField แล้ว (Ib7d47)
เปลี่ยนชื่อโมดูล ui-text เป็น ui-text-core (I57dec)
ย้ายคอมโพสิเบิล ui-framework/CoreText, CoreTextField ไปไว้ภายใต้ ui-text-compose คุณอาจต้องใส่ ui-text-compose ในโปรเจ็กต์ (I32042)
ปรับปรุง DrawModifier API
- สร้างขอบเขตผู้รับสำหรับ ContentDrawScope ของ draw()
- นําพารามิเตอร์ทั้งหมดใน draw() ออก
- DrawScope มีอินเทอร์เฟซเดียวกับ CanvasScope เดิม
- ContentDrawScope มีเมธอด drawContent() (Ibaced, b/152919067)
ตอนนี้
runOnIdleCompose
และrunOnUiThread
เป็นฟังก์ชันส่วนกลางแทนเมธอดใน ComposeTestRule (Icbe8f)[Mutable]ย้ายโอเปอเรเตอร์ตัวรับมอบสิทธิ์พร็อพเพอร์ตี้สถานะไปยังส่วนขยายเพื่อรองรับการเพิ่มประสิทธิภาพตัวรับมอบสิทธิ์พร็อพเพอร์ตี้ของ Kotlin 1.4 ผู้โทรต้องเพิ่มการนําเข้าเพื่อใช้
by state { ... }
หรือby mutableStateOf(...)
ต่อ (I5312c)เพิ่ม positionInParent และ boundsInParent สำหรับ LayoutCoordinates (Icacdd, b/152735784)
เลิกใช้งาน ColoredRect แล้ว ให้ใช้ Box(Modifier.preferredSize(width, height).drawBackground(color)) แทน (I499fa, b/152753731)
เปลี่ยนชื่อ LayoutResult เป็น MeasureResult (Id8c68)
เพิ่ม LayoutModifier2 ซึ่งเป็น API ใหม่สำหรับการกำหนดตัวแก้ไขเลย์เอาต์ เลิกใช้งาน LayoutModifier (If32ac)
แทนที่โอเปอเรเตอร์ตัวเพิ่มตัวแก้ไขด้วยฟังก์ชันส่วนขยายของโรงงาน (I225e4)
ย้ายรายการที่ลากไปไว้ในตัวแก้ไข (Id9b16, b/151959544)
เราเลิกใช้งานคอมโพสิเบิล ParentData แล้ว คุณควรสร้างตัวแก้ไขที่ใช้อินเทอร์เฟซ ParentDataModifier หรือใช้ตัวแก้ไข LayoutTag หากต้องการติดแท็กองค์ประกอบย่อยของเลย์เอาต์เพื่อจดจําภายในบล็อกการวัด (I51368, b/150953183)
คอมโพสิชันศูนย์ที่เลิกใช้งานแล้ว ควรแทนที่ด้วยตัวแก้ไข LayoutSize.Fill + LayoutAlign.Center หรือคอมโพสิชัน Box หรือ Stack รายการใดรายการหนึ่งที่ใช้ตัวแก้ไขที่เหมาะสม (Idf5e0)
เพิ่ม VectorPainter API เพื่อแทนที่ API องค์ประกอบย่อยที่มีอยู่สำหรับกราฟิกเวกเตอร์ ผลลัพธ์ขององค์ประกอบย่อยคือออบเจ็กต์ VectorPainter แทนที่จะเป็น DrawModifier เลิกใช้งาน DrawVectorcomposable ก่อนหน้านี้เพื่อใช้ VectorPainter แทน
เปลี่ยนชื่อ Image(Painter) API เป็น PaintBox(Painter) สร้างคอมโพสิชันเวกเตอร์ที่ทํางานเหมือนคอมโพสิชันรูปภาพ ยกเว้นการใช้ VectorAsset แทน ImageAsset (I9af9a, b/149030271)
เปลี่ยนชื่อ LayoutFlexible เป็น LayoutWeight เปลี่ยนชื่อพารามิเตอร์แบบแน่นเป็น "fill" (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)สร้างคอมโพสิชันรูปภาพเพื่อจัดการขนาด/เลย์เอาต์ นอกเหนือจากการวาด ImageAsset ที่ระบุไปยังหน้าจอ คอมโพสิเบิลนี้ยังรองรับการวาดอินสแตนซ์ Painter ใดก็ได้ตามต้องการโดยคำนึงถึงขนาดโดยธรรมชาติของอินสแตนซ์นั้นๆ รวมถึงรองรับขนาดคงที่หรือขนาดขั้นต่ำที่กำหนด (Ibcc8f)
คอมโพเนนต์ Wrap ที่เลิกใช้งานแล้ว คุณสามารถแทนที่ด้วยตัวแก้ไข LayoutAlign หรือคอมโพสิชัน Stack (Ib237f)
WithConstraints ได้พารามิเตอร์ LayoutDirection (I6d6f7)
ทําให้ระบบส่งต่อทิศทางเลย์เอาต์จากโหนดเลย์เอาต์หลักไปยังโหนดย่อย เพิ่มตัวปรับแต่งทิศทางของเลย์เอาต์ (I3d955)
คอมโพเนนต์สแต็กรองรับทิศทางจากขวาไปซ้าย (Ic9e00)
นำคอมโพสิเบิล DrawShape ออกแล้ว ใช้ตัวแก้ไข DrawBackground แทน (I7ceb2)
รองรับทิศทางจากขวาไปซ้ายในตัวแก้ไข LayoutPadding (I9e8da)
เพิ่ม AdapterList ซึ่งเป็นคอมโพเนนต์รายการแบบเลื่อนที่คอมไพล์และวางตำแหน่งรายการที่มองเห็นได้เท่านั้น ปัญหาที่ทราบในปัจจุบันมีดังนี้ การทำงานเป็นแบบแนวตั้งเท่านั้นและไม่สามารถจัดการกับการเปลี่ยนแปลงทั้งหมดของรายการย่อยได้ (Ib351b)
อัปเดต Flag
ComposeFlags.COMPOSER_PARAM
เป็นtrue
ซึ่งจะเปลี่ยนกลยุทธ์การสร้างโค้ดสำหรับปลั๊กอินการเขียน ในระดับสูง การดำเนินการนี้จะทําให้ระบบสร้างฟังก์ชัน @Composable ที่มีพารามิเตอร์สังเคราะห์เพิ่มเติม ซึ่งจะส่งผ่านไปยังการเรียก @Composable ถัดไปเพื่อให้รันไทม์จัดการการดําเนินการได้อย่างเหมาะสม การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงที่สำคัญซึ่งจะทำให้เกิดข้อขัดข้องในไบนารี อย่างไรก็ตาม การเปลี่ยนแปลงนี้ควรรักษาความเข้ากันได้ระดับซอร์สโค้ดในการใช้งานคอมโพซทั้งหมดที่ได้รับอนุญาต (I7971c)เพิ่มคอมโพเนนต์ Canvas คอมโพสิชันนี้ใช้พื้นที่บางส่วน (ระบุโดยผู้ใช้) และให้คุณวาดโดยใช้ CanvasScope ได้ (I0d622)
เราได้รวม Density และ DensityScope ไว้ในอินเทอร์เฟซเดียว ตอนนี้คุณใช้ DensityAmbient.current แทน ambientDensity() ได้แล้ว แทนที่จะใช้ withDensity(density) ให้ใช้แค่ with(density) (I11cb1)
เปลี่ยน LayoutCoordinates เพื่อให้ providedAlignmentLines เป็น Set แทน Map และทำให้ LayoutCoordinates ใช้โอเปอเรเตอร์ get() แทนในการดึงข้อมูลค่า วิธีนี้ช่วยให้ตัวแก้ไขแก้ไขค่าอย่างน้อย 1 ค่าของชุดได้ง่ายขึ้นโดยไม่ต้องสร้างคอลเล็กชันใหม่สําหรับตัวแก้ไขแต่ละรายการ (I0245a)
ตอนนี้แถบเลื่อนจะแสดงลักษณะการเลื่อนของ Android ดั้งเดิม (I922af, b/147493715)
การปรับปรุงอินเทอร์เฟซ API ของข้อจํากัด (I0fd15)