เขียนเนื้อหา

สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design ที่พร้อมใช้งาน ซึ่งเป็นจุดแรกเข้าของ Compose ในระดับที่สูงขึ้น ออกแบบมาเพื่อจัดหาคอมโพเนนต์ที่ตรงกับคอมโพเนนต์ที่อธิบายไว้ที่ www.material.io
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
2 กรกฎาคม 2025 1.8.3 - 1.9.0-beta02 -

โครงสร้าง

Compose คือการรวมรหัสกลุ่ม Maven 7 รายการภายใน androidx แต่ละกลุ่ม มีฟังก์ชันการทำงานย่อยที่กำหนดเป้าหมาย ซึ่งแต่ละกลุ่มมีชุดหมายเหตุประจำรุ่นของตัวเอง

ตารางนี้อธิบายกลุ่มและลิงก์ไปยังชุดหมายเหตุประจำรุ่นแต่ละชุด

กลุ่มคำอธิบาย
compose.animationสร้างภาพเคลื่อนไหวในแอปพลิเคชัน Jetpack Compose เพื่อยกระดับประสบการณ์ของผู้ใช้
compose.compilerแปลงฟังก์ชัน @Composable และเปิดใช้การเพิ่มประสิทธิภาพด้วยปลั๊กอินคอมไพเลอร์ Kotlin
compose.foundationเขียนแอปพลิเคชัน Jetpack Compose ด้วยองค์ประกอบพื้นฐานที่พร้อมใช้งาน และขยายรากฐานเพื่อสร้างชิ้นส่วนระบบการออกแบบของคุณเอง
compose.materialสร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design ที่พร้อมใช้งาน ซึ่งเป็นจุดแรกเข้าของ Compose ในระดับที่สูงขึ้น ออกแบบมาเพื่อจัดหาคอมโพเนนต์ที่ตรงกับคอมโพเนนต์ที่อธิบายไว้ที่ www.material.io
compose.material3สร้าง UI ของ Jetpack Compose ด้วยคอมโพเนนต์ Material Design 3 ซึ่งเป็นวิวัฒนาการขั้นถัดไปของ Material Design Material 3 มีการอัปเดตธีมและคอมโพเนนต์ รวมถึงฟีเจอร์การปรับเปลี่ยนในแบบของคุณของ Material You เช่น สีแบบเปลี่ยนอัตโนมัติ และออกแบบมาให้สอดคล้องกับสไตล์ภาพและ UI ของระบบ Android 12 ใหม่
compose.runtimeส่วนประกอบพื้นฐานของรูปแบบการเขียนโปรแกรมและการจัดการสถานะของ Compose รวมถึงรันไทม์หลักสำหรับปลั๊กอินคอมไพเลอร์ Compose เพื่อกำหนดเป้าหมาย
compose.uiองค์ประกอบพื้นฐานของ Compose UI ที่จำเป็นต่อการโต้ตอบกับอุปกรณ์ ซึ่งรวมถึงเลย์เอาต์ การวาด และอินพุต

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ใน Compose คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูลของคุณ

Groovy

dependencies {
    implementation "androidx.compose.material:material:1.8.3"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.material:material:1.8.3")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์

ความคิดเห็น

ความคิดเห็นของคุณจะช่วยให้ Jetpack ทำงานได้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา

เวอร์ชัน 1.9

เวอร์ชัน 1.9.0-beta02

2 กรกฎาคม 2025

androidx.compose.material:material-*:1.9.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.9.0-beta02 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.9.0-beta01

18 มิถุนายน 2025

androidx.compose.material:material-*:1.9.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.9.0-beta01 มีการเปลี่ยนแปลงเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ไฮเปอร์ลิงก์ใน Text(AnnotatedString) มีการจัดรูปแบบ Material โดยค่าเริ่มต้นแล้ว (I0e8ed, b/339843816)

เวอร์ชัน 1.9.0-alpha04

4 มิถุนายน 2025

androidx.compose.material:material-*:1.9.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.9.0-alpha03

20 พฤษภาคม 2025

androidx.compose.material:material-*:1.9.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.9.0-alpha02

7 พฤษภาคม 2025

androidx.compose.material:material-*:1.9.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.9.0-alpha01

23 เมษายน 2025

androidx.compose.material:material-*:1.9.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.9.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลงลักษณะการทำงาน

  • การตรวจสอบ Lint ที่มาพร้อมกับ Compose ต้องใช้ AGP เวอร์ชัน 8.8.2 เป็นอย่างน้อย หากอัปเกรด AGP ไม่ได้ คุณสามารถอัปเกรด Lint ด้วยตนเองได้โดยใช้ android.experimental.lint.version=8.8.2 (หรือเวอร์ชันที่ใหม่กว่า) ใน gradle.properties หากต้องการเรียกใช้การตรวจสอบ Lint ของ Compose ภายใน IDE คุณต้องใช้ Android Studio Ladybug หรือใหม่กว่า

การเปลี่ยนแปลง API

  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
  • API กล่องตกแต่งช่องข้อความไม่ใช่เวอร์ชันทดลองอีกต่อไป (I7480f, b/269651160)
  • เลิกใช้งาน runWithTimingDisabled เพื่อใช้ runWithMeasurementDisabled แทน ซึ่งอธิบายลักษณะการทำงานได้ชัดเจนกว่า นั่นคือระบบจะหยุดเมตริกทั้งหมดชั่วคราว นอกจากนี้ ให้แสดงคลาสซูเปอร์คลาส MicrobenchmarkScope เนื่องจากไม่สามารถประกาศฟังก์ชัน runWithMeasurementDisabled ซ้ำเพื่อเปิดการเข้าถึงได้เนื่องจากเป็นฟังก์ชันอินไลน์ (I9e23b, b/389149423, b/149979716)

การแก้ไขข้อบกพร่อง

  • ExposedDropdownMenu เข้ากันได้แบบไบนารีกับเวอร์ชันเก่า (I133f7)
  • แก้ไขข้อขัดข้องที่สัญญาณบอกสถานะความคืบหน้าและสัญญาณบอกสถานะการโหลดในกรณีที่มีการส่ง Float.NaN เป็นความคืบหน้า (I4fa96, b/352364576)

เวอร์ชัน 1.8

เวอร์ชัน 1.8.3

18 มิถุนายน 2025

androidx.compose.material:material-*:1.8.3 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.3 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.2

20 พฤษภาคม 2025

androidx.compose.material:material-*:1.8.2 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.2 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.1

7 พฤษภาคม 2025

androidx.compose.material:material-*:1.8.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.1 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0

23 เมษายน 2025

androidx.compose.material:material-*:1.8.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-rc03

9 เมษายน 2025

androidx.compose.material:material-*:1.8.0-rc03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-rc03 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-rc02

26 มีนาคม 2025

androidx.compose.material:material-*:1.8.0-rc02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-rc02 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-rc01

12 มีนาคม 2025

androidx.compose.material:material-*:1.8.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.8.0-beta03

26 กุมภาพันธ์ 2025

androidx.compose.material:material-*:1.8.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-beta03 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-beta02

12 กุมภาพันธ์ 2025

androidx.compose.material:material-*:1.8.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-beta02 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-เบต้า01

29 มกราคม 2025

androidx.compose.material:material-*:1.8.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-beta01 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-alpha08

15 มกราคม 2025

androidx.compose.material:material-*:1.8.0-alpha08 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha08 มีการเปลี่ยนแปลงเหล่านี้

การแก้ไขข้อบกพร่อง

  • เพิ่ม displayCutout ลงในกลุ่มการแทรกที่คอมโพเนนต์ Material พิจารณาโดยค่าเริ่มต้น เพื่อหลีกเลี่ยงไม่ให้เนื้อหาซ้อนทับกับรอยบากบนจอแสดงผล
    • นี่เป็นการเปลี่ยนแปลงลักษณะการทำงานที่จะส่งผลต่อลักษณะการทำงานของคอมโพเนนต์ที่รับรู้ขอบรอบรอยบากของจอแสดงผล ซึ่งรวมถึงค่าเริ่มต้นของพารามิเตอร์ WindowInsets สำหรับคอมโพเนนต์ Material 3 ที่รับรู้ถึงระยะขอบ และค่า WindowInsets ที่ระบุไว้ในคอมโพเนนต์
    • ออบเจ็กต์เริ่มต้นสำหรับทั้ง Material 2 และ Material 3 หากการเปลี่ยนแปลงนี้ทำให้เกิดลักษณะการทำงานที่ไม่พึงประสงค์ ให้ระบุพารามิเตอร์ WindowInsets ด้วยตนเองในระดับคอมโพเนนต์ (I43ee9, b/362508045)
  • กิจกรรมที่ใช้เป็นโฮสต์สำหรับ Composable ที่อยู่ภายใต้การทดสอบเมื่อใช้ ComposeContentTestRule.setContent จะใช้ธีม Theme.Material.Light.NoActionBar เพื่อหลีกเลี่ยงไม่ให้ ActionBar ทับซ้อนกับเนื้อหาการทดสอบเมื่อกำหนดเป้าหมายเป็น SDK 35 หากต้องการเลือกไม่ใช้ลักษณะการทำงานนี้ คุณสามารถนำการอ้างอิงใน ui-test-manifest ออก และเพิ่มรายการกิจกรรมใน AndroidManifest.xml ของแอปทดสอบสำหรับ ComponentActivity ด้วยธีมที่คุณเลือก (I7ae1b, b/383368165)

การมีส่วนร่วมภายนอก

  • เปิดเผย sheetGesturesEnabled ใน ModalBottomSheetLayout (I3f032, b/329543529)

เวอร์ชัน 1.8.0-alpha07

11 ธันวาคม 2024

androidx.compose.material:material-*:1.8.0-alpha07 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha07 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่บางครั้งระบบไม่ทำตามตัวปรับขนาดช่องข้อความ (I90d4c, b/356905963)

เวอร์ชัน 1.8.0-alpha06

13 พฤศจิกายน 2024

androidx.compose.material:material-*:1.8.0-alpha06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha06 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-alpha05

30 ตุลาคม 2024

androidx.compose.material:material-*:1.8.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha05 มีการเปลี่ยนแปลงเหล่านี้

การแก้ไขข้อบกพร่อง

  • เพิ่มประสิทธิภาพลักษณะการทำงานของ Scaffold contentPadding เพื่อหลีกเลี่ยงการจัดองค์ประกอบเนื้อหาของ Body ใหม่ทุกครั้งเมื่อ contentPadding มีการเปลี่ยนแปลง (I8c8e2, b/373904168)
  • ทำให้แถบเลื่อนของวัสดุเปลี่ยนค่าเมื่อกดปุ่มควบคุม (I1c442)

เวอร์ชัน 1.8.0-alpha04

16 ตุลาคม 2024

androidx.compose.material:material-*:1.8.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha04 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • นำ readOnly ออกจาก TextFields เพื่อปักหมุดเป็นเวอร์ชันพื้นฐานที่เสถียร (I3aaba)

การแก้ไขข้อบกพร่อง

  • เพิ่มการรองรับการขยายองค์ประกอบใน Android S+ เช่น การ์ดที่ขยายเมื่อคลิก ก่อนหน้านี้การกระเพื่อมจะไม่เติมขนาดใหม่ แต่ตอนนี้จะขยายไปจนถึงขอบเขตใหม่ (If509a, b/183019123)

เวอร์ชัน 1.8.0-alpha02

18 กันยายน 2024

androidx.compose.material:material-*:1.8.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha02 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.8.0-alpha01

4 กันยายน 2024

androidx.compose.material:material-*:1.8.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.8.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มเครื่องมือสร้าง NavGraphBuilder.bottomSheet ใหม่เพื่อสร้าง BottomSheet ด้วย Safe Args ((I28589, I777db, b/351858980))
  • เพิ่มการโอเวอร์โหลด TextField และ OutlinedTextField ใหม่ที่ใช้ TextFieldState (I3b74c)

เวอร์ชัน 1.7

เวอร์ชัน 1.7.8

12 กุมภาพันธ์ 2025

androidx.compose.material:material-*:1.7.8 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.8 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.7

29 มกราคม 2025

androidx.compose.material:material-*:1.7.7 ได้รับการเผยแพร่แล้ว ไม่มีการเปลี่ยนแปลงจาก 1.7.6

เวอร์ชัน 1.7.6

11 ธันวาคม 2024

androidx.compose.material:material-*:1.7.6 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.6 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.5

30 ตุลาคม 2024

androidx.compose.material:material-*:1.7.5 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.5 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.4

16 ตุลาคม 2024

androidx.compose.material:material-*:1.7.4 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.4 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.2

18 กันยายน 2024

androidx.compose.material:material-*:1.7.2 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.2 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.1

10 กันยายน 2024

  • ไม่มีการเปลี่ยนแปลงอาร์ติแฟกต์ Android ระบบได้นำอาร์ติแฟกต์ -desktop รายการออกแล้ว และเพิ่มอาร์ติแฟกต์ -jvmStubs และ -linuxx64Stubs รายการ เป้าหมายเหล่านี้ไม่มีไว้ให้ใช้งาน แต่เป็นตัวยึดตำแหน่งเพื่อช่วยให้ Jetbrains Compose ทำงานได้

เวอร์ชัน 1.7.0

4 กันยายน 2024

androidx.compose.material:material-*:1.7.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.6.0

  • เราได้ย้ายข้อมูลคอมโพเนนต์ Material ไปใช้ API Ripple ใหม่แล้ว และจะไม่ค้นหา RippleTheme อีกต่อไป
  • คอมโพเนนต์ Material ที่ก่อนหน้านี้ยอมรับ MutableInteractionSource และค่าเริ่มต้นเป็น remember { MutableInteractionSource() } ตอนนี้ยอมรับ MutableInteractionSource ที่เป็น Null ได้และค่าเริ่มต้นจะเป็น Null แทน หากไม่ได้โฮสต์และใช้ MutableInteractionSource คุณควรส่งค่าเป็น null ซึ่งช่วยให้คอมโพเนนต์บางอย่างสร้างอินสแตนซ์แบบเลื่อนเวลาได้เมื่อจำเป็นเท่านั้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพ นอกจากนี้ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย
  • BottomDrawer, ModalBottomSheet, BackdropScaffold และ Bottomsheet มาตรฐานได้รับการเลื่อนชั้นเป็น API ที่เสถียรแล้ว

เวอร์ชัน 1.7.0-rc01

21 สิงหาคม 2024

androidx.compose.material:material-*:1.7.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-rc01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.7.0-beta07

7 สิงหาคม 2024

androidx.compose.material:material-*:1.7.0-beta07 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta07 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.0-beta06

24 กรกฎาคม 2024

androidx.compose.material:material-*:1.7.0-beta06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta06 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.0-beta05

10 กรกฎาคม 2024

androidx.compose.material:material-*:1.7.0-beta05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta05 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.7.0-beta04

26 มิถุนายน 2024

androidx.compose.material:material-*:1.7.0-beta04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta04 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.0-beta03

12 มิถุนายน 2024

androidx.compose.material:material-*:1.7.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta03 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.7.0-beta02

29 พฤษภาคม 2024

androidx.compose.material:material-*:1.7.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta02 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • อัปเดต API สำหรับการจัดรูปแบบลิงก์: ย้าย TextLinkStyles ไปยัง TextStyle และนำ TextDefaults ออกจาก Material (I5477b)

เวอร์ชัน 1.7.0-beta01

14 พฤษภาคม 2024

androidx.compose.material:material-*:1.7.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-beta01 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • อัปเดต API สำหรับรับลิงก์ที่มีธีม Material ในข้อความ โดยเฉพาะอย่างยิ่ง เราได้นำวิธีการต่างๆ ออกจาก TextDefaults สำหรับการสร้าง LinkAnnotations ที่มีธีมและแยกวิเคราะห์ HTML ด้วยลิงก์ที่มีธีม แต่ได้เพิ่มTextLinkStylesคลาสที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Composable ของข้อความแทน (I31b93)

เวอร์ชัน 1.7.0-alpha08

1 พฤษภาคม 2024

androidx.compose.material:material-*:1.7.0-alpha08 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha08 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • แก้ไขปัญหาที่ backgroundColor ไม่ได้ใช้กับ TextFieldDecorationBox และ OutlinedTextFieldDecorationBox ตอนนี้กล่องตกแต่งยอมรับพารามิเตอร์ shape แล้ว (I371c2, b/307694651)
  • ระบบได้นำ RippleConfiguration#isEnabled ออกแล้ว และทำให้ LocalRippleConfiguration เป็นค่าที่กำหนดให้เป็น Null ได้ หากต้องการปิดใช้การกระเพื่อม ให้ระบุ null ถึง LocalRippleConfiguration แทนการระบุ RippleConfiguration ที่มี isEnabled = false (I22725)
  • ลิงก์ข้อความมีตัวเลือกการจัดรูปแบบสถานะที่กดนอกเหนือจากการจัดรูปแบบปกติ การวางเมาส์ และการโฟกัส TextDefaults แต่ละวิธีมีอาร์กิวเมนต์ pressedStyle เพื่อรองรับการดำเนินการดังกล่าว (Ic473f, b/139312671)

การแก้ไขข้อบกพร่อง

  • OutlinedTextField ตอนนี้การเว้นที่ว่างด้านบนสำหรับป้ายกำกับจะพิจารณาขนาดแบบอักษรของระบบแล้ว (Idc781)

เวอร์ชัน 1.7.0-alpha07

17 เมษายน 2024

androidx.compose.material:material-*:1.7.0-alpha07 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha07 มีการคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ลิงก์ข้อความมีตัวเลือกการจัดรูปแบบสถานะที่กดนอกเหนือจากการจัดรูปแบบปกติ การวางเมาส์ และการโฟกัส (I5f864, b/139312671)
  • เพิ่มออบเจ็กต์ TextDefaults ที่มีเมธอดในการสร้าง LinkAnnotation และแยกวิเคราะห์สตริงที่ติดแท็ก HTML ซึ่งใช้ MaterialTheme กับลิงก์ (I98532, b/139312671)

เวอร์ชัน 1.7.0-alpha06

3 เมษายน 2024

androidx.compose.material:material-*:1.7.0-alpha06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha06 มีการคอมมิตเหล่านี้

ประกาศ

  • androidx.compose.material ไม่จำเป็นต้องใช้เวอร์ชันเดียวกันของทุกอาร์ติแฟกต์ในกลุ่ม Maven นี้อีกต่อไป ผู้ใช้สามารถผสมและจับคู่เวอร์ชันของไลบรารีพื้นฐานของ Compose (Ie5fba)

การเปลี่ยนแปลง API

  • ย้ายค่าเริ่มต้นของ ModalDrawer และ BottomDrawer เพิ่มเติมไปยังออบเจ็กต์ DrawerDefaults (Ib5b2e)

เวอร์ชัน 1.7.0-alpha05

20 มีนาคม 2024

androidx.compose.material:material-*:1.7.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha05 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • ระบบได้นำธง ScaffoldSubcomposeInMeasureFix ออกแล้ว (I67363)

เวอร์ชัน 1.7.0-alpha04

6 มีนาคม 2024

androidx.compose.material:material-*:1.7.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้

ฟีเจอร์ใหม่

เวอร์ชัน 1.7.0-alpha03

21 กุมภาพันธ์ 2024

androidx.compose.material:material-*:1.7.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha03 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • BottomDrawer ได้รับการเลื่อนขั้นจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว BottomDrawerState ตอนนี้จะแสดงความคืบหน้าเป็นฟังก์ชัน ซึ่งช่วยให้คุณค้นหาความคืบหน้าระหว่างเป้าหมายที่เฉพาะเจาะจงได้ BottomDrawerState ตอนนี้อนุญาตให้ปรับแต่งข้อกำหนดของภาพเคลื่อนไหวได้แล้ว และ confirmStateChange ไม่ใช่ Lambda ต่อท้ายอีกต่อไป (I9c029, b/261423850)
  • BackdropScaffold ได้รับการเลื่อนขั้นจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ tween ตามหลักเกณฑ์ พารามิเตอร์ snackbarHost ของ BackdropScaffold จะไม่ใช่พารามิเตอร์สุดท้ายอีกต่อไปเพื่อหลีกเลี่ยงความสับสนกับ Lambda ต่อท้าย BackdropScaffoldState แสดง progress(from, to) API เพื่อค้นหาความคืบหน้าระหว่างจุดยึด (I73f48, b/261423218)
  • เราได้เลื่อนระดับ Bottom Sheet มาตรฐานจากเวอร์ชันทดลองเป็นเวอร์ชันที่เสถียรแล้ว นำตัวสร้างที่เลิกใช้งานแล้วออก ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ Tween ตามหลักเกณฑ์แล้ว (I3c1a8, b/278692145, b/261409034)
  • Modal Bottom Sheet ได้รับการเลื่อนระดับจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียร นำตัวสร้างที่เลิกใช้งานแล้วออก ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ tween ตามหลักเกณฑ์ (Ic53f4, b/278692145, b/266780235, b/261409034)

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ BackdropScaffold อาจขัดข้องในบางสถานการณ์เมื่อใช้ร่วมกับ LookaheadScope (I51396)
  • นำองค์ประกอบย่อยภายใน BottomSheetScaffold ออกเพื่อปรับปรุงประสิทธิภาพ แก้ไขปัญหาที่ BottomSheetScaffold จะขัดข้องในบางสถานการณ์เมื่อใช้ร่วมกับ LookaheadScope (I2f90c)
  • นำองค์ประกอบย่อยภายใน ModalBottomSheetLayout ออกเพื่อปรับปรุงประสิทธิภาพ (I7a025)

เวอร์ชัน 1.7.0-alpha02

7 กุมภาพันธ์ 2024

androidx.compose.material:material-*:1.7.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha02 มีคอมมิตเหล่านี้

เวอร์ชัน 1.7.0-alpha01

24 มกราคม 2024

androidx.compose.material:material-*:1.7.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.7.0-alpha01 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลงลักษณะการทำงาน

  • เราได้ย้ายข้อมูลคอมโพเนนต์ Material ไปใช้ API Ripple ใหม่แล้ว และจะไม่ค้นหา RippleTheme อีกต่อไป

การเปลี่ยนแปลง API

  • เราได้เลิกใช้งาน rememberRipple และ RippleTheme จาก material-ripple แล้ว พร้อมเพิ่ม API ใหม่สำหรับ Ripple และ RippleConfiguration ลงในไลบรารี Material และไลบรารีระบบการออกแบบอื่นๆ

  • ตอนนี้คอมโพเนนต์ Material ที่ก่อนหน้านี้ยอมรับ MutableInteractionSource และค่าเริ่มต้นคือจดจำ { MutableInteractionSource() } จะยอมรับ MutableInteractionSource ที่เป็น Null ได้ และค่าเริ่มต้นจะเป็น Null แทน หากไม่ได้โฮสต์และใช้ MutableInteractionSource คุณควรส่งค่าเป็น null ซึ่งช่วยให้คอมโพเนนต์บางอย่างสร้างอินสแตนซ์แบบเลื่อนเวลาได้เมื่อจำเป็นเท่านั้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพ นอกจากนี้ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย

เวอร์ชัน 1.6

เวอร์ชัน 1.6.8

12 มิถุนายน 2024

androidx.compose.material:material-*:1.6.8 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.8 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.6.7

1 พฤษภาคม 2024

androidx.compose.material:material-*:1.6.7 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.7 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.6.6

17 เมษายน 2024

androidx.compose.material:material-*:1.6.6 ได้รับการเผยแพร่แล้ว ไม่มีการเปลี่ยนแปลงนับตั้งแต่การเปิดตัวครั้งล่าสุด

เวอร์ชัน 1.6.5

3 เมษายน 2024

androidx.compose.material:material-*:1.6.5 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.5 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.6.4

20 มีนาคม 2024

androidx.compose.material:material-*:1.6.4 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.4 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.6.3

6 มีนาคม 2024

androidx.compose.material:material-*:1.6.3 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.3 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขการถดถอยใน ExposedDropdownMenu เพื่อให้โฟกัสได้อีกครั้ง (c0e0ed, b/323694447)

เวอร์ชัน 1.6.2

21 กุมภาพันธ์ 2024

androidx.compose.material:material-*:1.6.2 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.2 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.1

7 กุมภาพันธ์ 2024

androidx.compose.material:material-*:1.6.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.1 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.0

24 มกราคม 2024

androidx.compose.material:material-*:1.6.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.0-rc01

10 มกราคม 2024

androidx.compose.material:material-*:1.6.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-rc01 มีคอมมิตต่อไปนี้

เวอร์ชัน 1.6.0-beta03

13 ธันวาคม 2023

androidx.compose.material:material-*:1.6.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-beta03 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.0-beta02

29 พฤศจิกายน 2023

androidx.compose.material:material-*:1.6.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-beta02 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.0-beta01

15 พฤศจิกายน 2023

androidx.compose.material:material-*:1.6.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-beta01 มีคอมมิตเหล่านี้

เวอร์ชัน 1.6.0-alpha08

18 ตุลาคม 2023

androidx.compose.material:material-*:1.6.0-alpha08 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha08 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เลิกใช้งานฟังก์ชัน materialIcon เพื่อให้ใช้โอเวอร์โหลดที่ใช้พารามิเตอร์ autoMirror แทน (Ia338d)

การแก้ไขข้อบกพร่อง - เพิ่มความสูงของรายการนำทางโดยอัตโนมัติสำหรับเนื้อหาขนาดใหญ่ (0c4ecc, b/272336962)

เวอร์ชัน 1.6.0-alpha07

4 ตุลาคม 2023

androidx.compose.material:material-*:1.6.0-alpha07 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha07 มีคอมมิตต่อไปนี้

  • การอัปเดตการขึ้นต่อกัน

เวอร์ชัน 1.6.0-alpha06

20 กันยายน 2023

androidx.compose.material:material-*:1.6.0-alpha06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha06 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงพฤติกรรมที่ส่งผลกับส่วนอื่นในระบบ

  • นำฟังก์ชันที่เกี่ยวข้องกับลิ้นชักออกจาก BottomSheetScaffold ห่อหุ้ม BottomSheetScaffold ใน Composable ของ Drawer เพื่อให้ได้ฟังก์ชันการทำงานก่อนหน้า ดูตัวอย่างได้ที่ BottomSheetScaffoldWithDrawerSample (I1dcc8)

การเปลี่ยนแปลง API

  • เปิดตัว Flag ชั่วคราวเพื่อควบคุมว่า Scaffold ควรวัดวิดเจ็ตย่อยในระหว่างการวัดหรือในระหว่างการจัดวาง โดยค่าเริ่มต้น ระบบจะวัดผลในเครื่องมือวัด หากพบปัญหาเกี่ยวกับลักษณะการทำงานใหม่ โปรดรายงานปัญหา (If6e3b)

เวอร์ชัน 1.6.0-alpha05

6 กันยายน 2023

androidx.compose.material:material-*:1.6.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha05 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการรองรับไอคอนที่พลิกอัตโนมัติเมื่อแสดงผลในเลย์เอาต์จากขวาไปซ้าย ตอนนี้ไอคอนในโมดูล material-icons-core และ material-icons-extended มีชุดไอคอนเพิ่มเติมเพื่อรองรับการมิเรอร์อัตโนมัติเมื่อไอคอนอนุญาต ชุดใหม่จะมีคำนำหน้าเป็น Icons.AutoMirrored.Filled... ฯลฯ และมีไอคอนที่จะพลิกอัตโนมัติในเลย์เอาต์ RTL ดูรายการไอคอน Material เพื่อดูรายการไอคอนที่สามารถ (และควร) ทำการมิเรอร์อัตโนมัติ

การเปลี่ยนแปลง API

  • เพิ่มการรองรับไอคอนที่พลิกอัตโนมัติเมื่อแสดงผลในเลย์เอาต์จากขวาไปซ้าย ตอนนี้ไอคอนในโมดูล material-icons-core และ material-icons-extended มีชุดไอคอนเพิ่มเติมเพื่อรองรับการมิเรอร์อัตโนมัติเมื่อไอคอนอนุญาต ชุดใหม่จะมีคำนำหน้าเป็น Icons.AutoMirrored.Filled... ฯลฯ และมีไอคอนที่จะพลิกอัตโนมัติในเลย์เอาต์ RTL ดูรายการไอคอน Material เพื่อดูรายการไอคอนที่สามารถ (และควร) ทำการมิเรอร์อัตโนมัติ ตอนนี้ระบบได้ทำเครื่องหมายพร็อพเพอร์ตี้ไอคอนที่ระบุไว้ก่อนหน้านี้สำหรับไอคอนเหล่านั้นว่าเลิกใช้งานแล้ว และมีคำแนะนำเกี่ยวกับบล็อกแทนที่เพื่อช่วยในการย้ายข้อมูล ในกรณีที่คุณไม่ได้มีการจัดการพิเศษใดๆ สำหรับไอคอนที่มิเรอร์ใน RTL เราขอแนะนำให้ย้ายข้อมูลไปยังชุดไอคอนใหม่ เช่น Icons.Filled.ArrowBack ควรได้รับการปรับโครงสร้างเป็น Icons.AutoMirrored.Filled.ArrowBack (I4b511)

เวอร์ชัน 1.6.0-alpha04

23 สิงหาคม 2023

androidx.compose.material:material-*:1.6.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha04 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่คอมโพเนนต์บางรายการที่ใช้ Subcomposition (เช่น BottomSheetScaffold) ภายใน Scaffold ภายใน LookaheadScope พยายามอ่านขนาดเร็วเกินไป (If2c5d)
  • แก้ไขการคำนวณ DropdownMenu ของ offset เพื่อให้ค่าออฟเซ็ต x ขึ้นอยู่กับทิศทางการจัดวางในเครื่องเท่านั้น และค่าออฟเซ็ต y จะไม่กลับด้านอีกต่อไปเมื่อเมนูอยู่ใกล้ด้านล่างของหน้าจอ (Iccc74, b/294103942)
  • เพิ่มประสิทธิภาพBottomSheetScaffoldภายในเลย์เอาต์และแก้ไขปัญหาที่อาจเกิดขึ้นกับ BottomSheetScaffold ภายใน LookaheadLayout (Ic0afa)

เวอร์ชัน 1.6.0-alpha03

9 สิงหาคม 2023

androidx.compose.material:material-*:1.6.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha03 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ตอนนี้คอมโพเนนต์ Material2 มี API แยกต่างหากเพื่อส่ง windowInsets เพื่อรองรับฟังก์ชันการทำงานแบบขอบจรดขอบใน Android คอมโพเนนต์ Material2 ไม่รองรับระยะขอบโดยค่าเริ่มต้นและควรส่งค่าด้วยตนเอง ซึ่งต่างจากคอมโพเนนต์ Material3 โปรดดูตัวอย่างที่เกี่ยวข้องเพื่อเป็นแนวทาง (I655e8)

เวอร์ชัน 1.6.0-alpha02

26 กรกฎาคม 2023

androidx.compose.material:material-*:1.6.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เรากำลังย้ายการขึ้นอยู่กับความหนาแน่นไปยังระดับคอมโพเนนต์ โดยจะมีผลกับคอมโพเนนต์ต่อไปนี้ SwipeToDismiss และคอมโพเนนต์ที่อิงตามชีต โปรดใช้การโอเวอร์โหลดใหม่ที่ระบุไว้ในกรณีที่ความหนาแน่นเป็นพารามิเตอร์ (I1846e)
  • คำอธิบายประกอบเพิ่มเติมเพื่อระบุอินพุตที่อนุญาตไปยัง Composable (I51109)
  • อัปเดตไฟล์ API เพื่อใส่คำอธิบายประกอบการระงับความเข้ากันได้ (I8e87a, b/287516207)
  • เพิ่มการจัดแนวเริ่มต้นใหม่สำหรับ FabPosition (Ib7aea, b/170592777)
  • TextFieldColorsWithIcons ใน Material 2 เลิกใช้งานแล้วเพื่อใช้ TextFieldColors แทน เมื่อลบล้าง leadingIconColor หรือ trailingIconColor ให้ลบล้างการโอเวอร์โหลดด้วย interactionSource ด้วย (Id57ed, b/199377790)

เวอร์ชัน 1.6.0-alpha01

21 มิถุนายน 2023

androidx.compose.material:material-*:1.6.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.6.0-alpha01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงลักษณะการทำงาน

  • ตอนนี้ includeFontPadding เป็น false โดยค่าเริ่มต้นในตัวอักษร Material 2 นอกจากนี้ เรายังได้เปลี่ยนรูปแบบความสูงของบรรทัดเริ่มต้นเป็น Trim.None และ Alignment.Center รวมถึงเพิ่ม lineHeight ที่ชัดเจน (ใน sp) ลงใน TextStyle ของ Typography ด้วย โปรดดูเอกสาร API หากต้องการปรับแต่งค่าเหล่านี้ และดูบล็อกโพสต์เพื่อดูคำอธิบายโดยละเอียดเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ (Icabc3, I3f801, I04c03)

การเปลี่ยนแปลง API

  • เราได้เลิกใช้งาน API ของ Swipeable ของ Material แล้ว โปรดดู AnchoredDraggable API ของ Foundation ซึ่งได้รับการเพิ่มประสิทธิภาพสำหรับทั้งกรณีการใช้งานที่เรียบง่ายและซับซ้อน (I732e0)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ BottomSheetState, ModalBottomSheetState และ BottomDrawerState จะแสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่าง Anchor ปัจจุบัน (ที่ตั้งค่าแล้ว) กับ Anchor ที่ใกล้ที่สุดในทิศทางการปัด (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

รุ่น 1.5

เวอร์ชัน 1.5.4

18 ตุลาคม 2023

androidx.compose.material:material-*:1.5.4 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.4 มีคอมมิตเหล่านี้

เวอร์ชัน 1.5.3

4 ตุลาคม 2023

androidx.compose.material:material-*:1.5.3 ได้รับการเผยแพร่แล้ว เวอร์ชันนี้ไม่มีการเปลี่ยนแปลง

รุ่น 1.5.2

27 กันยายน 2023

androidx.compose.material:material-*:1.5.2 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.2 มีคอมมิตเหล่านี้

รุ่น 1.5.1

6 กันยายน 2023

androidx.compose.material:material-*:1.5.1 จะได้รับการเผยแพร่โดยไม่มีการเปลี่ยนแปลง เวอร์ชัน 1.5.1 มีคอมมิตเหล่านี้

เวอร์ชัน 1.5.0

9 สิงหาคม 2023

androidx.compose.material:material-*:1.5.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.4.0

การเปลี่ยนแปลง API

  • รวมการเปลี่ยนแปลงใน Swipeable1 API ใน BottomSheetScaffold เปลี่ยนชื่อพารามิเตอร์ confirmStateChange ของ BottomSheetState เป็น confirmValueChange แล้ว ตอนนี้ progress จะแสดงเป็นค่า Float animateTo และ snapTo เป็นข้อมูลภายใน โปรดใช้ expand() และ collapse() แทน นำ direction และ overflow ออกแล้ว offset ถูกแทนที่ด้วย requireOffset() แล้ว I323b4
  • ทําเครื่องหมายฟังก์ชัน snapTo ใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368)
  • เพิ่มพารามิเตอร์สีของเส้นสำหรับสัญญาณบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับสัญญาณบอกสถานะความคืบหน้าทั้งแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
  • เปลี่ยนชื่อ ModalBottomSheetState, ModalBottomSheetState.Saver และ rememberModalBottomSheetState's confirmStateChange เป็น confirmValueChange (Ib48d1)
  • เพิ่ม Modifier.minimumInteractiveComponentSize โดยสามารถใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบแบบสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559)
  • รวมการเปลี่ยนแปลงใน Swipeable API ใน ModalBottomSheetLayout animateTo ของ ModalBottomSheetState ไม่รับพารามิเตอร์ animationSpec อีกต่อไป และตอนนี้ออฟเซ็ตที่แสดงเป็นค่าที่กำหนดให้เป็น Null ได้ ใช้ requireOffset เพื่อกำหนดให้ต้องมีการชดเชย (Ia2e79)
  • เพิ่มคำอธิบายประกอบ @JvmDefaultWithCompatibility (I8f206)
  • การเปลี่ยนแปลงที่รวมไว้ใน Swipeable API ใน ModalDrawer. DrawerState ของ animateTo ถูกแทนที่ด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซ็ตเป็นค่า Null ได้แล้ว ใช้ requireOffset เพื่อกำหนดให้ต้องมีการชดเชย (I3de9e)
  • อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
  • เพิ่มพารามิเตอร์ minLines ลงในข้อความ Material และ Material3 TextField และ OutlinedTextField ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d)

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ pullRefresh ไม่ได้ใช้ความเร็ว ทำให้การเลื่อนเกินแสดง นอกจากนี้ ยังได้เปลี่ยนลายเซ็น API ของ onRelease lambda ใน Modifier.pullRefresh เพื่อแสดงผล Float สำหรับความเร็วที่ใช้ (I7db65, b/266874741)
  • ตอนนี้ BottomSheetState, ModalBottomSheetState และ BottomDrawerState จะแสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่าง Anchor ปัจจุบัน (ที่ตั้งค่าแล้ว) กับ Anchor ที่ใกล้ที่สุดในทิศทางการปัด (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
  • แก้ไขAlertDialogการดำเนินการปิดให้ปรากฏใต้การดำเนินการยืนยันเมื่อการดำเนินการซ้อนทับกันเพื่อให้พอดีกับความกว้างของกล่องโต้ตอบ การแก้ไขนี้จะปรับการใช้งานให้สอดคล้องกับข้อกำหนดของ Material Design (I029de, b/235454277)
  • BottomSheetScaffold จะไม่เข้าร่วมการเลื่อนที่ซ้อนกันอีกต่อไปเมื่อตั้งค่า gesturesEnabled เป็น false (I634f3, b/215403277)
  • แก้ไขข้อบกพร่องที่ทำให้ BottomSheetScaffold ขัดข้องเมื่อระบุเนื้อหาที่ว่างเปล่าสำหรับช่อง (Ib24a5, b/235588730)
  • แก้ไข PullRefreshIndicator การสกัดกั้นเหตุการณ์การคลิก/เคอร์เซอร์ (2494256, b/271777421)
  • แก้ไขปัญหาที่ ModalBottomSheetLayout จะขัดข้องในกรณีที่เกิดขอบเมื่อเปลี่ยนการวางแนว ตอนนี้ภาพเคลื่อนไหวของเลย์เอาต์ (เช่น Modifier.animateContentSize) ใน/บนเนื้อหาชีตทำงานได้อย่างราบรื่นแล้ว (I2f981, b/266780234)

เวอร์ชัน 1.5.0-rc01

26 กรกฎาคม 2023

androidx.compose.material:material-*:1.5.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-rc01 มีคอมมิตเหล่านี้

เวอร์ชัน 1.5.0-beta03

28 มิถุนายน 2023

androidx.compose.material:material-*:1.5.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-beta03 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้ BottomSheetState, ModalBottomSheetState และ BottomDrawerState จะแสดงพร็อพเพอร์ตี้ความคืบหน้าซึ่งระบุความคืบหน้าระหว่าง Anchor ปัจจุบัน (ที่ตั้งค่าแล้ว) กับ Anchor ที่ใกล้ที่สุดในทิศทางการปัด (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)

เวอร์ชัน 1.5.0-beta02

7 มิถุนายน 2023

androidx.compose.material:material-*:1.5.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-beta02 มีคอมมิตเหล่านี้

เวอร์ชัน 1.5.0-beta01

24 พฤษภาคม 2023

androidx.compose.material:material-*:1.5.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-beta01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ออฟเซ็ตของ DrawerState และ BottomDrawerState จะต้องระบุค่าเสมอ แต่จะแสดง Float.NaN แทนเพื่อระบุว่าไม่มีออฟเซ็ต (Ie9855)
  • เพิ่มตัวเลือกในการส่ง ScrollState เมื่อสร้าง DropdownMenu หรือ ExposedDropdownMenu เพื่อควบคุมสถานะการเลื่อนแนวตั้งของรายการเมนูที่แสดง (Idb009, b/185304441)
  • เพิ่มการรองรับการเปิด/ปิดท่าทางสัมผัสของ ModalBottomSheetLayout เพื่อให้ผู้ใช้กำหนดค่านี้สำหรับ BottomSheet ที่มีฟีเจอร์เพิ่มเติมได้ (I40af0)
  • เพิ่มพารามิเตอร์สีลงใน BasicText เพื่อให้สามารถเคลื่อนไหวหรือตั้งค่าสีข้อความได้อย่างมีประสิทธิภาพ (Iffd88, b/246961787)
  • เปลี่ยนชื่อพร็อพเพอร์ตี้ Semantics isContainer เป็น isTraversalGroup (I121f6)

การแก้ไขข้อบกพร่อง

  • แก้ไขAlertDialogการดำเนินการปิดให้ปรากฏใต้การดำเนินการยืนยันเมื่อการดำเนินการซ้อนทับกันเพื่อให้พอดีกับความกว้างของกล่องโต้ตอบ การแก้ไขนี้จะปรับการใช้งานให้สอดคล้องกับข้อกำหนดของ Material Design (I029de, b/235454277)

เวอร์ชัน 1.5.0-alpha04

10 พฤษภาคม 2023

androidx.compose.material:material-*:1.5.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha04 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เรากำลังย้ายการขึ้นอยู่กับความหนาแน่นไปยังระดับคอมโพเนนต์ ซึ่งมีผลกับคอมโพเนนต์ต่อไปนี้ BottomDrawer, ModalBottomSheetLayout, BottomSheetScaffold, Switch, ModalDrawer โปรดใช้การโอเวอร์โหลดใหม่ที่ระบุไว้ในกรณีที่ความหนาแน่นเป็นพารามิเตอร์ (I8fbd8)

เวอร์ชัน 1.5.0-alpha03

19 เมษายน 2023

androidx.compose.material:material-*:1.5.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha03 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • อัปเดตส่วนประกอบภายในของ BottomDrawer เพื่อใช้ SwipeableV2 API ใหม่ ด้วยเหตุนี้ BottomDrawerState จะมีเฉพาะ API ที่กำหนดไว้ที่ระดับคลาสเท่านั้น และจะไม่รับช่วงเมธอด/พร็อพเพอร์ตี้จาก SwipeableState เราใช้การคอมโพสที่มี SwipeableV2State ภายใน ตอนนี้ออฟเซ็ตเป็นพร็อพเพอร์ตี้เลขทศนิยมที่กำหนดให้เป็น Null ได้แล้ว และยังคงเข้าถึงค่าปัจจุบันและค่าเป้าหมายการปัดได้ผ่านพร็อพเพอร์ตี้ currentValue และ targetValue ระบบจะยังคงรองรับวิธีการระดับชั้นเรียนก่อนหน้า เช่น เปิด/ขยาย/ปิด และพร็อพเพอร์ตี้ เช่น isOpen/isClosed (Iad40c, b/178529942, b/220676296)

การแก้ไขข้อบกพร่อง

  • อัปเดตส่วนประกอบภายในของสวิตช์ ตอนนี้สวิตช์จะแสดงตัวอย่างที่ใกล้เคียงที่สุด (สถานะเป้าหมาย) เมื่อลาก (Id90d4)
  • เราได้เพิ่มประสิทธิภาพเนื้อหาชีตแบบเคลื่อนไหว (เช่น Modifier.animateContentSize ในเนื้อหาชีต) ใน BottomSheetScaffold และตอนนี้เนื้อหาดังกล่าวทำงานได้อย่างราบรื่นแล้ว (Ia913c, b/270518202, b/254446195)
  • BottomSheetScaffold จะไม่เข้าร่วมการเลื่อนที่ซ้อนกันอีกต่อไปเมื่อตั้งค่า gesturesEnabled เป็น false (I634f3, b/215403277)

เวอร์ชัน 1.5.0-alpha02

5 เมษายน 2023

androidx.compose.material:material-*:1.5.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha02 มีคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องที่ทำให้ BottomSheetScaffold ขัดข้องเมื่อระบุเนื้อหาที่ว่างเปล่าสำหรับช่อง (Ib24a5, b/235588730)
  • แก้ไขการดักจับการคลิก / เหตุการณ์ของเคอร์เซอร์ PullRefreshIndicator (2494256, b/271777421)

เวอร์ชัน 1.5.0-alpha01

22 มีนาคม 2023

androidx.compose.material:material-*:1.5.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.5.0-alpha01 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เพิ่มตัวอย่างการปรับโฟลว์ของ ChipGroup อัปเดตระยะขอบแนวนอนระหว่างชิปย่อยในตัวอย่างชิปกรุ๊ปแบบบรรทัดเดียวให้ตรงกับข้อกำหนด (I3b155)
  • แก้ไขปัญหาที่ ModalBottomSheetLayout จะขัดข้องในกรณีที่เกิดขอบเมื่อเปลี่ยนการวางแนว ตอนนี้ภาพเคลื่อนไหวของเลย์เอาต์ (เช่น Modifier.animateContentSize) ใน/บนเนื้อหาชีตทำงานได้อย่างราบรื่นแล้ว (I2f981, b/266780234)

เวอร์ชัน 1.4

เวอร์ชัน 1.4.3

3 พฤษภาคม 2023

androidx.compose.material:material-*:1.4.3 จะได้รับการเผยแพร่โดยไม่มีการเปลี่ยนแปลง (มีการอัปเดตเวอร์ชันเท่านั้น)

เวอร์ชัน 1.4.2

19 เมษายน 2023

androidx.compose.material:material-*:1.4.2 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.2 มีคอมมิตเหล่านี้

เวอร์ชัน 1.4.1

5 เมษายน 2023

androidx.compose.material:material-*:1.4.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.1 มีคอมมิตเหล่านี้

เวอร์ชัน 1.4.0

22 มีนาคม 2023

androidx.compose.material:material-*:1.4.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงสำคัญตั้งแต่เวอร์ชัน 1.3.0

การเปลี่ยนแปลง API

  • เพิ่ม Modifier.minimumInteractiveComponentSize โดยสามารถใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบแบบสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559)
  • รวมการเปลี่ยนแปลงใน Swipeable API ใน ModalDrawer ระบบได้แทนที่ animateTo ของ DrawerState ด้วยเมธอดเปิดและปิด และตอนนี้ออฟเซ็ตเป็นค่าที่กำหนดให้เป็น Null ได้แล้ว ใช้ requireOffset เพื่อกำหนดให้ต้องมีการชดเชย (I3de9e)
  • เพิ่มพารามิเตอร์ minLines ลงในข้อความ Material และ Material3 TextField และ OutlinedTextField ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d)
  • เพิ่มพารามิเตอร์ minLines ลงใน BasicText และ BasicTextField ซึ่งช่วยให้กำหนดความสูงขั้นต่ำของ Composable เหล่านี้ในแง่ของจำนวนบรรทัดได้ (I24294, b/122476634)

เวอร์ชัน 1.4.0-rc01

8 มีนาคม 2023

androidx.compose.material:material-*:1.4.0-rc01 จะได้รับการเผยแพร่โดยไม่มีการเปลี่ยนแปลง เวอร์ชัน 1.4.0-rc01 มีคอมมิตต่อไปนี้

เวอร์ชัน 1.4.0-beta02

22 กุมภาพันธ์ 2023

androidx.compose.material:material-*:1.4.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-beta02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • รวมการเปลี่ยนแปลงใน Swipeable API ใน BottomSheetScaffold เปลี่ยนชื่อพารามิเตอร์ confirmStateChange ของ BottomSheetState เป็น confirmValueChange แล้ว ตอนนี้ progress จะแสดงเป็นค่า Float animateTo และ snapTo เป็นข้อมูลภายใน โปรดใช้ expand() และ collapse() แทน นำ direction และ overflow ออกแล้ว offset ถูกแทนที่ด้วย requireOffset() แล้ว (I323b4)

การแก้ไขข้อบกพร่อง

  • นำบทบาทเชิงความหมายออกจากพื้นผิวที่คลิกได้และเลือกได้ อัปเดตคอมโพเนนต์ที่ใช้บทบาทเหล่านั้นเพื่อตั้งค่าบทบาทโดยใช้ Modifier.semantics (Ibb4ba)
  • การอัปเดตเล็กน้อยสำหรับไอคอน Material แบบขยาย ซึ่งปรับแต่งไอคอน desktop_mac, directions และ kitchen ที่เติมสี (I65f5e)

เวอร์ชัน 1.4.0-beta01

8 กุมภาพันธ์ 2023

androidx.compose.material:material-*:1.4.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-beta01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • แก้ไขปัญหาที่ pullRefresh ไม่ได้ใช้ความเร็ว ทำให้การเลื่อนเกินแสดง นอกจากนี้ ยังได้เปลี่ยนลายเซ็น API ของ onRelease lambda ใน Modifier.pullRefresh เพื่อแสดงผล Float สำหรับความเร็วที่ใช้ (I7db65, b/266874741)
  • คืนค่าเครื่องมือรับพร็อพเพอร์ตี้ LocalMinimuTouchTargetEnforcement และทําเครื่องหมายว่าเลิกใช้งานแล้ว รวมถึงเปลี่ยนเส้นทางไปยัง LocalMinimumInteractiveComponentEnforcement (I60dd5)

เวอร์ชัน 1.4.0-alpha05

25 มกราคม 2023

androidx.compose.material:material-*:1.4.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha05 มีคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ระบบคำนวณModalBottomSheetLayout's HalfExpandedไม่ถูกต้องและชีตจะดูเหมือนลอยอยู่ (I8c615, b/265610459)
  • แก้ไขข้อบกพร่องใน ModalBottomSheetLayout ซึ่งชีตจะขัดข้องเมื่อเปลี่ยนจากสถานะซ่อนเป็นสถานะที่มองเห็นได้ในบางกรณี (Ia9265, b/265444789)

เวอร์ชัน 1.4.0-alpha04

11 มกราคม 2023

androidx.compose.material:material-*:1.4.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha04 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มพร็อพเพอร์ตี้ความหมาย IsContainer ใน Surfaces ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการข้ามตามความหมายเชิงความหมายขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379)
  • ทําเครื่องหมายฟังก์ชัน snapTo ใน Drawer เป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368)
  • เพิ่มพารามิเตอร์สีของเส้นสำหรับสัญญาณบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์การปิดเส้นสำหรับสัญญาณบอกสถานะความคืบหน้าทั้งแบบวงกลมและแบบเชิงเส้น (Ie668c, b/216325962, b/222964817)
  • เปลี่ยนชื่อ ModalBottomSheetState, ModalBottomSheetState.Saver และ rememberModalBottomSheetState's confirmStateChange เป็น confirmValueChange (Ib48d1)
  • ความสามารถในการเป็นค่าว่างของประเภทการคืนค่าเพิ่มเติมของฟังก์ชันที่เลิกใช้งานแล้วและซ่อนอยู่ (Ibf7b0)
  • เพิ่ม Modifier.minimumInteractiveComponentSize โดยสามารถใช้เพื่อสำรองขนาดอย่างน้อย 48.dp เพื่อแยกความแตกต่างของการโต้ตอบแบบสัมผัสหากองค์ประกอบมีขนาดเล็กกว่า (I33f58, b/258495559)
  • รวมการเปลี่ยนแปลงใน Swipeable API ใน ModalBottomSheetLayout ModalBottomSheetState ของ animateTo ไม่รับพารามิเตอร์ animationSpec อีกต่อไป และตอนนี้ offset ที่แสดงจะกำหนดค่าเป็น Null ได้ ใช้ requireOffset เพื่อกำหนดให้ต้องใช้ offset (Ia2e79)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ชีตของ ModalBottomSheetLayout มีความกว้างสูงสุด 640 dp (I71a4f, b/234927577)
  • แก้ไขปัญหาที่ rememberPullRefreshState ไม่อัปเดต refreshThreshold และ refreshingOffset เมื่อเวลาผ่านไป (Ifed10, b/263159832)
  • ตอนนี้ความคืบหน้าของตัวบ่งชี้ความคืบหน้าจะอยู่ในช่วงที่คาดไว้แล้ว (I8a7eb, b/262262727)
  • เมื่อ ModalBottomSheetState ยังไม่ได้รับ Anchor ใดๆ ระบบจะอัปเดต currentValue โดยไม่มีภาพเคลื่อนไหวเมื่อมีการเรียก snapTo หรือ animateTo แทนที่จะส่งข้อยกเว้น (I2c91b)
  • แก้ไขสถานะที่เปิดใช้ในการใช้งาน Material 2 FilterChip (Id326a, b/261329817)
  • แก้ไขข้อบกพร่องที่ทำให้ ModalBottomSheetLayout ขัดข้องหากเป็น HalfExpanded เมื่อหมุนจากแนวตั้งเป็นแนวนอน โปรดตรวจสอบว่าคุณส่ง initialValue ที่ถูกต้อง เช่น โดยการตรวจสอบการกำหนดค่า (Ie8df7, b/182882364)
  • แก้ไขปัญหาที่ ModalBottomSheetLayout จะขัดข้องหากเนื้อหาชีตว่างเปล่า ModalBottomSheetLayout อนุญาตให้มีเนื้อหาชีตว่างแล้ว หากเนื้อหาชีตว่าง ชีตจะมีสถานะเป็น "ซ่อน" เท่านั้น (Ic2288, b/200980998, b/216693030)

ปัญหาที่ทราบ

  • เมื่ออัปเดตจาก androidx.compose.foundation:1.4.0-alpha03 เป็น androidx.compose.foundation:1.4.0-alpha04 คุณอาจพบข้อผิดพลาด java.lang.NoSuchFieldError ที่นี่คือจุดที่รายงานปัญหาในตอนแรก เราได้ส่งการแก้ไขแล้ว และการแก้ไขนี้จะพร้อมใช้งานในการอัปเดต Compose ครั้งถัดไป วิธีแก้ปัญหาชั่วคราวคืออัปเดตไลบรารี androidx.compose.material และ androidx.compose.material3 เป็นเวอร์ชันล่าสุด(1.1.0-alpha04) หรือดาวน์เกรด androidx.compose.foundation เป็น 1.4.0-alpha03

เวอร์ชัน 1.4.0-alpha03

7 ธันวาคม 2022

androidx.compose.material:material-*:1.4.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha03 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เพิ่มคำอธิบายประกอบ @JvmDefaultWithCompatibility (I8f206)
  • รวมการเปลี่ยนแปลงใน Swipeable API ใน ModalDrawer ระบบได้แทนที่ animateTo ของ DrawerState ด้วยเมธอด open และ close แล้ว และตอนนี้ออฟเซ็ตเป็นค่าที่กำหนดให้เป็น Null ได้ ใช้ requireOffset เพื่อกำหนดให้ต้องมีการชดเชย (I3de9e)
  • เพิ่ม Modifier API เพื่อค้นหาข้อมูลการเลื่อนขององค์ประกอบระดับบน (I2ba9d, b/203141462)
  • ใช้ใน Clickable เพื่อหน่วงเวลาการโต้ตอบการกดอย่างถูกต้อง เมื่อท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
  • แก้ไขปัญหาที่ Clickables ไม่หน่วงเวลาการกระเพื่อมอย่างถูกต้องเมื่อใช้ภายใน Scrollable ViewGroup
  • อัปเดตลิ้นชักและชีตเพื่อหน่วงเวลาการกดอย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ PullRefreshIndicator อาจค้างหลังจากเรียกใช้ onRefresh หากไม่ได้เปลี่ยนสถานะการรีเฟรชเป็นจริง (Ie2416, b/248274004)

การอัปเดตการขึ้นต่อกัน

  • ตอนนี้ UI ของ Compose และ Material ของ Compose ขึ้นอยู่กับ Lifecycle 2.5.1 แล้ว (I05ab0, b/258038814)

เวอร์ชัน 1.4.0-alpha02

9 พฤศจิกายน 2022

androidx.compose.material:material-*:1.4.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้ awaitFirstDown และ waitForUpOrCancellation ยอมรับ PointerEventPass เพื่อให้มีความยืดหยุ่นมากขึ้น (I7579a, b/212091796)
  • เพิ่มพารามิเตอร์ minLines ลงในข้อความ Material และ Material3 TextField และ OutlinedTextField ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์ในแง่ของจำนวนบรรทัดได้ (I4af1d)
  • เพิ่มพารามิเตอร์ minLines ลงใน BasicText และ BasicTextField ซึ่งช่วยให้ตั้งค่าความสูงขั้นต่ำของ Composable เหล่านี้ในแง่ของ จำนวนบรรทัด (I24294, b/122476634)

เวอร์ชัน 1.4.0-alpha01

24 ตุลาคม 2022

androidx.compose.material:material-*:1.4.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.4.0-alpha01 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เพิ่มวิธีการใหม่ awaitEachGesture() สำหรับเครื่องตรวจจับท่าทางสัมผัส ซึ่งทำงานคล้ายกับ forEachGesture() แต่การวนซ้ำเหนือท่าทางจะทำงานภายใน AwaitPointerEventScope ทั้งหมด ดังนั้นเหตุการณ์จึงไม่สูญหายระหว่างการวนซ้ำ
  • เราเลิกใช้งาน forEachGesture() แล้วและหันมาใช้ awaitEachGesture() แทนเนื่องจากช่วยป้องกันไม่ให้เหตุการณ์สูญหายระหว่างท่าทางสัมผัส (Iffc3f, b/251260206)

เวอร์ชัน 1.3

เวอร์ชัน 1.3.1

9 พฤศจิกายน 2022

androidx.compose.material:material-*:1.3.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้

เวอร์ชัน 1.3.0

24 ตุลาคม 2022

androidx.compose.material:material-*:1.3.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0

การเปลี่ยนแปลงที่ทำให้เกิดการหยุดทำงานของลักษณะการทำงาน

  • ลดระดับความสูงสูงสุดที่รองรับในกล่องโต้ตอบและป๊อปอัปเป็น 8dp

การเปลี่ยนแปลง API

  • เพิ่มคอมโพเนนต์ดึงเพื่อรีเฟรชไปยัง Compose (I29168)
  • เปลี่ยนชื่อพารามิเตอร์จากค่าเป็นค่าใน RangeSlider (I3b79a)

เวอร์ชัน 1.3.0-rc01

5 ตุลาคม 2022

androidx.compose.material:material-*:1.3.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-rc01 มีคอมมิตต่อไปนี้

เวอร์ชัน 1.3.0-beta03

21 กันยายน 2022

androidx.compose.material:material-*:1.3.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-beta03 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มคอมโพเนนต์ดึงเพื่อรีเฟรชไปยัง Compose (I29168)

เวอร์ชัน 1.3.0-beta02

7 กันยายน 2022

androidx.compose.material:material-*:1.3.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-beta02 มีคอมมิตเหล่านี้

ไม่มีการเปลี่ยนแปลงตั้งแต่ 1.3.0-beta01

เวอร์ชัน 1.3.0-beta01

24 สิงหาคม 2022

androidx.compose.material:material-*:1.3.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-beta01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่ทำให้เกิดการหยุดทำงานของลักษณะการทำงาน

ลดระดับความสูงสูงสุดที่รองรับในกล่องโต้ตอบและป๊อปอัปเป็น 8dp

ระดับความสูงสูงสุดที่รองรับสำหรับกล่องโต้ตอบและป๊อปอัปของ Compose ลดลงจาก 30dp เป็น 8dp การเปลี่ยนแปลงนี้ส่งผลต่อทั้งกล่องโต้ตอบและป๊อปอัปที่กำหนดเองของ Material และ UI การเปลี่ยนแปลงนี้มีขึ้นเพื่อลดข้อบกพร่องด้านการช่วยเหลือพิเศษใน Android เวอร์ชันต่ำกว่า S และเพื่อให้มั่นใจว่าบริการช่วยเหลือพิเศษภายในหน้าต่างเหล่านั้นจะโต้ตอบกับเนื้อหาภายในกล่องโต้ตอบหรือป๊อปอัปได้

การเปลี่ยนแปลงนี้จะส่งผลต่อคุณก็ต่อเมื่อคุณสร้างการติดตั้งใช้งานกล่องโต้ตอบหรือป๊อปอัปที่กำหนดเองโดยตั้งค่าระดับการยกระดับสูงกว่า 8dp ลองลดระดับความสูงของกล่องโต้ตอบหรือป๊อปอัป หากต้องการเลือกไม่ใช้ลักษณะการทำงานใหม่นี้ ให้พิจารณา Fork กล่องโต้ตอบหรือป๊อปอัปของคุณเองโดยตั้งค่าการยกระดับที่ต้องการ เราไม่แนะนำให้ทำเช่นนี้ เนื่องจากอาจส่งผลเสียต่อการช่วยเหลือพิเศษ และนักพัฒนาแอปต้องตรวจสอบว่าส่วนล่างของกล่องโต้ตอบหรือป๊อปอัปสามารถโต้ตอบได้และบริการการช่วยเหลือพิเศษอ่านได้

เวอร์ชัน 1.3.0-alpha03

10 สิงหาคม 2022

androidx.compose.material:material-*:1.3.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha03 มีคอมมิตต่อไปนี้

เวอร์ชัน 1.3.0-alpha02

27 กรกฎาคม 2022

androidx.compose.material:material-*:1.3.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha02 มีคอมมิตเหล่านี้

การมีส่วนร่วมภายนอก

  • แก้ไขปัญหา AnimatedVisibility ด้วย FloatingActionButton ใน Scaffold (I3a0ae, b/224005027)

เวอร์ชัน 1.3.0-alpha01

29 มิถุนายน 2022

androidx.compose.material:material-*:1.3.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.3.0-alpha01 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อพารามิเตอร์จากค่าเป็นค่าใน RangeSlider (I3b79a)

การแก้ไขข้อบกพร่อง

  • อัปเดตตัวอย่างป้ายเพื่อระบุคำอธิบายเนื้อหาที่มีความหมายมากขึ้น (I10b9d)

เวอร์ชัน 1.2

เวอร์ชัน 1.2.1

10 สิงหาคม 2022

androidx.compose.material:material-*:1.2.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้

เวอร์ชัน 1.2.0

27 กรกฎาคม 2022

androidx.compose.material:material-*:1.2.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้

เวอร์ชัน 1.2.0-rc03

29 มิถุนายน 2022

androidx.compose.material:material-*:1.2.0-rc03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-rc03 มีคอมมิตเหล่านี้

  • ไม่มีการเปลี่ยนแปลงตั้งแต่เวอร์ชัน 1.2.0-rc02

เวอร์ชัน 1.2.0-rc02

22 มิถุนายน 2022

androidx.compose.material:material-*:1.2.0-rc02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-rc02 มีคอมมิตเหล่านี้

เวอร์ชัน 1.2.0-rc01

15 มิถุนายน 2022

androidx.compose.material:material-*:1.2.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-rc01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้อินเทอร์เฟซในไลบรารี Compose สร้างขึ้นโดยใช้เมธอดอินเทอร์เฟซเริ่มต้นของ jdk8 (I5bcf1)

การแก้ไขข้อบกพร่อง

  • อัปเดตป้ายพร้อมแท็บไอคอนนำเพื่อติดป้ายกำกับแทนไอคอน (I90993)

เวอร์ชัน 1.2.0-beta03

1 มิถุนายน 2022

androidx.compose.material:material-*:1.2.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-beta03 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องที่ทำให้ BottomSheetScaffold วาดทับเงาของแถบแอปด้านบน BottomSheetScaffold จะพิจารณาสถานะของชีตด้วยเมื่อวางแถบแสดงข้อความ: ในสถานะยุบ แถบแสดงข้อความจะอยู่เหนือชีตและ FAB ส่วนในสถานะขยาย แถบแสดงข้อความจะยึดไว้ที่ด้านล่างของชีต (Ia80b5, b/187771422)

เวอร์ชัน 1.2.0-beta02

18 พฤษภาคม 2022

androidx.compose.material:material-*:1.2.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-beta02 มีคอมมิตเหล่านี้

เวอร์ชัน 1.2.0-beta01

11 พฤษภาคม 2022

androidx.compose.material:material-*:1.2.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-beta01 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • นี่คือรุ่นเบต้า 1.2 รุ่นแรก

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อ Composable TextFieldDefaults.BorderStroke ที่วาดเส้นขอบใน OutlinedTextField เป็น TextFieldDefaults.BorderBox (I5f295)

เวอร์ชัน 1.2.0-alpha08

20 เมษายน 2022

androidx.compose.material:material-*:1.2.0-alpha08 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha08 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • การดูบางส่วน (ลงหรือตำแหน่ง) เลิกใช้งานแล้วใน PointerInputChange คุณใช้ consume() เพื่อใช้การเปลี่ยนแปลงทั้งหมดได้ คุณใช้ isConsumed เพื่อพิจารณาว่ามีบุคคลอื่นใช้การเปลี่ยนแปลงไปก่อนหน้านี้หรือไม่
  • PointerInputChange::copy() จะทำสำเนาแบบตื้นเสมอ ซึ่งหมายความว่าระบบจะใช้สำเนาของ PointerInputChange เมื่อมีการใช้สำเนาใดสำเนาหนึ่ง หากต้องการสร้าง PointerInputChange ที่ไม่มีขอบเขต ให้ใช้ตัวสร้างแทน (Ie6be4, b/225669674)

เวอร์ชัน 1.2.0-alpha07

6 เมษายน 2022

androidx.compose.material:material-*:1.2.0-alpha07 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha07 มีคอมมิตต่อไปนี้

เวอร์ชัน 1.2.0-alpha06

23 มีนาคม 2022

androidx.compose.material:material-*:1.2.0-alpha06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha06 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • อัปเดต API ของการ์ดที่คลิกได้เพื่อให้สอดคล้องกับการเปลี่ยนแปลงใน Surface API (I56bcb)
  • การอัปเดต Material 2 Surface API ที่เพิ่มฟังก์ชันที่โอเวอร์โหลดเพิ่มเติมสำหรับ Surface ที่เลือกได้และสลับได้ (Ifcca5)

เวอร์ชัน 1.2.0-alpha05

9 มีนาคม 2022

androidx.compose.material:material-*:1.2.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha05 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้ LazyVerticalGrid และ LazyHorizontalGrid เสถียรแล้ว (I307c0)
  • LazyVerticalGrid/LazyHorizontalGrid และ API ที่เกี่ยวข้องทั้งหมดถูกย้ายไปไว้ในแพ็กเกจย่อย .grid โปรดอัปเดตการนำเข้าจาก androidx.compose.foundation.lazy เป็น androidx.compose.foundation.lazy.grid (I2d446, b/219942574)
  • เปลี่ยนกลับการเปลี่ยนแปลงก่อนหน้านี้ที่ใช้เฉพาะ View สำหรับ WindowInsetsControllerCompat และกำหนดให้ต้องมี Window อีกครั้ง ซึ่งจำเป็นสำหรับการจัดการแฟล็กหน้าต่างบางรายการ เลิกใช้งาน ViewCompat.getWindowInsetsController เพื่อให้ใช้ WindowCompat.getInsetsController เพื่อให้แน่ใจว่าใช้ Window ที่ถูกต้อง (เช่น หาก View อยู่ในกล่องโต้ตอบ) (I660ae, b/219572936)
  • ข้อความ:includeFontPadding ปิดอยู่โดยค่าเริ่มต้นแล้วในตอนนี้ เราได้includeFontPadding=falseแก้ไขปัญหาการตัดข้อความอันเป็นผลมาจากincludeFontPadding=falseแล้ว และไม่ควรมีการตัดข้อความสำหรับสคริปต์ที่มีความยาว (I31c84, b/171394808)
  • เพิ่ม LazyVerticalGrid API ใหม่เพื่อกำหนดขนาดแกนไขว้ (I17723)

เวอร์ชัน 1.2.0-alpha04

23 กุมภาพันธ์ 2022

androidx.compose.material:material-*:1.2.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha04 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • Add support for filter chips (I39a6e, b/192585545)
  • เพิ่ม TextFieldDecorationBox และ OutlinedTextFieldDecorationBox การใช้ร่วมกับ BasicTextField จะช่วยให้คุณสร้างช่องข้อความที่กำหนดเองตามช่องข้อความ Material Design แต่มีตัวเลือกการปรับแต่งเพิ่มเติม
  • มีวิธีปรับระยะห่างแนวนอนและแนวตั้งในช่องข้อความ (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
  • เพิ่ม ComposableTarget, ComposableTargetMarker และ ComposableOpenTarget ที่อนุญาตให้รายงานเวลาคอมไพล์เมื่อมีการเรียกใช้ ฟังก์ชันที่ประกอบกันได้ซึ่งกำหนดเป้าหมายไปยังแอปพลิเคชันที่ไม่ได้ ออกแบบมาให้ใช้

    ในกรณีส่วนใหญ่ ปลั๊กอินคอมไพเลอร์ Compose จะอนุมานคำอธิบายประกอบได้ ดังนั้นการใช้คำอธิบายประกอบเหล่านี้โดยตรงจึงไม่ค่อยเกิดขึ้น กรณีที่อนุมานไม่ได้ ได้แก่ การสร้างและ การใช้แอปพลิเคชันที่กำหนดเอง ฟังก์ชันที่ประกอบกันได้แบบนามธรรม (เช่น เมธอดอินเทอร์เฟซ) ฟิลด์หรือตัวแปรส่วนกลางที่เป็น แลมบ์ดาที่ประกอบกันได้ (ระบบจะอนุมานตัวแปรและพารามิเตอร์ภายใน) หรือเมื่อใช้ ComposeNode หรือฟังก์ชันที่ประกอบกันได้ที่เกี่ยวข้อง

    สำหรับฟังก์ชันที่กำหนดเองที่เรียกใช้ฟังก์ชันที่ใช้ร่วมกันได้ ComposeNode หรือ ReusableComposeNode จะต้องเพิ่ม CompoableTarget คำอธิบายประกอบสำหรับฟังก์ชันและประเภทพารามิเตอร์แลมบ์ดาที่ใช้ร่วมกันได้ อย่างไรก็ตาม เราขอแนะนำ ให้สร้างคำอธิบายประกอบที่มีคำอธิบายประกอบเป็น ComposableTargetMarker แล้วใช้คำอธิบายประกอบที่ทำเครื่องหมาย แทน ComposableTarget โดยตรง คำอธิบายประกอบที่ประกอบได้ ซึ่งทำเครื่องหมายด้วย ComposableTargetMarker จะเทียบเท่ากับ ComposbleTarget ที่มีชื่อแบบเต็มของแอตทริบิวต์ คลาสเป็นพารามิเตอร์แอปพลิเคชัน ดูตัวอย่างการใช้ ComposableTargetMarker ได้ที่ anroidx.compose.ui.UiComposable (I38f11)

เวอร์ชัน 1.2.0-alpha03

9 กุมภาพันธ์ 2022

androidx.compose.material:material-*:1.2.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • ตัวอย่างกลุ่มชิปที่เพิ่ม (I97080, b/192585545)

เวอร์ชัน 1.2.0-alpha02

26 มกราคม 2022

androidx.compose.material:material-*:1.2.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม NonRestartableComposable ไปยังเมธอดที่โอเวอร์โหลด ของเมธอดที่มีอยู่โดยไม่มีตรรกะที่ซับซ้อน ซึ่งจะช่วยลดการตรวจสอบการจดจำ (เท่ากับ) ที่คอมไพเลอร์ สร้างขึ้นสําหรับพารามิเตอร์ทั้งหมดที่ ซ้ำกันในฟังก์ชันภายในที่เรียกใช้ (I90490)
  • เพิ่มการรองรับชิปการดำเนินการ (I07100, b/192585545)

เวอร์ชัน 1.2.0-alpha01

12 มกราคม 2022

androidx.compose.material:material-*:1.2.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.2.0-alpha01 มีคอมมิตต่อไปนี้

การอัปเดตการขึ้นต่อกัน

  • ตอนนี้ต้องใช้ Kotlin 1.6.10

การมีส่วนร่วมภายนอก

  • ตอนนี้ ModalBottomSheetState มีธง isSkipHalfExpanded แล้ว คุณตั้งค่าผ่านเครื่องมือสร้างหรืออัปเดตในภายหลังได้โดยตั้งค่าพร็อพเพอร์ตี้ ModalBottomSheetState ของ isSkipHalfExpanded เป็น true การอัปเดตค่าของ isSkipHalfExpanded จะทําให้ชีตประกอบใหม่ (I18b86, b/186669820)

เวอร์ชัน 1.1

เวอร์ชัน 1.1.1

23 กุมภาพันธ์ 2022

androidx.compose.material:material-*:1.1.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไข NullPointerException ที่ androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList (aosp/1947059, b/206677462)
  • แก้ไขข้อขัดข้องที่เกิดจากเนื้อหาในคลิปบอร์ดขณะอ่านจาก คลิปบอร์ดใน Android (I06020, b/197769306)
  • แก้ไข RTL ใน LazyVerticalGrid (aosp/1931080, b/207510535)

เวอร์ชัน 1.1.0

9 กุมภาพันธ์ 2022

androidx.compose.material:material-*:1.1.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.0.0

  • รองรับเอฟเฟกต์การเลื่อนเกินของ Android 12 อย่างเสถียร
  • การปรับปรุงขนาดเป้าหมายการสัมผัส
  • โปรดทราบว่าใน Compose 1.0 คอมโพเนนต์ Material จะขยายพื้นที่เลย์เอาต์เพื่อให้เป็นไปตามหลักเกณฑ์การช่วยเหลือพิเศษของ Material สำหรับขนาดเป้าหมายการสัมผัส ตัวอย่างเช่น เป้าหมายการสัมผัสของปุ่มจะขยายเป็นขนาดขั้นต่ำ 48x48dp แม้ว่าคุณจะตั้งค่าขนาดของปุ่มให้เล็กกว่านี้ก็ตาม ซึ่งจะทําให้ Compose Material มีลักษณะการทํางานเหมือนกับ Material Design Components และมีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง View และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจได้ว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Material ของ Compose ระบบจะปฏิบัติตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษของเป้าหมายการสัมผัส
  • การรองรับแถบข้างสำหรับไปยังส่วนต่างๆ ที่เสถียร
  • เปลี่ยน API ที่เคยอยู่ในระยะทดลองจำนวนหนึ่งให้เป็น API ที่เสถียร
  • การรองรับ Kotlin เวอร์ชันใหม่กว่า

เวอร์ชัน 1.1.0-rc03

26 มกราคม 2022

androidx.compose.material:material-*:1.1.0-rc03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-rc03 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงพฤติกรรม

โปรดทราบว่าเมื่อใช้ Compose 1.0 คอมโพเนนต์ Material จะขยายพื้นที่เลย์เอาต์เพื่อให้เป็นไปตามขนาดเป้าหมายการสัมผัสตามหลักเกณฑ์การช่วยเหลือพิเศษของ Material ตัวอย่างเช่น เป้าหมายการสัมผัสของปุ่มจะขยายเป็นขนาดขั้นต่ำ 48x48dp แม้ว่าคุณจะตั้งค่าขนาดของปุ่มให้เล็กกว่านี้ก็ตาม ซึ่งจะทําให้ Compose Material มีลักษณะการทํางานเหมือนกับ Material Design Components และมีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง View และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจได้ว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Material ของ Compose ระบบจะปฏิบัติตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษของเป้าหมายการสัมผัส

การแก้ไขข้อบกพร่อง

  • เพิ่มข้อมูลการแก้ไขข้อบกพร่องที่ดีขึ้นสําหรับเครื่องมือตรวจสอบเลย์เอาต์เมื่อตรวจสอบตัวแก้ไขเป้าหมายการสัมผัสขั้นต่ำ (aosp/1955036)

เวอร์ชัน 1.1.0-rc01

15 ธันวาคม 2021

androidx.compose.material:material-*:1.1.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

เวอร์ชัน 1.1.0-beta04

1 ธันวาคม 2021

androidx.compose.material:material-*:1.1.0-beta04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta04 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • อัปเดตให้เข้ากันได้กับ Kotlin 1.6.0

เวอร์ชัน 1.1.0-beta03

17 พฤศจิกายน 2021

androidx.compose.material:material-*:1.1.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta03 มีคอมมิตเหล่านี้

เวอร์ชัน 1.1.0-beta02

3 พฤศจิกายน 2021

androidx.compose.material:material-*:1.1.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta02 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้การกระเพื่อมและข้อบ่งชี้อื่นๆ จะล่าช้าก็ต่อเมื่ออยู่ภายในคอนเทนเนอร์ Modifier.scrollable() เท่านั้น แทนที่จะล่าช้าเสมอสำหรับเหตุการณ์การแตะลง (Ibefe0, b/203141462)

เวอร์ชัน 1.1.0-beta01

27 ตุลาคม 2021

androidx.compose.material:material-*:1.1.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta01 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ตอนนี้ Ripples รองรับสถานะการวางเมาส์และการโฟกัสแล้ว ดังนั้นการวางเมาส์ / การโฟกัสคอมโพเนนต์ เช่น ปุ่ม จะแสดงการซ้อนทับสถานะที่ถูกต้อง

เวอร์ชัน 1.1.0-alpha06

13 ตุลาคม 2021

androidx.compose.material:material-*:1.1.0-alpha06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มการโอเวอร์โหลดที่ไม่มีการระบุองค์ประกอบย่อยสำหรับเลย์เอาต์เพื่อปรับปรุงประสิทธิภาพ (Ib0d9a)
  • การติดตั้งใช้งาน ExposedDropdownMenu โดยอิงตาม ExposedDropdownMenuBox ที่มี TextField และ DropdownMenu อยู่ภายใน (If60b2)
  • เพิ่ม dismissOnOutsideClick ลงใน PopupProperties เพื่อแทนที่ dismissOnClickOutside ซึ่งเลิกใช้งานแล้ว พร็อพเพอร์ตี้ใหม่จะได้รับตําแหน่งการคลิกและขอบเขตของจุดยึด ซึ่งช่วยให้ควบคุมได้ละเอียดยิ่งขึ้นว่าจะเรียกใช้ onDismissRequest หรือไม่ เช่น การตั้งค่านี้อาจมีประโยชน์ในการป้องกันไม่ให้เลิกใช้สมอเมื่อมีการแตะที่สมอ
    • updateAndroidWindowManagerFlags ได้รับการเพิ่มลงใน PopupProperties ซึ่งช่วยให้ควบคุมระดับต่ำสำหรับ Flag ที่ป๊อปอัปส่งไปยัง WindowManager ของ Android พารามิเตอร์ของ Lambda จะเป็นค่าสถานะที่คำนวณจากค่า PopupProperties ซึ่งส่งผลให้เกิดค่าสถานะ WindowManager เช่น focusable ผลลัพธ์ของ Lambda จะเป็น Flag สุดท้ายที่จะส่งไปยัง WindowManager ของ Android โดยค่าเริ่มต้น updateAndroidWindowManagerFlags จะไม่เปลี่ยนแปลงค่าสถานะที่คำนวณจากพารามิเตอร์ คุณควรใช้ API นี้ด้วยความระมัดระวัง เฉพาะในกรณีที่ป๊อปอัปมีข้อกำหนดด้านลักษณะการทำงานที่เฉพาะเจาะจงมาก (I6e9f9)

เวอร์ชัน 1.1.0-alpha05

29 กันยายน 2021

androidx.compose.material:material-*:1.1.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำสำหรับคอมโพเนนต์ Material ที่ไม่มีเป้าหมายการสัมผัสที่เข้าถึงได้ เนื่องจากวิธีนี้จะเพิ่มระยะห่างรอบๆ คอมโพเนนต์เพื่อให้แน่ใจว่ามีเป้าหมายการสัมผัสที่ใหญ่พอ จึงอาจเปลี่ยน UI ที่มีอยู่ซึ่งถือว่าขนาดของคอมโพเนนต์เหล่านี้คือขนาดภาพ และไม่ได้คำนึงถึงขนาดเป้าหมายการสัมผัส คุณสามารถใช้ LocalMinimumTouchTargetEnforcement composition local เวอร์ชันทดลองเพื่อปิดใช้ลักษณะการทำงานนี้ในลำดับชั้นได้ แต่มีไว้เพื่อเป็นทางออกชั่วคราวเท่านั้นในขณะที่อัปเดต UI ที่มีอยู่ให้รองรับขนาดขั้นต่ำใหม่ (I9b966, b/149691127, b/171509422)
  • เพิ่มอินเทอร์เฟซ TextFieldColorsWithIcons เวอร์ชันทดลอง ซึ่งขยาย TextFieldColors เพื่อให้ InteractionSource กับ leadingColor และ trailingColor ซึ่งช่วยให้แก้ไขลักษณะของ TextField ตามสถานะโฟกัสได้ (I66923, b/198402662)

เวอร์ชัน 1.1.0-alpha04

15 กันยายน 2021

androidx.compose.material:material-*:1.1.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เลิกใช้งาน performGesture และ GestureScope ซึ่งถูกแทนที่ด้วย performTouchInput และ TouchInjectionScope (Ia5f3f, b/190493367)
  • เพิ่ม touchBoundsInRoot ถึง SemanticsNode ซึ่ง รวมถึงขนาดเป้าหมายการสัมผัสขั้นต่ำ เพื่อให้นักพัฒนาแอป มั่นใจได้ว่าเป้าหมายการสัมผัสเป็นไปตามข้อกำหนดขั้นต่ำด้านการช่วยเหลือพิเศษ (I2e14b, b/197751214)

การแก้ไขข้อบกพร่อง

  • อนุญาตให้คลิปขยายขอบเขตเป้าหมายการสัมผัสเกินกว่า ภูมิภาคคลิปเพื่อวัตถุประสงค์ของเป้าหมายการสัมผัสขั้นต่ำ (I43e10, b/171509422)
  • อัปเดต Divider composable to respect 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 ให้ขึ้นอยู่กับ Kotlin 1.5.30 (I74545)

การเปลี่ยนแปลง API

  • เพิ่มวิธีการทดสอบเพื่อรับขอบเขตที่ตัด (I6b28e)
  • เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำลงใน ViewConfiguration เพื่อใช้ในความหมายและอินพุตของเคอร์เซอร์เพื่อให้มั่นใจว่ามีการช่วยเหลือพิเศษ (Ie861c)

เวอร์ชัน 1.1.0-alpha02

18 สิงหาคม 2021

androidx.compose.material:material-*:1.1.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้

การมีส่วนร่วมภายนอก

  • แก้ไขลักษณะการทำงานของ SwipeableState ในกรณีที่ออฟเซ็ตการปัดอยู่ภายในข้อผิดพลาดในการปัดของจุดยึด (I03d39, b/191993377)

เวอร์ชัน 1.1.0-alpha01

4 สิงหาคม 2021

androidx.compose.material:material-*:1.1.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • อัปเดตDrawScope#drawImageเมธอดที่ ใช้สี่เหลี่ยมผืนผ้าต้นทางและปลายทาง เพื่อใช้พารามิเตอร์ FilterQuality ที่ไม่บังคับ ซึ่งมีประโยชน์สำหรับพิกเซล อาร์ตที่ต้องการให้เป็นพิกเซล เมื่อขยายขนาดสำหรับอาร์ตตามพิกเซล อัปเดต BitmapPainter + Image composable ให้ใช้พารามิเตอร์ FilterQuality ที่ไม่บังคับด้วย (Ie4fb0, b/180311607)
  • เปลี่ยนชื่อ BadgeBox เป็น BadgedBox และเปลี่ยนพารามิเตอร์เพื่อยอมรับ Badge ที่ใช้ร่วมกันได้ เพิ่มคอมโพเนนต์ป้ายซึ่งเป็นเนื้อหาป้ายทั่วไปสำหรับ BadgedBox (I639c6)
  • เพิ่มคอมโพเนนต์ NavigationRail โปรดดูข้อมูลการใช้งานในเอกสารและตัวอย่าง (I8de77)

การแก้ไขข้อบกพร่อง

  • เพิ่มตัวอย่าง NavigationRail ที่จัดแนวไว้ด้านล่างและเดโมแอปแคตตาล็อก (I3cffc)
  • ตอนนี้กล่องโต้ตอบจะทําตามลักษณะการปรับขนาดของแพลตฟอร์มแล้ว ตั้งค่า usePlatformDefaultWidth เป็น false เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
  • เพิ่มการสาธิตแถบนำทางลงในแอปแคตตาล็อก (I04960)
  • เพิ่มการสาธิตป้ายลงในแอปแคตตาล็อก (If285d)

รุ่น 1.0

เวอร์ชัน 1.0.5

3 พฤศจิกายน 2021

androidx.compose.material:material-*:1.0.5 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.5 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อขัดข้องในการติดตามอินสแตนซ์ derivedStateOf (aosp/1792247)

เวอร์ชัน 1.0.4

13 ตุลาคม 2021

androidx.compose.material:material-*:1.0.4 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.4 มีคอมมิตเหล่านี้

การอัปเดตการขึ้นต่อกัน

  • อัปเดตให้ขึ้นอยู่กับ Kotlin 1.5.31

เวอร์ชัน 1.0.3

29 กันยายน 2021

androidx.compose.material:material-*:1.0.3 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.3 มีคอมมิตเหล่านี้

การอัปเดตการขึ้นต่อกัน

  • อัปเดตให้ขึ้นอยู่กับ Kotlin 1.5.30

เวอร์ชัน 1.0.2

1 กันยายน 2021

androidx.compose.material:material-*:1.0.2 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.2 มีคอมมิตเหล่านี้

อัปเดตเพื่อรองรับการเปิดตัว Compose 1.0.2 Compose 1.0.2 ยังคงใช้ได้กับ Kotlin 1.5.21

เวอร์ชัน 1.0.1

4 สิงหาคม 2021

androidx.compose.material:material-*:1.0.1 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้

การอัปเดตการขึ้นต่อกัน

  • อัปเดตให้ขึ้นอยู่กับ Kotlin 1.5.21

เวอร์ชัน 1.0.0

28 กรกฎาคม 2021

androidx.compose.material:material-*:1.0.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้

ฟีเจอร์หลักของเวอร์ชัน 1.0.0

นี่คือ Compose เวอร์ชันเสถียรเวอร์ชันแรก โปรดดูรายละเอียดเพิ่มเติมในบล็อกการเปิดตัว Compose อย่างเป็นทางการ

ปัญหาที่ทราบ

  • หากคุณใช้ Android Studio Bumblebee Canary 4 หรือ AGP 7.1.0-alpha04/7.1.0-alpha05 คุณอาจพบข้อขัดข้องต่อไปนี้

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    หากต้องการแก้ไข ให้เพิ่ม minSdkVersion เป็น 24 ขึ้นไปชั่วคราวในไฟล์ build.gradle ปัญหานี้จะได้รับการแก้ไขใน Android Studio Bumblebee และ AGP 7.1 เวอร์ชันถัดไป (b/194289155)

เวอร์ชัน 1.0.0-rc02

14 กรกฎาคม 2021

androidx.compose.material:material-*:1.0.0-rc02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-rc02 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ตอนนี้กล่องโต้ตอบจะทําตามลักษณะการปรับขนาดของแพลตฟอร์มแล้ว ตั้งค่า usePlatformDefaultWidth เป็น false เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)

เวอร์ชัน 1.0.0-rc01

1 กรกฎาคม 2021

androidx.compose.material:material-*:1.0.0-rc01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มคอมโพเนนต์ BadgeBox ดูข้อมูลการใช้งานในเอกสารและตัวอย่าง (I5e284)
  • เราได้เปลี่ยนชื่อ useDefaultMaxWidth ใน PopupProperties เป็น usePlatformDefaultWidth แล้ว (I05710)
  • ตอนนี้กล่องโต้ตอบใช้ความกว้างของทั้งหน้าจอได้แล้ว (I83929, b/190810877)
  • เพิ่มการติดตั้งใช้งานแถบเลื่อนช่วงทดลอง (I2f4b3)

การแก้ไขข้อบกพร่อง

  • เพื่อให้สอดคล้องกับข้อกำหนดของ Material Design OutlinedTextField ที่มีอินพุตที่ไม่ถูกต้องจึงหยุดใช้สีข้อผิดพลาดสำหรับป้ายกำกับเมื่อใช้ป้ายกำกับเป็นตัวยึดตำแหน่ง กรณีหลังจะเป็นจริงเมื่อไม่มีข้อความที่ป้อนในช่องข้อความและช่องข้อความไม่ได้อยู่ในโฟกัส การเปลี่ยนแปลงดังกล่าวทำให้ความหมายของพารามิเตอร์ error:Boolean ในฟังก์ชัน TextFieldColors.labelColor() เปลี่ยนไปด้วย โดยตอนนี้ฟังก์ชันจะแสดงผล false แม้ว่าอินพุตจะไม่ถูกต้องหากมีการใช้ป้ายกำกับเป็นตัวยึดตำแหน่ง (I45f78)

เวอร์ชัน 1.0.0-beta09

16 มิถุนายน 2021

androidx.compose.material:material-*:1.0.0-beta09 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta09 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มพารามิเตอร์ Shape ลงใน OutlinedTextField เพื่อปรับแต่งรูปร่างของเส้นขอบได้ (I8f39e, b/181322957)
  • เปลี่ยน TextOverflow เป็นคลาสอินไลน์ (I433af)

การแก้ไขข้อบกพร่อง

  • Scrim ใน BottomDrawer, BackdropScaffold และ ModalBottomSheetLayout จะหายไปเมื่อมีการส่ง Color.Unspecified (I2d899, b/182063309)

เพิ่มกฎโปรไฟล์

รุ่นนี้เพิ่มกฎของโปรไฟล์ลงในโมดูลการเขียนต่อไปนี้ (I14ed6)

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

กฎโปรไฟล์คืออะไร

  • กฎของโปรไฟล์สำหรับไลบรารีจะระบุไว้ในไฟล์ข้อความ baseline-prof.txt ซึ่งอยู่ใน src/main หรือไดเรกทอรีที่เทียบเท่า ไฟล์จะระบุกฎต่อบรรทัด โดยในกรณีนี้กฎคือรูปแบบสำหรับการจับคู่กับเมธอดหรือคลาสในไลบรารี ไวยากรณ์ของกฎเหล่านี้เป็นซูเปอร์เซ็ตของรูปแบบโปรไฟล์ ART ที่มนุษย์อ่านได้ ซึ่งใช้เมื่อใช้ adb shell profman --dump-classes-and-methods ... กฎเหล่านี้มี 2 รูปแบบเพื่อกำหนดเป้าหมายไปยังเมธอดหรือคลาส

  • กฎของเมธอดจะมีรูปแบบดังนี้

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • และกฎของชั้นเรียนจะมีรูปแบบดังนี้

    <CLASS_DESCRIPTOR>
    
  • โดย <FLAGS> คืออักขระ H, S และ P อย่างน้อย 1 ตัวเพื่อระบุว่าควรติดแฟล็กวิธีนี้เป็น "มาแรง" "สตาร์ทอัป" หรือ "หลังสตาร์ทอัป" หรือไม่

  • <CLASS_DESCRIPTOR> คือตัวอธิบายสำหรับคลาสที่เมธอดเป้าหมายเป็นของ เช่น คลาส androidx.compose.runtime.SlotTable จะมีตัวอธิบายเป็น Landroidx/compose/runtime/SlotTable;

  • <METHOD_SIGNATURE> คือลายเซ็นของเมธอด ซึ่งรวมถึงชื่อ ประเภทพารามิเตอร์ และประเภทการคืนค่าของเมธอด เช่น เมธอด fun isPlaced(): Boolean ใน LayoutNode มีลายเซ็น isPlaced()Z

  • รูปแบบเหล่านี้มีไวลด์การ์ด (**, * และ ?) ได้เพื่อให้กฎเดียวครอบคลุมหลายเมธอดหรือคลาส

กฎมีหน้าที่อะไร

  • เมธอดที่มีแฟล็ก H แสดงว่าเมธอดนี้เป็นเมธอด "ยอดนิยม" และควรคอมไพล์ล่วงหน้า

  • เมธอดที่มีแฟล็ก S แสดงว่าเป็นเมธอดที่เรียกใช้เมื่อเริ่มต้น และควรคอมไพล์ล่วงหน้าเพื่อหลีกเลี่ยงค่าใช้จ่ายในการคอมไพล์และตีความเมธอดเมื่อเริ่มต้น

  • เมธอดที่มีแฟล็ก P แสดงว่าเป็นเมธอดที่เรียกใช้หลังจากเริ่มต้น

  • คลาสที่มีอยู่ในไฟล์นี้บ่งบอกว่ามีการใช้คลาสดังกล่าวในระหว่างการเริ่มต้นระบบ และควรจัดสรรล่วงหน้าในฮีปเพื่อหลีกเลี่ยงค่าใช้จ่ายในการโหลดคลาส

ระบบนี้ทำงานอย่างไร

  • ไลบรารีสามารถกำหนดกฎเหล่านี้ซึ่งจะรวมอยู่ในอาร์ติแฟกต์ AAR เมื่อสร้าง APK ที่มีอาร์ติแฟกต์เหล่านี้ ระบบจะผสานกฎเหล่านี้เข้าด้วยกันและใช้กฎที่ผสานแล้วเพื่อสร้างโปรไฟล์ ART แบบไบนารีขนาดกะทัดรัดที่เฉพาะเจาะจงสำหรับ APK จากนั้น ART จะใช้ประโยชน์จากโปรไฟล์นี้เมื่อติดตั้ง APK ในอุปกรณ์เพื่อคอมไพล์ล่วงหน้าสำหรับชุดย่อยของแอปพลิเคชันที่เฉพาะเจาะจงเพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน โดยเฉพาะอย่างยิ่งการเรียกใช้ครั้งแรก โปรดทราบว่าการดำเนินการนี้จะไม่มีผลกับแอปพลิเคชันที่แก้ไขข้อบกพร่องได้

เวอร์ชัน 1.0.0-beta08

2 มิถุนายน 2021

androidx.compose.material:material-*:1.0.0-beta08 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta08 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

การเปลี่ยนแปลง API ที่ทำให้เกิดการหยุดทำงาน

  • การเปลี่ยนแปลงพฤติกรรม: ตอนนี้การ์ดจะใช้การคลิก ทำให้การคลิกที่เพิ่มผ่าน Card(Modifier.clickable) ไม่มีการดำเนินการใดๆ โปรดใช้การโอเวอร์โหลดการทดลองใหม่ของการ์ดที่ยอมรับ onClick (Ia8744, b/183775620)
    • เพิ่ม Card overload ใหม่ที่จัดการการคลิก รวมถึงฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ indication, interactionSource, enabled/disabled เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ Modifier.clickable เนื่องจากในกรณีดังกล่าว การ์ดจะไม่ตัดการระบุการกระเพื่อม
  • การเปลี่ยนแปลงพฤติกรรม: ตอนนี้ Surface จะใช้การคลิก ทำให้การคลิกที่เพิ่มผ่าน Surface(Modifier.clickable) ไม่มีการดำเนินการใดๆ โปรดใช้การโอเวอร์โหลด Surface แบบทดลองใหม่ที่ยอมรับ onClick (I73e6c, b/183775620)
    • เพิ่มการโอเวอร์โหลด Surface ใหม่ที่จัดการการคลิก รวมถึงฟังก์ชันที่คลิกได้อื่นๆ ได้แก่ การระบุ, interactionSource, เปิด/ปิด คุณไม่สามารถใช้ Surface ปกติที่คลิกไม่ได้กับ Modifier.clickable เนื่องจาก Surface จะไม่ตัดการระบุการกระเพื่อมในกรณีดังกล่าว

การเปลี่ยนแปลง API

  • FabPosition ได้รับการแปลงเป็นคลาสแบบอินไลน์จาก enum เพื่อรองรับการขยายในอนาคต (I030fb)
  • ปรับโครงสร้างการใช้งาน enum เป็นคลาสแบบอินไลน์เพื่อหลีกเลี่ยง ปัญหาเกี่ยวกับคำสั่ง when ที่ครอบคลุมเมื่อ มีการเพิ่มค่า enum ใหม่ (I2b5eb)
  • เพิ่มการหมดเวลาการแตะไปยังองค์ประกอบที่คลิกได้ / สลับได้เพื่อป้องกันไม่ให้แสดงเอฟเฟกต์ระลอกระหว่างการเลื่อน / ลาก (Ia2704, b/168524931)
  • พร็อพเพอร์ตี้ ContentDescription และ Text semantics จะไม่ใช่ค่าเดียวอีกต่อไป แต่จะเป็นรายการ ซึ่งจะช่วยให้ผสานรวมได้โดยไม่ต้องต่อกัน นอกจากนี้ ยังมี API การทดสอบที่ดีขึ้นเพื่อใช้ประโยชน์จากการเปลี่ยนแปลงเหล่านี้ (Ica6bf, b/184825850)
  • Modifier.focusModifier() เลิกใช้งานแล้วและแทนที่ด้วย Modifier.focusTarget() (I6c860)
  • แทนที่ Enum FocusState ด้วยอินเทอร์เฟซ FocusState (Iccc1a, b/187055290)
  • นำ LocalRippleNativeRendering ออกแล้วเนื่องจากการใช้งาน Ripple ที่มี View เป็นแบ็กเอนด์เสถียรแล้ว (I7fab3, b/188569367)

การแก้ไขข้อบกพร่อง

  • Modifier.onGloballyPositioned() มีการเปลี่ยนแปลงเพื่อรายงานพิกัดของตัวแก้ไขนี้ในเชนตัวแก้ไข ไม่ใช่พิกัดเลย์เอาต์หลังจากใช้ตัวแก้ไขทั้งหมด ซึ่งหมายความว่าตอนนี้ลำดับของตัวแก้ไขจะส่งผลต่อพิกัดที่จะรายงาน (Ieb67d, b/177926591)
  • เพิ่ม README สำหรับแคตตาล็อก Compose Material ที่มีอยู่ (If9191)

เวอร์ชัน 1.0.0-beta07

18 พฤษภาคม 2021

androidx.compose.material:material-*:1.0.0-beta07 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta07 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • คุณไม่จำเป็นต้องใช้วิธีการขยายสำหรับการรองรับเส้นทาง ใน Navigation Compose อีกต่อไป (I22beb, b/172823546)

เวอร์ชัน 1.0.0-beta06

5 พฤษภาคม 2021

androidx.compose.material:material-*:1.0.0-beta06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta06 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เราได้ย้ายข้อมูล Ripple ไปใช้ RippleDrawable ภายในอุปกรณ์ Android แล้ว ซึ่งหมายความว่าภาพเคลื่อนไหวแบบระลอกจะเกิดขึ้นใน RenderThread และจะราบรื่นแม้ว่า UI Thread จะโหลดอยู่ เช่น เมื่อไปยังส่วนต่างๆ ของหน้าจอ การเปลี่ยนแปลงนี้ไม่ได้เปลี่ยนพื้นผิว API ของ Ripple แต่อาจมีการเปลี่ยนแปลงลักษณะการทำงานอันเป็นผลมาจากการเปลี่ยนแปลงนี้ เราได้เพิ่ม LocalRippleNativeRendering เพื่อช่วยในการย้ายข้อมูล โดยระบุค่า false ให้กับ CompositionLocal นี้เพื่อกลับไปใช้การติดตั้งใช้งาน Ripple ก่อนหน้าภายใน CompositionLocalProvider API นี้เป็นแบบชั่วคราวและจะนำออกในอนาคต ดังนั้นหากพบปัญหาที่ทำให้คุณต้องใช้ API นี้ โปรดรายงานข้อบกพร่อง (I902f8, b/168777351, b/183019123)
  • เพิ่ม API การช่วยเหลือพิเศษ CollectionInfo และ CollectionItemInfo ที่อนุญาตให้ทำเครื่องหมายคอลเล็กชันและรายการของคอลเล็กชันสำหรับบริการการช่วยเหลือพิเศษ (Id54ef, b/180479017)
  • เพิ่ม API การช่วยเหลือพิเศษ error ที่อนุญาตให้ทำเครื่องหมายโหนดที่มีข้อมูลที่ไม่ถูกต้อง (I12997, b/180584804, b/182142737)

การแก้ไขข้อบกพร่อง

  • อัปเดตการติดตั้งใช้งานแทรกแคตตาล็อก Compose Material จาก https://github.com/google/accompanist/pull/365 (I25dc3)
  • ตอนนี้องค์ประกอบย่อยของแถวและคอลัมน์ที่มีน้ำหนัก(fill = false) จะไม่ทำให้องค์ประกอบหลักเติมเต็มพื้นที่แกนหลักที่ใช้ได้ทั้งหมดอีกต่อไป (Ied94d, b/186012444, b/184355105)

เวอร์ชัน 1.0.0-beta05

21 เมษายน 2021

androidx.compose.material:material-*:1.0.0-beta05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta05 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • เพิ่มรูปภาพไทล์ของคอมโพเนนต์ ตัวเลือกธีม และ URL ของเมนูที่เฉพาะเจาะจงมากขึ้นไปยังแคตตาล็อก Material ของ Compose ที่มีอยู่ (I9b58e)

เวอร์ชัน 1.0.0-beta04

7 เมษายน 2021

androidx.compose.material:material-*:1.0.0-beta04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta04 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • การเปลี่ยนแปลง API: DrawerState state ไม่ได้ขยาย SwipeableState ที่เป็นเวอร์ชันทดลองอีกต่อไป
    • การเปลี่ยนแปลง API: ตอนนี้ BottomDrawerState มีสถานะเป็น "ทดลอง" เพื่อให้ตรงกับคอมโพเนนต์ BottomDrawer ที่มีสถานะเป็น "ทดลอง" อยู่แล้ว (I81114, b/181656094)
  • เปลี่ยนชื่อ hideSoftwareKeyboard และ showSoftwareKeyboard ใน SoftwareKeyboardController เป็น hide() และ show() ตามลำดับ
    • ระบุอินเทอร์เฟซ CompositionLocal แบบเต็มสำหรับ LocalSoftwareKeyboardController เพื่อให้ตั้งค่าได้ (มีประโยชน์อย่างยิ่งในการทดสอบ) (I579a6)
  • เพิ่ม API การช่วยเหลือพิเศษ LiveRegion หากมีการทำเครื่องหมายโหนดเป็นภูมิภาคที่มีการเผยแพร่ บริการการช่วยเหลือพิเศษ จะแจ้งให้ผู้ใช้ทราบเกี่ยวกับการเปลี่ยนแปลงโดยอัตโนมัติ (Idcf6f, b/172590946)

การแก้ไขข้อบกพร่อง

  • เพิ่มการติดตั้งใช้งานแคตตาล็อก Compose Material ลงในโมดูลที่มีอยู่ ปัจจุบันยังไม่มีรูปภาพไทล์คอมโพเนนต์และเครื่องมือเลือกธีม (จะเพิ่มในการเปลี่ยนแปลงติดตามผล) (Ie7a94)

เวอร์ชัน 1.0.0-beta03

24 มีนาคม 2021

androidx.compose.material:material-*:1.0.0-beta03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta03 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • DefaultMonotonicFrameClock เลิกใช้งานแล้ว การเรียกใช้ withFrameNanos หรือ Recomposer.runRecomposeAndApplyChanges ที่ไม่มี MonotonicFrameClock จะทำให้เกิด IllegalStateException (I4eb0d)
  • เพิ่ม API ใหม่ LeadingIconTab เพื่อรองรับการแสดงไอคอนและข้อความในแท็บ (I23267)

การมีส่วนร่วมภายนอก

  • [โดย Jossi Wolf] BottomDrawer จะห่อหุ้มเนื้อหาของช่องลิ้นชัก BottomDrawer จะไม่แสดง IllegalStateException เมื่อองค์ประกอบหลักมีความสูงไม่สิ้นสุด ตอนนี้ลิ้นชักด้านล่างจะเปิดขึ้นในสถานะขยายหากมีขนาดเล็กกว่า 50% ของลิ้นชักหลัก มีการอัปเดตเอกสารเกี่ยวกับ BottomDrawerState และ ModalBottomSheetLayoutState BottomDrawerState#isOpen จะแสดงผลเป็น "จริง" หากอยู่ในสถานะเปิดหรือขยาย (I87241)

เวอร์ชัน 1.0.0-beta02

10 มีนาคม 2021

androidx.compose.material:material-*:1.0.0-beta02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่ม LocalSoftwareKeyboardController composition local API ใหม่เพื่อแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าใน TextField (I5951e, b/168778053)

การแก้ไขข้อบกพร่อง

  • บังคับใช้ข้อจำกัดในการใช้งาน API เวอร์ชันทดลองแบบสาธารณะ (I6aa29, b/174531520)
  • เปลี่ยนการจัดแนวแนวนอนเริ่มต้นสำหรับ TopAppBar และ BottomAppBar เป็น Start ให้สอดคล้องกับแถว (Ib2dc7)
  • เพิ่มโมดูลใหม่และ UI ตัวยึดตำแหน่งสำหรับแคตตาล็อก Material ของ Compose ซึ่งปัจจุบันซ้อนอยู่ในเดโมการทดสอบการผสานรวมที่มีอยู่ (Idfcb3)
  • androidx.compose.ui:ui ไม่ได้ขึ้นอยู่กับ AppCompat หรือ Fragment อีกต่อไป หากคุณใช้ ComposeView ในแอปพลิเคชัน และใช้ Fragment และ/หรือ AppCompat โปรดตรวจสอบว่าคุณใช้ AppCompat 1.3 ขึ้นไป / Fragment 1.3 ขึ้นไป เนื่องจากต้องใช้เวอร์ชันเหล่านี้เพื่อตั้งค่าวงจรและเจ้าของสถานะที่บันทึกไว้อย่างถูกต้อง ซึ่งจำเป็นสำหรับ ComposeView (I1d6fa, b/161814404)

เวอร์ชัน 1.0.0-beta01

24 กุมภาพันธ์ 2021

androidx.compose.material:material-*:1.0.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้

นี่คือรุ่นแรกของ Compose 1.0.0 เบต้า

การเปลี่ยนแปลง API

  • มีการเปลี่ยนชื่อตัวแก้ไขขนาด เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize เราเปลี่ยนชื่อ Modifier.preferredWidth/preferredHeight/preferredSize เป็น width/height/size (I5b414)
  • ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยาย ใน ImageBitmap และ ImageVector companion ตามลำดับแล้ว ระบบได้ลบฟังก์ชัน load{Image,Vector,Font}Resource ออกแล้ว (I89130)
  • ตัวแก้ไขสำหรับการปรับขนาดให้ตรงกับขนาดที่แท้จริงไม่ได้อยู่ในขั้นทดลองอีกต่อไป (I15744)
  • นำการยืนยัน dp ออก (I798d2)
  • นำการเรียกกลับ SoftwareKeyboardController ออกจากฟิลด์ข้อความทั้งหมด เพื่อแทนที่ด้วย API ใหม่ในเร็วๆ นี้ (Iae869, b/168778053)
  • ตอนนี้แลมบ์ดาการดำเนินการของ Switch, Checkbox และ RadioButton เป็นค่าว่างได้แล้ว อัปเดตตัวอย่างช่องทําเครื่องหมายในแถวที่คลิกได้เพื่อใช้ฟีเจอร์นี้ (If601b, b/171819073)
  • InteractionState ถูกแทนที่ด้วย [Mutable]InteractionSource แล้ว
    • อินเทอร์เฟซมีหน้าที่ในการปล่อย / รวบรวมเหตุการณ์การโต้ตอบ
    • ใช้ interactionSource = remember { MutableInteractionSource() } แทนการส่ง interactionState = remember { InteractionState() } ไปยังคอมโพเนนต์ เช่น Button และ Modifier.clickable()
    • แทนที่จะเป็น: Interaction.Pressed in interactionState คุณควรใช้ฟังก์ชันส่วนขยายใน InteractionSource แทน เช่น InteractionSource.collectIsPressedAsState()
    • สำหรับกรณีการใช้งานที่ซับซ้อน คุณสามารถใช้ InteractionSource.interactions เพื่อสังเกตสตรีมของการโต้ตอบได้ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบและตัวอย่าง InteractionSource
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
  • เพิ่มอินเทอร์เฟซ AccessibilityMananger และ LocalAccessibilityMananger ใน CompositionLocals (I53520)
  • นำเมธอด LayoutCoordinates ที่เลิกใช้งานแล้วออก ให้ใช้ฟังก์ชันแทนพร็อพเพอร์ตี้สำหรับ positionInParent และ boundsInParent (I580ed, b/169874631, b/175142755)
  • ตอนนี้แถบเลื่อนรองรับสถานะเปิด/ปิดแล้ว (I6d56b, b/179793072)
  • สร้าง TextInputSession ใหม่สำหรับเซสชันอินพุตจากคอมโพเนนต์ข้อความระดับต่ำ เช่น CoreTextField (I8817f, b/177662148)
  • นำ AnimationEndReason.Interrupted ออกแล้ว CancellationException จะเกิดขึ้นหากภาพเคลื่อนไหวถูกขัดจังหวะ (I2cbbc, b/179695417)
  • นำ @ExperimentalRippleApi ออกและเปลี่ยน RippleAlpha ให้เป็นคลาสที่มีพร็อพเพอร์ตี้แทนที่จะเป็นอินเทอร์เฟซ (I6df7c)
  • เพิ่มอินเทอร์เฟซ TextFieldColors เพื่อแสดงสีต่างๆ ที่ใช้ใน TextField และ OutlinedTextField ในสถานะต่างๆ ดูการใช้งานเริ่มต้นได้ที่ TextFieldDefaults.textFieldColors และ TextFieldDefaults.outlinedTextFieldColors
    • เปลี่ยนชื่อพารามิเตอร์ isErrorValue ภายใน TextField และ OutlinedTextField เป็น isError (I831f9, b/171305338, b/168004067)
  • เพิ่มตัวแก้ไข selectionGroup ที่อนุญาตให้ทำเครื่องหมายคอลเล็กชันของแท็บหรือ RadioButton เพื่อวัตถุประสงค์ในการช่วยเหลือพิเศษ (Ie5c29)
  • เพิ่ม LazyListState.animateScrollToItem

    เมธอดนี้จะเลื่อนรายการในลิสต์อย่างราบรื่นไปยังรายการที่เฉพาะเจาะจง (I4bfd7)

  • เปลี่ยนชื่อ ScrollableState.smoothScrollBy() เป็น animateScrollBy() เปลี่ยนชื่อ LazyListState.snapToItemIndex() เป็น scrollToItem() เปลี่ยนชื่อ ScrollState.smoothScrollTo() เป็น animateScrollTo() (I35ded)

  • ตอนนี้ระบบจะตรวจสอบ Composable ที่ทำเครื่องหมายด้วย @ReadOnlyComposable ในเวลาคอมไพล์เพื่อให้แน่ใจว่า Composable เหล่านั้นจะเรียกใช้เฉพาะ @ReadOnlyComposables อื่นๆ (I58961)

  • เราได้นำ TargetAnimation API ออกแล้ว (If47d1, b/177457083)

  • ตอนนี้ตำแหน่งการเลื่อนใน Modifier.verticalScroll()/horizontalScroll() จะแสดงด้วย Ints (I81298)

  • เปลี่ยนแพ็กเกจของเมธอด smoothScrollBy และ scrollBy เป็น androidx.compose.foundation.gestures.* (I3f7c1, b/175294473)

  • เราได้เปลี่ยนชื่อ FlingConfig เป็น FlingBehavior แล้ว ซึ่งตอนนี้อนุญาตให้ปรับแต่งภาพเคลื่อนไหวระงับแทนการลดทอนที่กำหนดไว้ล่วงหน้า (I02b86, b/175294473)

  • มีการเปลี่ยนชื่อตัวแก้ไขขนาด เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize เราเปลี่ยนชื่อ Modifier.preferredWidth/preferredHeight/preferredSize เป็น width/height/size (I5b414)

  • เปลี่ยนชื่อ defaultMinSizeConstraints เป็น defaultMinSize (I4eaae)

  • ย้ายการปฐมนิเทศไปไว้ในแพ็กเกจพื้นฐานแล้ว VelocityTracker ย้ายจาก ui.gesture ไปยัง ui.input.pointer (Iff4a8, b/175294473)

  • ตอนนี้ drawerState.open() และ drawerState.close() เป็นฟังก์ชันที่ระงับแล้ว ใช้ rememberCoroutineScope() เพื่อรับขอบเขตของการจัดองค์ประกอบเพื่อเรียกใช้ (I16f60, b/175294473)

  • เปลี่ยนชื่อ Providers เป็น CompositionLocalProvider แล้ว

    • ตัวสร้างองค์ประกอบไม่รับพารามิเตอร์คีย์อีกต่อไปและเลิกใช้งานแล้ว
    • currentCompositeKeyHash ได้รับการเปลี่ยนให้เป็นพร็อพเพอร์ตี้ระดับบนสุดที่ประกอบกันได้แทนที่จะเป็นฟังก์ชันระดับบนสุดที่ประกอบกันได้
    • ย้าย CompositionData และ CompositionGroup ไปยังเนมสเปซ androidx.compose.runtime.tooling แล้ว
    • เราได้เปลี่ยน ComposableLambda ให้เป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
    • เราได้เปลี่ยน ComposableLambdaN ให้เป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
    • ฟังก์ชัน snapshotFlow ย้ายไปที่เนมสเปซ androidx.compose.runtime แล้ว
    • วิธีการผสานของ SnapshotMutationPolicy ไม่ใช่เวอร์ชันทดลองอีกต่อไป
    • ระบบได้นำฟังก์ชัน @TestOnly clearRoots ระดับบนสุดออกแล้ว ไม่จำเป็นต้องทำอีกต่อไป
    • ระบบได้นำฟังก์ชัน keySourceInfoOf และ resetSourceInfo ออกแล้ว จึงไม่จำเป็นต้องใช้แล้ว
    • มีการนำ Composer.collectKeySourceInformation ออกแล้ว ไม่จำเป็นต้องทำอีกต่อไป
    • นำเมธอด isJoinedKey, joinedKeyLeft และ joinedKeyRight ออกแล้ว จึงไม่จำเป็นต้องใช้แล้ว
    • เราได้ย้ายและจัดระเบียบ API ระดับบนสุดต่างๆ ไปยังไฟล์อื่น เนื่องจากความหมายของคลาสไฟล์ของ Kotlin การดำเนินการนี้จะทำให้ความเข้ากันได้แบบไบนารีใช้งานไม่ได้ แต่ความเข้ากันได้ของแหล่งที่มาจะยังคงใช้งานได้ ดังนั้นผู้ใช้ส่วนใหญ่จึงไม่น่าจะพบปัญหา
    • (I99b7d, b/177245490)
  • เราได้ปรับปรุง Modifier.scrollable ใหม่ ตอนนี้ใช้ Scrollable interface แทนคลาส ScrollableController (I4f5a5, b/174485541, b/175294473)

  • ตอนนี้ Modifier.draggable ยอมรับ DraggableState แทนที่จะเป็น Lambda แบบง่าย คุณสามารถสร้างสถานะผ่าน rememberDraggableState { delta -> } เพื่อให้ได้ลักษณะการทำงานแบบเดิม (Ica70f, b/175294473)

  • ตอนนี้ ZoomableController.smoothScaleBy และ ZoomableController.stopAnimation เป็นฟังก์ชันที่ระงับได้แล้ว (I7f970, b/177457083)

  • ลบ API ที่เลิกใช้งานไปก่อนหน้านี้บางรายการ (Ice5da, b/178633932)

  • ทำการเปลี่ยนแปลง Material API ดังนี้

    • เพิ่มพารามิเตอร์ contentPadding ลงใน Top/BottomAppBar เพื่อให้ปรับแต่งระยะเว้นเริ่มต้นได้
    • จัดเรียงพารามิเตอร์ใหม่ใน BackdropScaffold เพื่อให้เป็นไปตามหลักเกณฑ์ของ API สำหรับพารามิเตอร์ที่จำเป็นซึ่งอยู่ก่อนพารามิเตอร์ที่ไม่บังคับ
    • ย้ายพารามิเตอร์ icon ใน BottomNavigationItem ไปไว้หลัง selected และ onClick
    • เปลี่ยนชื่อพารามิเตอร์ alwaysShowLabels ใน BottomNavigationItem เป็น alwaysShowLabel
    • เปลี่ยนชื่อพารามิเตอร์ bodyContent ในคอมโพเนนต์บางรายการเป็น content
    • พารามิเตอร์ที่จัดเรียงใหม่ใน ButtonDefaults.buttonColors() โปรดทราบว่าเนื่องจากประเภทของพารามิเตอร์ไม่ได้เปลี่ยนแปลง การดำเนินการนี้จึงไม่ทำให้เกิดข้อผิดพลาดในโค้ด โปรดตรวจสอบว่าคุณใช้พารามิเตอร์ที่มีชื่อหรืออัปเดตลำดับด้วยตนเอง มิฉะนั้นโค้ดจะทำงานไม่เหมือนเดิม
    • เพิ่มพารามิเตอร์ secondaryVariant ไปยัง darkColors() แล้ว โดยปกติแล้วสีนี้จะเหมือนกับ secondary ในธีมมืด แต่เราได้เพิ่มสีนี้เพื่อให้มีความสอดคล้องกันและปรับแต่งเพิ่มเติมได้
    • นำ ElevationDefaults และ animateElevation() ออกจาก API สาธารณะเนื่องจากไม่ได้ใช้กันทั่วไป / ไม่มีประโยชน์
    • เปลี่ยนชื่อ onValueChangeEnd ใน Slider เป็น onValueChangeFinished และทำให้เป็นค่าว่างได้
    • เปลี่ยนชื่อพารามิเตอร์ text ใน Snackbar เป็น content เพื่อให้สอดคล้องกัน
    • เพิ่มพารามิเตอร์ contentPadding ลงใน DropdownMenuItem เพื่ออนุญาตให้ปรับแต่งระยะเว้นเริ่มต้น และทำให้ content เป็นส่วนขยายใน RowScope
    • เปลี่ยนชื่อ ModalDrawerLayout เป็น ModalDrawer แล้ว
    • เปลี่ยนชื่อ BottomDrawerLayout เป็น BottomDrawer แล้ว
    • (I1cc66)
  • ตอนนี้ BasicTextField ยอมรับ Brush แทน Color เพื่อการปรับแต่งที่ดีขึ้น (I83a36)

  • ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยาย ใน ImageBitmap และ ImageVector companion ตามลำดับแล้ว ระบบได้ลบฟังก์ชัน load{Image,Vector,Font}Resource ออกแล้ว (I89130)

  • เปลี่ยน Indication#createIndication() เป็น Indication#rememberUpdatedIndication(InteractionState) และนำพารามิเตอร์ InteractionState ออกจาก IndicationInstance#drawIndication() IndicationInstance ควรมีหน้าที่รับผิดชอบในการวาดเอฟเฟ็กต์ภาพเท่านั้น และไม่ควรเปิดใช้ภาพเคลื่อนไหว / เขียนสถานะเพื่อตอบสนองต่อการเปลี่ยนแปลง InteractionState ภาพเคลื่อนไหวและการเขียนสถานะเหล่านี้ควรเกิดขึ้นภายใน rememberUpdatedIndication() แทน นอกจากนี้ เรายังเปลี่ยนพารามิเตอร์ indication ใน Modifier.indication ให้เป็นพารามิเตอร์ที่ต้องระบุด้วย (Ic1764, b/152525426)

การแก้ไขข้อบกพร่อง

  • เพิ่มองค์ประกอบ LocalSoftwareKeyboardController ใหม่ API เพื่อแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าใน TextField (I658b6, b/168778053)

เวอร์ชัน 1.0.0-alpha12

10 กุมภาพันธ์ 2021

androidx.compose.material:material-*:1.0.0-alpha12 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ตอนนี้ Modifier.pointerInput ต้องใช้คีย์ remember เพื่อระบุ เมื่อควรเริ่มคอรเราทีนการตรวจหาอินพุตของเคอร์เซอร์ใหม่สำหรับ การอ้างอิงใหม่ (I849cd)
  • มีการทำเครื่องหมาย BottomDrawerLayout และ ListItem เป็น @ExperimentalMaterialApi (Id766e)
  • มีการเพิ่ม PaddingValues.Absolute และสามารถใช้ใน API ที่ยอมรับ PaddingValues ได้ (Ia5f30)
  • เลิกใช้งาน onImeActionPerformed แล้ว ให้ใช้ KeyboardActions แทน (If0bbd, b/179071523)
  • เราได้เปลี่ยนชื่อ ImagePainter เป็น BitmapPainter เพื่อให้สอดคล้องกับ VectorPainter มากขึ้น และเพื่อให้การตั้งชื่อเป็นไปตาม รูปแบบการตั้งชื่อของ ImageBitmap และ ImageVector (Iba381, b/174565889)
  • ตอนนี้ Animatable.snapTo และ Animatable.stop เป็นฟังก์ชันที่ระงับแล้ว (If4288)
  • ComponentActivity.setContent ได้ย้ายไปอยู่ที่ androidx.activity.compose.setContent ในโมดูล androidx.activity:activity-compose แล้ว (Icf416)
  • เราได้นำเมธอด Destructuring และ copy() ออกจาก คลาสหลายคลาสซึ่งไม่ค่อยมีการใช้งาน (I26702, b/178659281)
  • ทําให้ halfExpand() และ expand() ใน ModalBottomSheetState เป็นแบบภายใน (Ic914e)
  • เปลี่ยน Indication#createInstance เป็น @Composable และเปลี่ยน LocalIndication ให้มี Indication ไม่ใช่ () -> Indication (I5eeea, b/157150564)
  • ย้าย AlertDialog และ DropdownMenu ให้ใช้ได้เฉพาะใน Android ในตอนนี้ เพิ่มพารามิเตอร์ PopupProperties ลงใน DropdownMenu เพื่อกำหนดค่าป๊อปอัปพื้นฐานเพิ่มเติม (I9c443)
  • เลิกใช้งาน loadFontResource แล้ว โปรดใช้ fontResource แทน เลิกใช้งาน imageResource, loadImageResource, vectorResource และ loadVectorResource แล้ว ใช้ painterResource แทน (I6b809)
  • นำพารามิเตอร์ toggle และ toggleModifier ออกจาก DropdownMenu และเปลี่ยนชื่อ dropdownModifier, dropdownOffset และ dropdownContent เป็น modifier, offset และ content ตามลำดับ ตอนนี้ DropdownMenu ทำงานสอดคล้องกับ Popup แล้ว โดยจะใช้เลย์เอาต์ระดับบนสุดสำหรับตำแหน่งของเมนู ในกรณีส่วนใหญ่ คุณสามารถย้าย toggle ให้เป็นองค์ประกอบย่อยของ DropdownMenu และรวมทั้ง 2 องค์ประกอบไว้ใน Box ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้งาน API นี้ได้ในตัวอย่างที่อัปเดตแล้วในเอกสารประกอบ (I884fb)
  • เปลี่ยนชื่อ toIntPx() เป็น roundToPx() (I9b7e4, b/173502290)
  • เปลี่ยนชื่อ IntBounds เป็น IntRect และปรับปรุง API (I1f6ff)
  • เพิ่มการดำเนินการทางความหมายเพื่อขยายและยุบ เพิ่ม expand และ halfExpand ใน ModalBottomSheetState (Ib5064)
  • เลิกใช้งาน Modifier.dragGestureFilter แล้ว โปรดใช้ Modifier.pointerInput { detectDragGestures (...)} แทน หรือจะใช้ Modifier.draggable สำหรับการลากแกนเดียวก็ได้ (I0ba93, b/175294473)
  • เปลี่ยนชื่อ Ambients ให้ตรงกับการเปลี่ยนชื่อ Ambient -> CompositionLocal เดิมชื่อของ Ambients คือ AmbientFoo แต่ตอนนี้ชื่อของ CompositionLocals คือ LocalFoo (I2d55d)
  • ย้ายการเลือกไปยังมูลนิธิแล้ว (I7892b)
  • เช่นเดียวกับที่เราเคยนำ state { 0 } composable ออกไปก่อนหน้านี้และตอนนี้เราแนะนำให้ใช้ remember { mutableStateOf(0) } เราจะนำ savedInstanceState { 0 } composable ออก คุณควรใช้ rememberSaveable { mutableStateOf(0) } แทน และระบบจะบันทึกและกู้คืนโดยอัตโนมัติหากจัดเก็บประเภทที่ใช้ภายใน MutableState ไว้ใน Bundle ได้ หากก่อนหน้านี้คุณส่งออบเจ็กต์โปรแกรมประหยัดที่กำหนดเอง ตอนนี้คุณต้องใช้การโอเวอร์โหลดใหม่ของ rememberSaveable ซึ่งมีพารามิเตอร์ stateSaver การใช้งานจะมีลักษณะดังนี้ val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • เพิ่ม ProgressBarRangeInfo.Indeterminate เพื่อทำเครื่องหมายแถบความคืบหน้าที่ไม่แน่นอนเพื่อการช่วยเหลือพิเศษ (I6fe05)
  • เราเลิกใช้งาน @ComposableContract แล้วเพื่อใช้คำอธิบายประกอบที่เฉพาะเจาะจงมากขึ้น 3 รายการ

    • @ComposableContract(restartable = false) เปลี่ยนเป็น @NonRestartableComposable แล้ว
    • @ComposableContract(readonly = true) เปลี่ยนเป็น @ReadOnlyComposable แล้ว
    • @ComposableContract(preventCapture = true) เปลี่ยนเป็น @DisallowComposableCalls แล้ว
    • นำ @ComposableContract(tracked = true) ออกแล้ว
    • (I60a9d)
  • เราได้เลิกใช้งานยูทิลิตี emptyContent() และ (@Composable () -> Unit).orEmpty() แล้ว เนื่องจากยูทิลิตีดังกล่าวไม่มีผลต่อประสิทธิภาพหรือคุณค่าในเชิงบวกอีกต่อไป (I0484d)

  • เราได้เปลี่ยนชื่อ rememberSavedInstanceState() เป็น rememberSaveable() และย้ายไปยังแพ็กเกจ androidx.compose.runtime.saveable (I1366e, b/177338004)

  • ย้าย Saver, listSaver(), mapSaver(), autoSaver จาก androidx.compose.runtime.savedinstancestate ไปยัง androidx.compose.runtime.saveable (I77fe6)

  • เราเปลี่ยนชื่อพารามิเตอร์ใน RounderCornerShape, CutCornerShape และ CornerBasedShape จากซ้าย/ขวาเป็นเริ่ม/สิ้นสุดเพื่อรองรับการมิเรอร์อัตโนมัติของรูปร่างในทิศทาง RTL เราได้เปิดตัว AbsoluteRounderCornerShape และ AbsoluteCutCornerShape สำหรับกรณีที่ไม่ต้องการการมิเรอร์อัตโนมัติ (I61040, b/152756983)

  • เปลี่ยนพารามิเตอร์ text และ icon ของแท็บที่เปลี่ยนแปลง และพารามิเตอร์ label ของ BottomNavigationItem ให้เป็นค่าที่กำหนดให้เป็น Null ได้ เพื่อสื่อถึงลักษณะการทำงานของคอมโพเนนต์ได้ดียิ่งขึ้นเมื่อมีการระบุพารามิเตอร์เหล่านี้หรือไม่ระบุ เนื่องจากพารามิเตอร์เหล่านี้ส่งผลต่อขนาดและเลย์เอาต์ของคอมโพเนนต์ หากปัจจุบันคุณส่ง emptyContent() เพื่อระบุว่าไม่มีข้อความ / ไอคอน / ป้ายกำกับ คุณควรใช้ null แทน (I57ed4)

  • เปลี่ยนชื่อพารามิเตอร์สี contentColor เป็น backgroundColor (I5bb67)

  • เลิกใช้งาน TabDefaults และแทนที่ด้วย TabRowDefaults (I0f189)

  • เปิดตัว ColorMatrix API ที่ใช้ เพื่อแก้ไขค่า RGB ของเนื้อหาต้นฉบับ ปรับโครงสร้าง ColorFilter API ให้เป็น อินเทอร์เฟซและตรงกับการใช้งาน ของ PathEffect (Ica1e8)

  • ตอนนี้เราเลิกใช้งาน AnimatedValue/Float แล้ว โปรดใช้ Animatable แทน (I71345, b/177457083)

  • เพิ่ม SemanticsProperties.PaneTitle API (I20d5a)

  • เพิ่มพารามิเตอร์ที่เปิดใช้ไปยัง Tab และ BottomNavigationItem เพื่อป้องกันไม่ให้คลิกได้ เปลี่ยน BottomNavigationItem เป็น RowScope.BottomNavigationItem เพื่อแสดงข้อกำหนดของเลย์เอาต์ใน API ได้ดียิ่งขึ้น (Id683d)

  • เลิกใช้งาน tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter และ pressIndicaitonGestureFilter แล้ว โปรดใช้ Modifier.clickable หรือ Modifier.pointerInput กับฟังก์ชัน detectTapGestures แทน (I6baf9, b/175294473)

  • เพิ่มพารามิเตอร์ layoutDirection ลงใน createOutline ของ Shape ซึ่งช่วยให้สร้างรูปร่างที่รับรู้ทิศทางของเลย์เอาต์ได้ (I57c20, b/152756983)

  • นำ Recomposer.current() ออกแล้ว [Abstract]ComposeView now default to lazily created, window-scoped Recomposers driven by the ViewTreeLifecycleOwner for the window. ระบบจะหยุดการสร้างใหม่และเครื่องหมายภาพเคลื่อนไหวตาม withFrameNanos ชั่วคราวขณะที่หยุดวงจรการทำงานของโฮสต์ (I38e11)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ไอคอนจะปรับขนาดให้พอดีกับขนาดของไอคอน โดยจะใช้ตัวแก้ไขขนาดที่ใช้กับไอคอน เช่น Icon(.., modifier = Modifier.size(50.dp) จะวาดในพื้นที่ 50x50dp (Ib2ba9, b/178796190)

เวอร์ชัน 1.0.0-alpha11

28 มกราคม 2021

androidx.compose.material:material-*:1.0.0-alpha11 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha11 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เลื่อนระดับ API บางรายการของ Material ให้ไม่ต้องใช้ @Experimental อีกต่อไป (I5d20e)
  • เพิ่มพารามิเตอร์คำอธิบายเนื้อหาลงในรูปภาพและไอคอนแล้ว ใช้เพื่ออธิบายบริการการช่วยเหลือพิเศษ (I2ac4c)
  • เปลี่ยนอินเทอร์เฟซพารามิเตอร์ที่มีสถานะของ Material ให้มีฟังก์ชัน @Composable ที่แสดงผล State<T> เพิ่ม Animatable.asState() เพื่อให้แปลง Animatable เป็น State ได้ง่ายขึ้น นอกจากนี้ ยังเปลี่ยน animateElevation ให้เป็นส่วนขยายที่ระงับใน Animatable ด้วย (If613c)
  • Snackbar, SnackbarHost, SnackbarHostState ไม่ใช่ @ExperimentalMaterialAPI อีกต่อไป (Id1fb5)
  • เปลี่ยน Typography, Shapes และ TabPosition ให้ไม่ใช่คลาสข้อมูลอีกต่อไป เพิ่มฟังก์ชันคัดลอกสำหรับตัวอักษรและรูปร่างเพื่อแทนที่รายการที่สร้างขึ้น (I40037)
  • ลบ API ของ Material ที่เลิกใช้งานไปก่อนหน้านี้บางรายการ (Ifaa25)

การแก้ไขข้อบกพร่อง

  • onCommit, onDispose และ onActive ถูกเลิกใช้งานแล้วเพื่อรองรับ SideEffect และ DisposableEffect API (If760e)
  • เลิกใช้งานการเปลี่ยนตาม TransitionDefinition แล้ว (I0ac57)
  • ตอนนี้ฟีเจอร์สถานะเริ่มต้นใน updateTransition พร้อมใช้งานแล้ว (Ifd51d)
  • เราได้ปรับปรุง WithConstraints เป็น BoxWithConstraints และย้ายไปที่ foundation.layout (I9420b, b/173387208)
  • เลิกใช้งาน scrollBy ที่ไม่ระงับ และนำ scrollTo ที่ไม่ระงับออก

    ตอนนี้เราขอแนะนำให้ใช้ฟังก์ชันระงับเพื่อควบคุมการเลื่อนและรอให้การเลื่อนเสร็จสิ้น เราจะเลิกใช้งานและ/หรือนำฟังก์ชันเวอร์ชันที่ไม่ใช่แบบระงับออก ซึ่งเป็นส่วนหนึ่งของการเปลี่ยนผ่านนี้ (Ie9ced)

  • เลิกใช้งาน smoothScrollBy ที่ไม่ใช่แบบระงับ ตอนนี้เราขอแนะนำให้ใช้ฟังก์ชันระงับเพื่อควบคุมการเลื่อนและรอ ให้การเลื่อนเสร็จสิ้น เราจะเลิกใช้งานฟังก์ชันเวอร์ชันที่ไม่ระงับ ของฟังก์ชันเหล่านี้ซึ่งเป็นส่วนหนึ่งของการเปลี่ยนผ่านนี้ (I12880)

  • เปิดตัว ComposeContentTestRule ซึ่งขยาย ComposeTestRule และกำหนด setContent ซึ่งถูกนำออกจาก ComposeTestRule เพิ่มเมธอดจากโรงงาน createEmptyComposeRule() ซึ่งจะแสดงผล ComposeTestRule และไม่เปิดใช้กิจกรรมให้คุณ ใช้เมื่อต้องการเปิดใช้กิจกรรมระหว่างการทดสอบ เช่น ใช้ ActivityScenario.launch (I9d782, b/174472899)

  • คุณปรับแต่งการกระเพื่อมที่ใช้ใน Button และ FloatingActionButton โดยการระบุ Indication ใหม่ผ่าน AmbientIndication ไม่ได้อีกต่อไป ซึ่งเราไม่เคยตั้งใจให้เป็นวิธีปรับแต่งคอมโพเนนต์เหล่านี้ และตอนนี้คอมโพเนนต์เหล่านี้จะสอดคล้องกับคอมโพเนนต์ Material อื่นๆ หากต้องการปรับแต่ง Ripple ในแอปพลิเคชัน ให้ดู RippleTheme (I546c5)

  • ตอนนี้ animateAsState คือ animateFooAsState โดยที่ Foo คือ ประเภทของตัวแปรที่กำลังเคลื่อนไหว เช่น Float, Dp, Offset ฯลฯ (Ie7e25)

  • BasicTextField ได้รับพารามิเตอร์ใหม่ชื่อ decorationBox ซึ่งช่วยให้เพิ่มการตกแต่งต่างๆ เช่น ไอคอน ตัวยึดตำแหน่ง ป้ายกำกับ และอื่นๆ ที่คล้ายกับช่องข้อความ รวมถึงเพิ่มพื้นที่เป้าหมายการแตะของช่องข้อความได้ (I16996)

  • แก้ไขข้อบกพร่องที่ทำให้ตั้งค่าความกว้างของช่องข้อความ Material ให้น้อยกว่า 280.dp ไม่ได้ (I78373)

  • นำพารามิเตอร์ canDrag ออกจาก Modifier.draggable (Ic4bec, b/175294473)

  • นำ displaySize ออกเนื่องจากควรหลีกเลี่ยง โดยปกติแล้ว ควรใช้ขนาดของ onRoot() หรือขนาดหน้าต่างเป็นอย่างน้อย (I62db4)

  • ตอนนี้ Surface มีองค์ประกอบย่อยของเลย์เอาต์ได้หลายรายการแล้ว (I66a92, b/144488459)

  • ตอนนี้เราเลิกใช้งาน invalidate และ compositionReference() แล้ว และแนะนำให้ใช้ currentRecomposeScope และ rememberCompositionReference แทนตามลำดับ (I583a8)

  • เปลี่ยน PopupPositionProvider ให้ใช้พิกัดที่สัมพันธ์กับหน้าต่าง ไม่ใช่พิกัดส่วนกลาง เปลี่ยนชื่อ parentGlobalBounds เป็น anchorBounds และเปลี่ยน windowGlobalBounds เป็น windowSize: IntSize (I2994a)

  • ระบบจะแทนที่ระยะเวลาและเวลาทำงานด้วยมิลลิวินาทีแบบยาว และขั้นตอนนี้จะนำการอ้างอิงอินพุตของเคอร์เซอร์ในคลาสเหล่านั้นออก (Ia33b2, b/175142755, b/177420019)

  • นำ AnimatedFloat.fling ที่ยอมรับ FlingConfig ออกแล้ว โปรดใช้ suspend Animatable.animateDecay แทน (I4659b, b/177457083)

  • ตอนนี้คุณสร้างองค์ประกอบที่คลิกได้ สลับได้ และเลือกได้ภายนอกองค์ประกอบได้แล้ว (I0a130, b/172938345, b/175294473)

  • เปลี่ยนการเปลี่ยนเป็นอินเทอร์เฟซฟังก์ชัน (Ib14e5)

  • เลิกใช้งาน ScrollableColumn/Row แล้ว การใช้ ScrollableColumn มีประสิทธิภาพน้อยกว่าเมื่อเทียบกับ LazyColumn เมื่อมีเนื้อหาที่เลื่อนได้จำนวนมาก เนื่องจาก LazyColumn จะคอมโพส/วัด/วาดเฉพาะองค์ประกอบที่มองเห็นได้ เพื่อป้องกันไม่ให้ผู้ใช้ใช้วิธีที่ไม่มีประสิทธิภาพ เราจึงตัดสินใจเลิกใช้งาน ScrollableColumn และ ScrollableRow แล้วแนะนำให้ใช้ LazyColumn และ LazyRow แทน ผู้ใช้ยังคงเลือกได้ว่าจะไม่ใช้ลักษณะการทำงานแบบเลซี่และใช้ตัวแก้ไขโดยตรงได้ดังนี้ Column(Modifier.verticalScroll(rememberScrollState())) (Ib976b, b/170468083)

  • items(count: Int)เมธอด Factory ใหม่สำหรับขอบเขตของ LazyColumn/LazyRow/LazyVerticalGrid ตอนนี้ items(items: List) และ itemsIndexed(items: List) เป็นฟังก์ชันส่วนขยายแล้ว คุณจึงต้องนําเข้าด้วยตนเองเมื่อใช้งาน การโอเวอร์โหลดส่วนขยายใหม่สำหรับอาร์เรย์: items(items: Array) และ itemsIndexed(Array) (I803fc, b/175562574)

  • นำเมธอด monotonicFrameAnimationClockOf ที่เป็นเวอร์ชันทดลองออกแล้ว (Ib753f, b/170708374)

  • เลิกใช้งานเมธอดพิกัดส่วนกลางและสร้างเมธอดพิกัดใหม่ตามหน้าต่าง (Iee284)

  • เพิ่ม Modifier.toolingGraphicsLayer ซึ่งจะเพิ่มตัวปรับแต่งเลเยอร์กราฟิกเมื่อเปิดการตรวจสอบ (I315df)

  • ตอนนี้ FocusRequester.createRefs มีเครื่องหมายระบุว่าอยู่ในขั้นทดลองเนื่องจากอาจมีการเปลี่ยนแปลง (I2d898, b/177000821)

  • เปลี่ยนชื่อ SemanticsPropertyReceiver.hidden เป็น invisibleToUser และทำเครื่องหมาย @ExperimentalComposeUiApi เปลี่ยนชื่อ AccessibilityRangeInfo เป็น ProgressBarRangeInfo เปลี่ยนชื่อ stateDescriptionRange เป็น progressBarRangeInfo เปลี่ยนชื่อ AccessibilityScrollState เป็น ScrollAxisRange เปลี่ยนชื่อ horizontalAccessibilityScrollState เป็น horizontalScrollAxisRange เปลี่ยนชื่อ verticalAccessibilityScrollState เป็น verticalScrollAxisRange (Id3148)

  • ใช้ประโยชน์จาก TestCoroutineDispatcher ในการทดสอบ (I532b6)

  • อัปเดต API กราฟิกเวกเตอร์ เพื่อรองรับการแยกวิเคราะห์การปรับสี ที่ใช้กับรูทของกราฟิกเวกเตอร์ (Id9d53, b/177210509)

เวอร์ชัน 1.0.0-alpha10

13 มกราคม 2021

androidx.compose.material:material-*:1.0.0-alpha10 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ความเร็วที่แก้ไขแล้วให้มีส่วนประกอบและ การดำเนินการทางคณิตศาสตร์ (Ib0447)
  • เปลี่ยนชื่อ @ExperimentalTesting เป็น @ExperimentalTestApi เพื่อให้ สอดคล้องกับคำอธิบายประกอบ API ทดลองที่คล้ายกัน (Ia4502, b/171464963)
  • เปลี่ยนชื่อตำแหน่งเป็น DpOffset และนำ getDistance() ออก (Ib2dfd)
  • เปลี่ยนชื่อ Color.useOrElse() เป็น Color.takeOrElse() (Ifdcf5)
  • เพิ่มสวิตช์ไปยัง foundation Strings.kt (I4a5b7, b/172366489)
  • เลิกใช้งาน FlowRow และ FlowColumn แล้ว โปรดใช้เลย์เอาต์ที่กำหนดเองแทน (I09027)
  • เลิกใช้งาน Modifier.focus() และ Modifier.focusRequester() แล้ว ใช้ Modifier.focusModifier() และ Modifier.focusReference() แทน (I75a48, b/175160751, b/175160532, b/175077829)
  • ย้าย nativeClass ไปยัง โมดูล ui และทำให้เป็นโมดูลภายใน อัปเดตการใช้งาน nativeClass ใน การติดตั้งใช้งาน equals เพื่อใช้ 'is MyClass' แทน (I4f734)

การแก้ไขข้อบกพร่อง

  • เพิ่มการรองรับช่องข้อความที่ปิดใช้และแบบอ่านอย่างเดียว (I35279, b/171040474, b/166478534)
  • ตอนนี้ animate() ถูกแทนที่ด้วย animateAsState() ซึ่งจะแสดงผล State<T> แทน T ซึ่งจะช่วยให้ประสิทธิภาพดีขึ้น เนื่องจากสามารถจำกัดขอบเขตการลบล้างให้แคบลง ในตำแหน่งที่อ่านค่าสถานะ (Ib179e)
  • เพิ่ม API บทบาทของ Semantics และเพิ่มบทบาทเป็นพารามิเตอร์ไปยัง SemanticsModifier ที่คลิกได้ เลือกได้ และสลับได้ เปลี่ยน Modifier.progressSemantics เพื่อให้แถบเลื่อนใช้ได้ด้วย (I216cd)

เวอร์ชัน 1.0.0-alpha09

16 ธันวาคม 2020

androidx.compose.material:material-*:1.0.0-alpha09 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เพิ่ม API เพื่อทริกเกอร์ภาพเคลื่อนไหวการตั้งค่าและลากใน Modifier.swipeable ด้วยตนเอง (Iaa17a, b/162408885)
  • เปลี่ยนชื่อออบเจ็กต์ *Constants เช่น ButtonConstants ให้ลงท้ายด้วย Defaults แทน เช่น ButtonDefaults นอกจากนี้ ยังนำคำนำหน้า default ที่ไม่จำเป็นออกจากพร็อพเพอร์ตี้ในออบเจ็กต์ใหม่เหล่านี้ด้วย (Ibb915, b/159982740)
  • Compose รองรับตัวรับพร็อพเพอร์ตี้ที่สร้างการเรียกใช้ที่ใช้ร่วมกันได้ เราจะยังคงรองรับการดำเนินการนี้ต่อไป แต่ไวยากรณ์สำหรับการประกาศตัวรับค่าพร็อพเพอร์ตี้เป็น @Composable จะมีการเปลี่ยนแปลง

    ไวยากรณ์ที่เลิกใช้งานแล้วในตอนนี้สำหรับการดำเนินการนี้คือการใส่คำอธิบายประกอบในพร็อพเพอร์ตี้เอง ดังนี้

        @Composable val someProperty: Int get() = ...
    

    ไวยากรณ์ที่ถูกต้องในปัจจุบันสำหรับการดำเนินการนี้คือการใส่คำอธิบายประกอบให้กับตัวรับของพร็อพเพอร์ตี้ ดังนี้

       val someProperty: Int @Composable get() = ...
    

    ทั้ง 2 รูปแบบไวยากรณ์จะใช้งานได้สักระยะหนึ่ง แต่ในที่สุดไวยากรณ์ที่เลิกใช้งานแล้วจะกลายเป็นข้อผิดพลาดในการคอมไพล์ (Id9197)

  • เพิ่มandroidx.compose.material:material-rippleไลบรารีที่มี Ripple API เพื่อให้สร้างคอมโพเนนต์แบบอินเทอร์แอกทีฟได้โดยไม่ต้องใช้ไลบรารี Material ที่เหลือ เลิกใช้งาน rememberRippleIndication แล้วและแทนที่ด้วย rememberRipple (Ibdf11)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ Lambda ในตัวแก้ไขออฟเซ็ตจะแสดงผล IntOffset แทน Float (Ic9ee5, b/174137212, b/174146755)
  • รีแฟกเตอร์ ShaderBrush เพื่อ สร้างอินสแตนซ์ของ Shader อย่างช้าๆ เมื่อ มีข้อมูลการกำหนดขนาดของ สภาพแวดล้อมการวาดภาพ ซึ่งมีประโยชน์ในการกำหนดการไล่ระดับสีที่ ครอบคลุมขอบเขตการวาดทั้งหมดของ Composable ในเวลาที่ทำการ Composable โดยไม่ต้อง ใช้การติดตั้งใช้งาน DrawModifier ที่กำหนดเอง

    เลิกใช้งาน API ตัวสร้างฟังก์ชันการไล่ระดับสี เพื่อสนับสนุนเมธอด Factory ในออบเจ็กต์การไล่ระดับสี (I511fc, b/173066799)

  • เลิกใช้งาน Modifier.focusObserver แล้ว ใช้ Modifier.onFocusChanged หรือ Modifier.onFocusEvent แทน (I30f17, b/168511863, b/168511484)

  • เลิกใช้งาน LazyColumnFor, LazyRowFor, LazyColumnForIndexed และ LazyRowForIndexed ใช้ LazyColumn และ LazyRow แทน (I5b48c)

  • ย้าย Dp.VectorConverter, Position.VectorConverter ฯลฯ ไปยัง animation-core และเลิกใช้งาน VectorConveters เก่า (If0c4b)

  • ตอนนี้ Autofill API เป็น API เวอร์ชันทดลองและต้องเลือกใช้ (I0a1ec)

  • เพิ่มการประกาศการแยกโครงสร้างเพื่อสร้างอินสแตนซ์ FocusRequester (I35d84, b/174817008)

  • เปลี่ยนชื่อ accessibilityLabel เป็น contentDescription เปลี่ยนชื่อ accessibilityValue เป็น stateDescription (I250f2)

  • ฟังก์ชัน infiniteRepeatable ใหม่สำหรับสร้าง InfiniteRepeatableSpec (I668e5)

  • เราได้เปลี่ยนลักษณะการวางตำแหน่งของ DropdownMenu เล็กน้อยตามข้อกำหนดของ Material (I34c72, b/168594123)

  • เพิ่มการรองรับ InteractionState สำหรับ TextField แล้ว (I61d91)

  • เพิ่ม Modifier.clearAndSetSemantics เพื่อล้างซีแมนติกขององค์ประกอบย่อย และตั้งค่าใหม่ (I277ca)

  • ย้าย ContentDrawScope ไปยังโมดูล ui-graphics เพื่อให้อยู่กับ DrawScope (Iee043, b/173832789)

เวอร์ชัน 1.0.0-alpha08

2 ธันวาคม 2020

androidx.compose.material:material:1.0.0-alpha08 androidx.compose.material:material-icons-core:1.0.0-alpha08 และ androidx.compose.material:material-icons-extended:1.0.0-alpha08 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ตอนนี้ MaterialTheme จะกำหนดสีที่ถูกต้องสำหรับแฮนเดิลการเลือกและพื้นหลังการเลือกแล้ว แอปที่ไม่ใช่ Material สามารถใช้ AmbientTextSelectionColors เพื่อปรับแต่งสีที่ใช้สำหรับการเลือกได้ด้วยตนเอง (I1e6f4, b/139320372, b/139320907)
  • เพิ่มการตรวจสอบ Lint สำหรับการตั้งชื่อและการวางตำแหน่งพารามิเตอร์ Lambda ที่ใช้ร่วมกันได้ เพื่อตรวจสอบความสอดคล้องกับหลักเกณฑ์ของ Compose นอกจากนี้ ยังย้ายข้อมูล API บางรายการโดยใช้ children เป็นชื่อสำหรับ Lambda ต่อท้ายเป็น content ตามการตรวจสอบ Lint และคำแนะนำ (Iec48e)
  • เปลี่ยนชื่อ VectorAsset เป็น ImageVector ย้ายและเปลี่ยนชื่อ VectorAsset เป็น Builder เพื่อ ให้เป็นคลาสในของ ImageVector ตาม หลักเกณฑ์ของสภา API เพิ่ม typealias ของ VectorAssetBuilder เพื่อ ลิงก์ไปยัง ImageVector.Builder เพื่อความเข้ากันได้ (Icfdc8)
  • เปลี่ยนชื่อ ImageAsset และ เมธอดที่เกี่ยวข้องเป็น ImageBitmap (Ia2d99)
  • ย้ายพร็อพเพอร์ตี้ความหมายของรากฐานไปยัง UI (I6f05c)
  • fun RippleIndication() เลิกใช้งานแล้วและแทนที่ด้วย rememberRippleIndication() เพื่อให้สอดคล้องกับ API อื่นๆ (Id8e2c)
  • เพิ่มพารามิเตอร์ singleLine ลงใน BasicTextField, TextField และ OutlinedTextField ตั้งค่าพารามิเตอร์นี้เป็น true เพื่อให้ช่องข้อความเป็นบรรทัดเดียวที่เลื่อนได้ในแนวนอน (I57004, b/168187755)

การแก้ไขข้อบกพร่อง

  • เพิ่มการดำเนินการทางความหมาย Dismiss (I2b706)
  • ย้าย DrawModifier APIs จากแพ็กเกจ androidx.compose.ui ไปยังแพ็กเกจ androidx.compose.ui.draw สร้างไฟล์ DrawModifierDeprecated.kt เพื่อ รวมประเภทแทน/วิธีการช่วยเพื่อช่วยในการ ย้ายข้อมูลจาก API ที่เลิกใช้งานแล้วไปยัง API ปัจจุบัน (Id6044, b/173834241)
  • เปลี่ยนชื่อ Modifier.drawLayer เป็น Modifier.graphicsLayer และอัปเดตคลาสที่เกี่ยวข้องเป็น GraphicsLayer ตาม ความคิดเห็นเกี่ยวกับ API (I0bd29, b/173834241)
  • นำ <T> ออกจากการประกาศ SubcomposeLayout ตอนนี้คุณใช้ได้โดยไม่ต้องระบุประเภท (Ib60c8)
  • เพิ่ม Modifier.scale/rotate APIs เพื่ออำนวยความสะดวกสำหรับ drawLayer
    • เปลี่ยนชื่อ Modifier.drawOpacity เป็น Modifier.alpha แล้ว
    • เปลี่ยนชื่อ Modifier.drawShadow เป็น Modifier.shadow (I264ca, b/173208140)
  • เปลี่ยนชื่อพารามิเตอร์การจัดแนวของ Box เป็น contentAlignment (I2c957)
  • เปลี่ยนชื่อตัวแก้ไข offsetPx เป็น offset ตอนนี้ฟังก์ชันเหล่านี้รับพารามิเตอร์ Lambda แทน State แล้ว (Ic3021, b/173594846)
  • เปิดตัว SweepGradientShader และ SweepGradientBrush API (Ia22c1)
  • เพิ่มการตรวจสอบ Lint สำหรับพารามิเตอร์ Modifier ในฟังก์ชันที่ใช้ร่วมกันได้ การตรวจสอบ Lint นี้จะตรวจสอบการตั้งชื่อ ประเภทการคืนค่า ค่าเริ่มต้น และลำดับของพารามิเตอร์เพื่อให้สอดคล้องกับหลักเกณฑ์ของ Compose (If493b)
  • อัปเดต TextFieldValue API
    • ทำให้ TextFieldValue.composition เป็นแบบอ่านอย่างเดียว
    • นำข้อยกเว้นที่เกิดขึ้นสำหรับช่วงการเลือกที่ไม่ถูกต้องออกแล้ว (I4a675, b/172239032)
  • เพิ่มModifier.drawLayer()โอเวอร์โหลดใหม่แล้ว โดยจะใช้บล็อก Lambda ใน GraphicsLayerScope ใหม่ ซึ่งคุณจะกําหนดพารามิเตอร์เลเยอร์ในลักษณะที่ช่วยให้ข้ามการจัดองค์ประกอบใหม่และการจัดเลย์เอาต์ใหม่ได้เมื่อมีการเปลี่ยนแปลงสถานะ ตอนนี้ DrawLayerModifier อยู่ภายในเพื่อเตรียมพร้อมที่จะย้ายตรรกะไปยังเมธอด placeable.placeWithLayer() ของ LayoutModifier (I15e9f, b/173030831)
  • เลิกใช้งาน Ambients ที่เลิกใช้งานแล้วซึ่งมี Ambient เป็นคำต่อท้าย และแทนที่ด้วยพร็อพเพอร์ตี้ใหม่ที่ขึ้นต้นด้วย Ambient ตามหลักเกณฑ์อื่นๆ ของ Ambients และ Compose API (I33440)
  • เพิ่มการตรวจสอบ Lint เพื่อตรวจสอบว่าโรงงานตัวแก้ไขใช้ androidx.compose.ui.composed {} ภายในแทนที่จะทำเครื่องหมายเป็น @Composable (I3c4bc)
  • มีการเปลี่ยนชื่ออาร์กิวเมนต์เชิงความหมาย mergeAllDescendants เป็น mergeDescendants (Ib6250)
  • การควบคุมเวลาในการทดสอบ (TestAnimationClock และการใช้งาน) อยู่ในระยะทดลองแล้ว (I6ef86, b/171378521)
  • นำโมดูล ui-test เก่าและ Stub ออก (I3a7cb)
  • เราเปลี่ยนชื่อ TextUnit.Inherit เป็น TextUnit.Unspecified เพื่อให้สอดคล้องกับหน่วยอื่นๆ (Ifce19)
  • เราได้อัปเดตอินเทอร์เฟซการจัดแนวและทำให้ใช้งานได้ (I46a07, b/172311734)
  • เปลี่ยนชื่อ id เป็น layoutId สำหรับ LayoutIdParentData เปลี่ยนชื่อ Measurable.id เป็น Measurable.layoutId แล้ว (Iadbcb, b/172449643)

เวอร์ชัน 1.0.0-alpha07

11 พฤศจิกายน 2020

androidx.compose.material:material:1.0.0-alpha07 androidx.compose.material:material-icons-core:1.0.0-alpha07 และ androidx.compose.material:material-icons-extended:1.0.0-alpha07 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เราเลิกใช้งาน Emphasis แล้วและเปลี่ยนมาใช้ AmbientContentAlpha แทน AmbientContentAlpha เป็นการแยกส่วนที่ง่ายกว่าซึ่งแสดงถึงอัลฟ่าของเนื้อหาที่ต้องการสำหรับส่วนหนึ่งของลำดับชั้น คล้ายกับวิธีที่ AmbientContentColor แสดงถึงสีของเนื้อหาที่ต้องการ ตอนนี้ข้อความและไอคอนจะใช้ค่าปัจจุบันจาก AmbientContentAlpha โดยค่าเริ่มต้น และคุณสามารถทำสิ่งต่อไปนี้ได้ด้วยตนเอง color.copy(alpha = AmbientContentAlpha.current) เพื่อให้มีเอฟเฟกต์เดียวกันในคอมโพเนนต์ คุณสามารถระบุค่าผ่าน AmbientContentAlpha ได้โดยตรงแทนการใช้ ProvideEmphasis และใช้ระดับเริ่มต้นใหม่ใน ContentAlpha เพื่อแทนที่ EmphasisLevels แบบเดิม (Idf03e, b/159017896)
  • เพิ่ม androidx.compose.material.AmbientContentColor เพื่อแทนที่ androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
  • เพิ่ม androidx.compose.material.Text เพื่อแทนที่ androidx.compose.foundation.Text เป็นคอมโพเนนต์ Text ระดับสูงที่กำหนดธีมได้ หากต้องการใช้คอมโพเนนต์ข้อความพื้นฐานที่ไม่ใช้สี / รูปแบบข้อความจากธีม ให้ใช้ BasicText (Ie6ae0)
  • เพิ่ม maxLines ลงใน TextField (Ib2a5b)
  • อัปเดต TextField ให้ยอมรับ KeyboardOptions (Ida7f3)
  • ตอนนี้ Surface ใช้ระดับความสูงสัมบูรณ์ (ทั้งหมด) เมื่อคำนวณการซ้อนทับระดับความสูง ดังนั้น Surface ที่ซ้อนอยู่ใน Surface อื่นจะใช้ระดับความสูงรวมกันเพื่อวาดการซ้อนทับ (I7bd2b, b/171031040)

การแก้ไขข้อบกพร่อง

  • ย้าย captureToBitmap ไปยัง captureToImage แล้ว (I86385)
  • เลิกใช้งาน AmbientTextStyle, ProvideTextStyle และ AmbientContentColor แล้ว แต่ให้ใช้เวอร์ชันใหม่ที่มีอยู่ในไลบรารี Material แทน สำหรับแอปพลิเคชันที่ไม่ใช่ Material คุณควรสร้างระบบการออกแบบของคุณเองแทน โดยเฉพาะอย่างยิ่งการกำหนดธีมที่สามารถใช้ในคอมโพเนนต์ของคุณเองได้ (I74acc, b/172067770)
  • เลิกใช้งาน foundation.Text แล้วและแทนที่ด้วย material.Text หากต้องการใช้ Text API พื้นฐานที่ไม่แสดงความคิดเห็นซึ่งไม่ได้ใช้ค่าจากธีม โปรดดู androidx.compose.foundation.BasicText (If64cb)
  • เปลี่ยนชื่อ KeyboardOptions เป็น ImeOptions (I82f36)
  • ย้าย KeyboardType และ ImeAction ไปยัง KeyboardOptions (I910ce)
  • เลิกใช้งาน BaseTextField แล้ว โปรดใช้ BasicTextField แทน (I896eb)
  • นำ ExperimentalSubcomposeLayoutApi ออกแล้ว ตอนนี้คุณใช้ SubcomposeLayout ได้โดยไม่ต้องเพิ่ม @OptIn (I708ad)
  • ย้าย FirstBaseline และ LastBaseline ไปยังแพ็กเกจ androidx.compose.ui.layout (Ied2e7)
  • อัปเดต Icon API เพื่อรับ Color.Unspecified เป็นสีการปรับสีที่เป็นไปได้ ซึ่งจะวาด ชิ้นงานหรือ Painter ที่ระบุโดยไม่มี ColorFilter ก่อนหน้านี้ การพยายามไม่สนใจการย้อมสีด้วย Color.Unspecified จะย้อมสีด้วยสีโปร่งใส และไม่มีการแสดงผลใดๆ เลย (I049e2, b/171624632)
  • เปลี่ยนชื่อ relativePaddingFrom เป็น paddingFrom เพิ่มตัวแก้ไข paddingFromBaseline เพื่อความสะดวกในการระบุระยะห่างจากขอบเขตเลย์เอาต์ไปยังบรรทัดฐานของข้อความ (I0440a, b/170633813)
  • LaunchedTask ได้เปลี่ยนชื่อเป็น LaunchedEffect เพื่อให้สอดคล้องกับ SideEffect และ DisposableEffect API ไม่อนุญาตให้ใช้ LaunchedEffect ที่ไม่มีพารามิเตอร์ Subject เพื่อส่งเสริมแนวทางปฏิบัติแนะนำ (Ifd3d4)
  • ย้าย MeasureResult ออกจาก MeasureScope (Ibf96d, b/171184002)
  • เราได้ย้ายสัญลักษณ์ที่เกี่ยวข้องกับเลย์เอาต์หลายรายการจาก androidx.compose.ui ไปยัง androidx.compose.layout.ui (I0fa98, b/170475424)

เวอร์ชัน 1.0.0-alpha06

28 ตุลาคม 2020

androidx.compose.material:material:1.0.0-alpha06 androidx.compose.material:material-icons-core:1.0.0-alpha06 และ androidx.compose.material:material-icons-extended:1.0.0-alpha06 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ย้าย androidx.compose.foundation.Icon ไปยัง androidx.compose.material.Icon แล้ว นอกจากนี้ คุณยังใช้คอมโพเนนต์รูปภาพ / Modifier.paint() กับ Painter ได้หากไม่ต้องการใช้ไลบรารี Material (I9f622)
  • เพิ่ม FloatingActionButtonElevation เพื่อแสดงระดับความสูงที่ FAB ใช้ในสถานะต่างๆ ดู FloatingActionButtonConstants.defaultElevation() สำหรับการติดตั้งใช้งานเริ่มต้น (I2d4f5)
  • เพิ่มอินเทอร์เฟซ SwitchColors เพื่อแสดงสีที่ใช้โดยสวิตช์ในสถานะต่างๆ ดู SwitchConstants.defaultColors เพื่อปรับแต่งสีเหล่านี้ (I93805)
  • เพิ่มอินเทอร์เฟซ ButtonElevation และ ButtonColors เพื่อแสดงระดับความสูงและสีที่ปุ่มใช้ในสถานะต่างๆ ดูฟังก์ชันเริ่มต้นใน ButtonConstants เพื่อปรับแต่งพารามิเตอร์เหล่านี้ (Ic5b7b)
  • เพิ่มอินเทอร์เฟซ RadioButtonColors เพื่อแสดงสีที่ใช้โดย RadioButton ในสถานะต่างๆ ดู RadioButtonConstants.defaultColors() เพื่อปรับแต่งสีที่ใช้ในสถานะต่างๆ (I74130)
  • เพิ่มอินเทอร์เฟซ CheckboxColors เพื่อแสดงสีที่ใช้โดยช่องทำเครื่องหมายในสถานะต่างๆ ดู CheckboxConstants.defaultColors() เพื่อปรับแต่งสีที่ใช้ในสถานะต่างๆ (I7dbdb)

การแก้ไขข้อบกพร่อง

  • คอมโพเนนต์ Material จะไม่ตั้งค่าระดับความสูงเป็น zIndex อีกต่อไป ซึ่งหมายความว่าภายในองค์ประกอบหลักเดียวกัน องค์ประกอบย่อยที่มีขนาดเงาใหญ่กว่าจะไม่ถูกวาดทับองค์ประกอบย่อยที่มีขนาดเงาเล็กกว่าโดยอัตโนมัติ หากยังต้องการลักษณะการทำงานดังกล่าว โปรดตั้งค่า Modifier.zIndex() ด้วยตนเองในตำแหน่งที่ต้องการ (I70417, b/170623932)
  • เลิกใช้งาน VectorPainter เพื่อใช้ rememberVectorPainter แทน เพื่อให้ระบุได้ดียิ่งขึ้นว่า API ที่ใช้ได้ภายในใช้ "remember" เพื่อคงข้อมูลไว้ในคอมโพสิท (Ifda43)
  • เปิดใช้การเปลี่ยนฉากใน ComposeTestRule และนำตัวเลือกในการ เปิดใช้เคอร์เซอร์กะพริบออกจาก ComposeTestRule (If0de3)
  • เพิ่มตัวเลือกแป้นพิมพ์แบบบรรทัดเดียวลงใน CoreTextField (I72e6d)
  • เปลี่ยนชื่อ Radius API เป็น CornerRadius เพื่อให้แสดง วิธีใช้ใน Compose ได้ดียิ่งขึ้น อัปเดตเอกสารประกอบเพื่อระบุ ว่ารัศมีมุมที่เป็นลบจะถูกจำกัด เป็น 0 (I130c7, b/168762961)
  • ปรับโครงสร้าง DrawScope และ ContentDrawScope ให้เป็นอินเทอร์เฟซ แทนที่จะเป็นคลาสแบบนามธรรม
    • สร้างการใช้งาน CanvasDrawScope ของ DrawScope
    • การติดตั้งใช้งาน DrawScope ที่ปรับโครงสร้างใหม่เพื่อใช้ CanvasScope แทน
    • สร้าง DrawContext เพื่อรวมการอ้างอิง สำหรับ DrawScope
    • นำวิธีการที่เลิกใช้งานแล้วใน DrawScope ออก (I56f5e)
  • Box ถูกทำให้เป็นฟังก์ชันอินไลน์ (Ibce0c, b/155056091)

เวอร์ชัน 1.0.0-alpha05

14 ตุลาคม 2020

androidx.compose.material:material:1.0.0-alpha05 androidx.compose.material:material-icons-core:1.0.0-alpha05 และ androidx.compose.material:material-icons-extended:1.0.0-alpha05 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ตอนนี้ป๊อปอัปและกล่องโต้ตอบจะรับค่า FLAG_SECURE จากหน้าต่างหลัก นอกจากนี้ ยังเพิ่มตัวเลือกในการกำหนดค่านี้อย่างชัดเจน (I64966, b/143778148, b/143778149)
  • ตอนนี้ Modifier.swipeable มีเกณฑ์ 56.dp สำหรับสถานะโดยค่าเริ่มต้น (Iab825, b/168610267)
  • สถานะ Scaffold ทั้งหมดที่มีเครื่องหมาย @Stable ย้าย drawerGesturesEnabled ใน ScaffoldState ไปยัง Scaffold เอง (I36645, b/168297016)
  • นำประเภทที่อนุญาตให้เป็น Null ออกจากพารามิเตอร์ Lambda ของ Scaffold คุณสามารถใช้ emptyContent() เพื่อแสดงว่าไม่มีเนื้อหาสำหรับพารามิเตอร์ที่ระบุ (I2b318, b/157633857, b/158551084)
  • เลิกใช้งาน API contentColor() และ currentTextStyle() แล้วแทนที่ด้วย AmbientContentColor และ AmbientTextStyle ตามลำดับ คุณเข้าถึงค่าปัจจุบันได้โดยใช้ .current ในพร็อพเพอร์ตี้โดยรอบ เช่นเดียวกับพร็อพเพอร์ตี้โดยรอบอื่นๆ การเปลี่ยนแปลงนี้มีขึ้นเพื่อให้สอดคล้องกันและหลีกเลี่ยงการมีหลายวิธีในการทําสิ่งเดียวกัน นอกจากนี้ ยังเปลี่ยนชื่อพร็อพเพอร์ตี้โดยรอบบางรายการเพื่อให้สื่อถึงวัตถุประสงค์ได้ดียิ่งขึ้น ดังนี้

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • เพิ่ม AmbientElevationOverlay ซึ่งช่วยให้ปรับแต่ง / ปิดใช้การซ้อนทับระดับความสูงเริ่มต้นที่ใช้กับพื้นผิวในธีมมืดได้ (I5b74d)

การแก้ไขข้อบกพร่อง

  • ในการปรับค่า Sentinel สำหรับคลาสแบบอินไลน์ให้เป็นมาตรฐาน ให้เปลี่ยนชื่อ Color.Unset เป็น Color.Unspecified เพื่อให้สอดคล้องกับคลาสแบบอินไลน์อื่นๆ (I97611, b/169797763)
  • เปิดตัว TextOverflow.None เมื่อการล้นเป็น None ข้อความจะไม่จัดการการล้นอีกต่อไป และจะรายงานขนาดจริงไปยัง LayoutNode (I175c9, b/158830170)
  • เปลี่ยนชื่อ launchInComposition เป็น LaunchedTask เพื่อให้เป็นไปตามหลักเกณฑ์ของ Compose API (I99a8e)
  • เปลี่ยนชื่อ OnPositionedModifier เป็น OnGloballyPositionedModifier และเปลี่ยนชื่อ onPositioned() เป็น onGloballyPositioned() (I587e8, b/169083903)

เวอร์ชัน 1.0.0-alpha04

1 ตุลาคม 2020

androidx.compose.material:material:1.0.0-alpha04 androidx.compose.material:material-icons-core:1.0.0-alpha04 และ androidx.compose.material:material-icons-extended:1.0.0-alpha04 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • แสดงพารามิเตอร์ InteractionState ในคอมโพเนนต์ Material แบบมีสถานะ เพื่อให้สามารถยกสถานะขึ้นและอ่าน / ควบคุมสถานะได้ (Iaca5f, b/168025711, b/167164434)
  • เปลี่ยนพารามิเตอร์ *color ใน RadioButton และ TriStateCheckbox เพื่อให้ปรับแต่งสีที่ใช้ในแต่ละสถานะได้อย่างเต็มที่ รวมถึงเปลี่ยนวิธีที่สีเคลื่อนไหวระหว่างสถานะหากต้องการ ดูข้อมูลเพิ่มเติมได้ที่ฟังก์ชันสี animateDefault* ใหม่ใน CheckboxConstants และ RadioButtonConstants (I1c532)
  • เปลี่ยนชื่อ rememberBackdropState เป็น rememberBackdropScaffoldState และเพิ่มพารามิเตอร์เพิ่มเติมสำหรับนาฬิกาภาพเคลื่อนไหว เปลี่ยนชื่อ param backdropScaffoldState ของ BackdropScaffold เป็น scaffoldState เปลี่ยนชื่อ BackdropConstants เป็น BackdropScaffoldConstants (Ib644d)
  • เพิ่มคอมโพเนนต์ BottomSheetScaffold เวอร์ชันทดลอง (Ie02f0, b/148996320)
  • เพิ่มคอมโพเนนต์ ModalBottomSheetLayout เวอร์ชันทดลอง (Ic209e, b/148996320)
  • เปลี่ยนชื่อ ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation เป็น defaultElevation และตอนนี้จะแสดงผลค่า Dp แทน AnimatedValue (I5f3ed)

การแก้ไขข้อบกพร่อง

  • อัปเดต Graphics API หลายรายการ
    • อัปเดต API การแปลงขนาดและการหมุน เพื่อใช้พารามิเตอร์ออฟเซ็ตเดียว เพื่อแสดงพิกัดจุดหมุน แทนพารามิเตอร์ลอยตัวแยกกัน สำหรับพิกัด x/y ใน DrawScope และ DrawTransform
    • นำเมธอด Rect.expandToInclude และ Rect.join ออกแล้ว
    • อัปเดตเอกสารประกอบเกี่ยวกับรัศมีให้ระบุว่าวงรี นอกเหนือจากวงกลม
    • เพิ่มเอกสารเพื่อระบุว่าไม่ควรเรียกใช้ตัวสร้างสาธารณะสำหรับคลาส Radius แบบอินไลน์โดยตรง แต่ควรสร้างออบเจ็กต์ Radius ผ่านตัวสร้างฟังก์ชันของออบเจ็กต์แทน
    • นำ API RoundRect ออกเพื่อค้นหา topRight, bottomRight, bottomCenter ฯลฯ
    • เลิกใช้ Rect.shift เพื่อใช้ Rect.translate แทน
    • นำ API RoundRect.grow และ Rect.shrink ออกแล้ว
    • เปลี่ยนชื่อ RoundRect.outerRect เป็น Rect.boundingRect
    • นำเมธอด RoundRect.middleRect/tallMiddleRect/wideMiddleRect และ Rect.isStadium ออก
    • เปลี่ยนชื่อ RoundRect.longestSide เป็น RoundRect.maxDimension
    • เปลี่ยนชื่อ RoundRect.shortestSide เป็น RoundRect.minDimension
    • เปลี่ยน RoundRect.center ให้เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน
    • อัปเดตตัวสร้าง RoundRect เพื่อใช้พร็อพเพอร์ตี้ Radius แทนพารามิเตอร์แต่ละรายการสำหรับค่ารัศมี x/y
    • นำ API ขนาดที่ถือว่าเป็นสี่เหลี่ยมผืนผ้าที่มี ต้นทางที่ 0,0 ออกแล้ว
    • เพิ่ม API การทำลายลงใน Radius
    • ย้ายฟังก์ชันส่วนขยาย RoundRect ต่างๆ ไปเป็น พร็อพเพอร์ตี้แทน
    • (I8f5c7, b/168762961)
  • เลิกใช้งาน foundation.Box แล้ว โปรดใช้ foundation.layout.Box แทน (Ie5950, b/167680279)
  • เปลี่ยนชื่อ Stack เป็น Box แล้ว ระบบจะเลิกใช้งาน Box ที่มีอยู่ก่อนหน้านี้เพื่อรองรับ Box ใหม่ใน compose.foundation.layout ลักษณะการทำงานของ Box ใหม่คือการวางองค์ประกอบย่อยซ้อนกันเมื่อมีองค์ประกอบย่อยหลายรายการ ซึ่งแตกต่างจาก Box ก่อนหน้าที่มีลักษณะการทำงานคล้ายกับคอลัมน์ (I94893, b/167680279)
  • เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการมีการตกแต่ง/ระยะห่างภายในในช่อง ให้ใช้ตัวแก้ไขแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • อัปเดต Graphics API หลายรายการ
    • อัปเดต DrawScope API ด้วยเมธอดการเปลี่ยนรูปแบบที่กำหนดขอบเขตเพื่อระบุว่าระบบจะใช้การเปลี่ยนรูปแบบภายในโค้ดเรียกกลับเท่านั้น และจะนำออกหลังจากเรียกใช้โค้ดเรียกกลับ
    • อัปเดตเอกสารประกอบ clipPath เพื่ออ้างอิงถึง Path แทนสี่เหลี่ยมผืนผ้าโค้งมน
    • แก้ไขการเว้นวรรคในเอกสารประกอบสำหรับพารามิเตอร์ right ใน clipPath
    • เปลี่ยนชื่อ DrawScope.drawCanvas เป็น drawIntoCanvas และ นำพารามิเตอร์ขนาดออก
    • เปลี่ยนชื่อพารามิเตอร์ dx/dy ในเมธอด inset เป็น horizontal และ vertical
    • เพิ่มการโอเวอร์โหลด Inset ที่ให้ค่า Inset เดียวกันกับขอบทั้ง 4 ด้าน
    • นำเอกสารเกี่ยวกับวิธีการแทรกที่ระบุว่า จะใช้การแทรกกับทั้ง 4 ด้านออก
    • เอกสารประกอบที่อัปเดตสำหรับคลาส Rect
    • อัปเดตความคิดเห็นเกี่ยวกับพารามิเตอร์ Rect ให้ตรงกับรูปแบบ kdoc
    • นำ Rect.join และ Rect.expandToInclude ออกแล้ว
    • สร้างการโอเวอร์โหลดสำหรับ Rect.translate(offset) และ เลิกใช้งาน Rect.shift
    • (If086a, b/167737376)
  • เราป้องกันการนำเข้าแบบคงที่ของเนื้อหาขอบเขตเลย์เอาต์ (เช่น alignWithSiblings ใน RowScope) คุณควรใช้ขอบเขตที่ชัดเจนแทน ดังนี้ with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } (I216be, b/166760797)

เวอร์ชัน 1.0.0-alpha03

16 กันยายน 2020

androidx.compose.material:material:1.0.0-alpha03 androidx.compose.material:material-icons-core:1.0.0-alpha03 และ androidx.compose.material:material-icons-extended:1.0.0-alpha03 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เปลี่ยนชื่อพารามิเตอร์ onSelect ของ BottomNavigationItem เป็น onClick (I91925, b/161809324)
  • เพิ่มพารามิเตอร์ InteractionState ไปยัง BottomNavigationItem และ Tab ซึ่งช่วยให้ยกเลิกสถานะนี้และปรับลักษณะที่คอมโพเนนต์ปรากฏในสถานะต่างๆ ได้ (Ia3e9e, b/168025711)
  • นำพารามิเตอร์ disabledBackgroundColor และ disabledContentColor ออกจากปุ่ม คุณควรใช้ฟังก์ชันสีเริ่มต้นใหม่ภายใน ButtonConstants แทน หากคุณตั้งค่า contentColor / backgroundColor อย่างชัดเจนอยู่แล้ว คุณควรใช้ฟังก์ชันเริ่มต้นเหล่านี้แทน และปรับแต่งพารามิเตอร์บางส่วน / ทั้งหมดเพื่อหลีกเลี่ยงการเขียนทับสีสำหรับสถานะที่เปิดใช้ / ปิดใช้ (If9b52)
  • สีพื้นหลังของช่องข้อความจะไม่มีการใช้ค่าอัลฟ่าความโปร่งใสโดยนัยอีกต่อไป แต่ระบบจะใช้สีที่ระบุผ่านพารามิเตอร์ backgroundColor โดยตรง (Iecee9, b/167951441)
  • เปลี่ยนชื่อ InnerPadding เป็น PaddingValues (I195f1, b/167389171)
  • พารามิเตอร์ resistanceFactorAtMin และ resistanceFactorAtMax ใน Modifier.swipeable ถูกแทนที่ด้วยพารามิเตอร์ความต้านทานเดียว มีการเพิ่มdefaultResistanceConfigวิธีใหม่ใน SwipeableConstants (I54238)
  • เพิ่มการรองรับการยกระดับแบบมีสถานะที่เคลื่อนไหวสำหรับ Button และ FloatingActionButton ตอนนี้ระดับความสูงจะเคลื่อนไหวระหว่างสถานะเริ่มต้นและสถานะกด หากต้องการปรับแต่งระดับความสูงระหว่างสถานะต่างๆ โปรดใช้ ButtonConstants.defaultAnimatedElevation() และ FloatingActionButtonConstants.defaultAnimatedElevation() แทนการตั้งค่า Dp แบบคงที่ในทุกกรณี (I37925)
  • ป้ายกำกับกลายเป็นพารามิเตอร์ที่ไม่บังคับภายใน TextField และ OutlinedTextField (I267f6, b/162234081)

การแก้ไขข้อบกพร่อง

  • ตอนนี้ฟังก์ชันการทดสอบส่วนกลาง เช่น onNode หรือ waitForIdle เลิกใช้งานแล้ว โปรดย้ายข้อมูลไปยังฟังก์ชันใหม่ที่กำหนดไว้ใน ComposeTestRule (I7f45a)
  • เราเลิกใช้งาน DpConstraints และ API ที่ใช้ DpConstraints แล้ว (I90cdb, b/167389835)
  • พารามิเตอร์ minWidth และ maxWidth ของ widthIn ได้รับการเปลี่ยนชื่อเป็น min และ max เช่นเดียวกับ preferredWidthIn, heightIn, preferredHeightIn (I0e5e1, b/167389544)
  • นำการดำเนินการเชิงความหมายของการเลื่อนไปข้างหน้า/ข้างหลังออก เพิ่มขั้นตอน ใน AccessibilityRangeInfo (Ia47b0)
  • การใช้งานแรงโน้มถ่วงได้รับการเปลี่ยนชื่ออย่างสม่ำเสมอเป็น "จัดแนว" หรือ "การจัดแนว" ใน Layout API (I2421a, b/164077038)
  • เพิ่ม onNode และเมธอดส่วนกลางอื่นๆ ใน ComposeTestRule เนื่องจาก เมธอดส่วนกลางปัจจุบันจะเลิกใช้งาน (Ieae36)
  • ย้าย createAndroidComposeRule และ AndroidInputDispatcher จาก androidx.ui.test.android ไปยัง androidx.ui.test (Idef08, b/164060572)

เวอร์ชัน 1.0.0-alpha02

2 กันยายน 2020

androidx.compose.material:material:1.0.0-alpha02 androidx.compose.material:material-icons-core:1.0.0-alpha02 และ androidx.compose.material:material-icons-extended:1.0.0-alpha02 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มคอมโพเนนต์ BackdropScaffold เวอร์ชันทดลอง (Iad908)

การแก้ไขข้อบกพร่อง

  • Matrix4 ถูกแทนที่ด้วย Matrix ส่วนอื่นๆ ทั้งหมด ของแพ็กเกจ vectormath ถูกนำออกแล้ว (Ibd665, b/160140398)

เวอร์ชัน 1.0.0-alpha01

26 สิงหาคม 2020

androidx.compose.material:material:1.0.0-alpha01 androidx.compose.material:material-icons-core:1.0.0-alpha01 และ androidx.compose.material:material-icons-extended:1.0.0-alpha01 ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตต่อไปนี้

ปัญหาที่ทราบ

= อักขระแรกในวัสดุ TextField จะนำออกโดยใช้ปุ่ม Backspace ไม่ได้ (b/165956313)

เวอร์ชัน 0.1.0-dev

เวอร์ชัน 0.1.0-dev17

19 สิงหาคม 2020

androidx.compose.material:material:0.1.0-dev17 androidx.compose.material:material-icons-core:0.1.0-dev17 และ androidx.compose.material:material-icons-extended:0.1.0-dev17 ออกอากาศแล้ว เวอร์ชัน 0.1.0-dev17 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ระบบได้นำ RadioGroup และ RadioGroupItems ที่เลิกใช้งานไปก่อนหน้านี้ออกแล้ว ใช้แถวและ RadioBotton แทน (I381b7, b/163806637)
  • นำการเรียกกลับ onFocusChanged ออกจาก TextField ใช้ Modifier.focusObserver แทน (I51089, b/161297615)
  • เลิกใช้งาน Modifier.drawBorder แล้ว โปรดใช้ Modifier.border แทน แทนที่คลาสข้อมูลเส้นขอบด้วย BorderStroke (I4257d, b/158160576)
  • เปลี่ยนชื่อพร็อพเพอร์ตี้บางรายการใน SwipeableState: swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction เพิ่มฟังก์ชัน rememberSwipeableState สำหรับสร้าง SwipeableStates (I2fc9c, b/163129614, b/163132293)
  • เพิ่มการรองรับแถบแสดงข้อความพร้อมการจัดตำแหน่งและการจัดคิวที่เหมาะสมแล้ว เข้าถึงได้ผ่านฟังก์ชันระงับ SnackbarHostState.showSnackbar นอกจากนี้
    • เพิ่มคอมโพเนนต์ SnackbarHost แล้ว โดยจะโฮสต์แถบแสดงข้อความตามสถานะและรับผิดชอบในการเปลี่ยนระหว่างแถบแสดงข้อความ
    • เพิ่ม SnackbarHostState เพื่อให้ควบคุมแถบแสดงข้อความ แถบแสดงข้อความโฮสต์ และแยกออกจาก ScaffoldState ได้ คุณยังเข้าถึงสถานะนี้ผ่าน scaffoldState.snackbarHostState ได้ด้วย
    • เพิ่มการโอเวอร์โหลด Snackbar เพื่อรองรับอินเทอร์เฟซทั่วไประหว่าง snackbarHostState กับ Snackbar เอง (I79aaa)
  • เพิ่มพารามิเตอร์ที่เปิดใช้ไปยัง IconButton และจัดเรียงพารามิเตอร์ใหม่ใน IconToggleButton (I0a941, b/161809385, b/161807956)
  • เราได้นำ ListItem เวอร์ชันที่มี API ที่อิงตามสตริงออกแล้ว ใช้เวอร์ชันสล็อตแทน (Ib8f57, b/161804681)
  • นำคอมโพเนนต์ FilledTextField ที่เลิกใช้งานแล้วออก โปรดใช้ TextField แทนเพื่อรับการใช้งาน Material Design ของช่องข้อความที่กรอก (I5e889)
  • ตอนนี้ AlertDialog ใช้ FlowRow สำหรับปุ่มแล้ว (I00ec1, b/161809319, b/143682374)
  • เพิ่มพารามิเตอร์ใน Modifier.swipeable เพื่อเปลี่ยนจำนวน แรงต้านเมื่อปัดผ่านขอบเขต นำพารามิเตอร์ [min/max]Value ออกแล้ว (I93d98)
  • เพิ่มพารามิเตอร์ backgroundColor ลงใน LinearProgressIndicator และนำการเว้นวรรคภายในออกจาก CircularProgressIndicator เพิ่ม ProgressIndicatorConstants.DefaultProgressAnimationSpec ใหม่ ซึ่งใช้เป็น AnimationSpec เริ่มต้นได้เมื่อเคลื่อนไหวความคืบหน้าระหว่างค่า (If38b5, b/161809914, b/161804677)
  • เพิ่มพารามิเตอร์ velocityThreshold ที่ไม่บังคับลงใน Modifier.swipeable (I698ba)
  • bottomBarSize, fabSize และอื่นๆ จะไม่มีให้บริการใน ScaffoldState อีกต่อไป ใช้ Modifier.onPosition แทนในคอมโพเนนต์ที่คุณต้องการทราบขนาด มีการเพิ่มพารามิเตอร์ contentColor และ Modifier ลงใน Scaffold (Ic6f7b, b/161811485, b/157174382)
  • เปลี่ยนชื่อและจัดเรียงพารามิเตอร์บางรายการในแท็บเพื่อให้สอดคล้องกับ API อื่นๆ (Ia2d12, b/161807532)
  • แยก TabRow เป็น TabRow และ ScrollableTabRow โดยนำ isScrollable ออกจาก TabRow นอกจากนี้ ยังแสดง edgePadding ใน ScrollableTabRow ซึ่งช่วยให้ควบคุมพื้นที่ว่างก่อน / หลังแท็บได้ (I583e8, b/161809544)
  • นำออบเจ็กต์ TabRow ออกแล้วและแทนที่ด้วย TabConstants TabRow.TabPosition ได้ย้ายไปอยู่ที่ระดับบนสุด (TabPosition) และเปลี่ยนชื่อ indicatorContainer เป็น indicator แล้ว ดูตัวอย่างและเอกสารประกอบเพื่อดูข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้ API ที่อัปเดตแล้วและค่าเริ่มต้น (I54d45, b/161809544)
  • เราได้ปรับแต่งพารามิเตอร์เกณฑ์ใน Modifier.swipeable โดยตอนนี้พารามิเตอร์จะ ใช้คู่สถานะ (ประเภท T) และแสดงผลเกณฑ์ระหว่างสถานะเหล่านั้น ในรูปแบบของ ThresholdConfig เพิ่มพารามิเตอร์ dismissThresholds ลงใน SwipeToDismiss ซึ่งเป็น Lambda (DismissDirection) -> ThresholdConfig (Ie1080)
  • แถบเลื่อนมีสีเพิ่มเติมสำหรับการปรับแต่งแบบละเอียด (I73e64, b/161810475)
  • เปลี่ยนชื่อพารามิเตอร์สีของการ์ดเป็น backgroundColor (I01fc1, b/161809546)
  • ตอนนี้สแน็กบาร์มีสีพื้นหลังและสีเนื้อหาที่ปรับแต่งได้แล้ว (I238f2, b/161804381)
  • เพิ่มพารามิเตอร์การปรับแต่งตัวแก้ไข, backgroundColor, contentColor และ scrimColor ลงใน Drawer แล้ว (I23655, b/161804378)
  • ตอนนี้เราเลิกใช้งาน state { ... } ที่ใช้ร่วมกันได้แล้วเพื่อเปลี่ยนไปใช้ การเรียก remember { mutableStateOf(...) } อย่างชัดเจนเพื่อความชัดเจน ซึ่งจะช่วยลดพื้นผิว API โดยรวมและจำนวนแนวคิดสำหรับการจัดการสถานะ รวมถึงตรงกับรูปแบบ by mutableStateOf() สำหรับการมอบสิทธิ์พร็อพเพอร์ตี้ของคลาส (Ia5727)
  • เปลี่ยนชื่อพารามิเตอร์ระยะห่างจากขอบของปุ่มเป็น contentPadding (Id252e, b/161809394)
  • เพิ่มคอมโพเนนต์ Material เวอร์ชันทดลอง SwipeToDismiss (I129e5)

การแก้ไขข้อบกพร่อง

  • นำ onChildPositioned และ OnChildPositionedModifier ออกแล้ว นักพัฒนาแอปควรใช้ onPositioned และ OnPositionedModifier ในเลย์เอาต์ย่อยแทน (I4522e, b/162109766)
  • เพิ่ม Lambda mergePolicy ไปยัง SemanticsPropertyKey ซึ่งใช้เพื่อกำหนดนโยบายที่กำหนดเองสำหรับตรรกะของ mergeAllDescendants การผสานได้ นโยบายเริ่มต้นคือการใช้ค่าระดับบนหากมีอยู่แล้ว ไม่เช่นนั้นจะใช้ค่าระดับล่าง (Iaf6c4, b/161979921)
  • ตอนนี้ IntSize เป็นคลาสแบบอินไลน์ (I2bf42) แล้ว
  • เราเปลี่ยนชื่อ PlacementScope.placeAbsolute() เป็น PlacementScope.place() และเปลี่ยนชื่อ PlacementScope.place() ก่อนหน้าเป็น PlacementScope.placeRelative() ด้วยเหตุนี้ วิธี PlacementScope.place() จะไม่สะท้อนตำแหน่งในบริบทจากขวาไปซ้ายโดยอัตโนมัติอีกต่อไป หากต้องการใช้ฟีเจอร์นี้ ให้ใช้ PlacementScope.placeRelative() แทน (I873ac, b/162916675)
  • เลิกใช้ PxBounds ใน Rect อัปเดตการใช้งานทั้งหมด ของ PxBounds ด้วย rect และเพิ่ม คำอธิบายประกอบที่เลิกใช้งาน/แทนที่อย่างเหมาะสม เพื่อช่วยในการ ย้ายข้อมูล (I37038, b/162627058)
  • เปลี่ยนชื่อ RRect เป็น RoundRect เพื่อให้สอดคล้องกับรูปแบบการตั้งชื่อของ Compose มากขึ้น สร้างตัวสร้างฟังก์ชันที่คล้ายกัน กับ RRect และเลิกใช้งานตัวสร้างฟังก์ชัน RRect (I5d325)

เวอร์ชัน 0.1.0-dev16

5 สิงหาคม 2020

androidx.compose.material:material:0.1.0-dev16 androidx.compose.material:material-icons-core:0.1.0-dev16 และ androidx.compose.material:material-icons-extended:0.1.0-dev16 ออกอากาศแล้ว เวอร์ชัน 0.1.0-dev16 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • ตอนนี้ Colors เป็นคลาสสุดท้ายแทนที่จะเป็นอินเทอร์เฟซ คุณควรสร้างแอมเบียนท์ใหม่สำหรับออบเจ็กต์ธีมที่กำหนดเอง และเข้าถึงออบเจ็กต์ธีมผ่านแอมเบียนท์ใหม่ในคอมโพเนนต์ แทนที่จะขยายและให้การติดตั้งใช้งานที่กำหนดเอง ซึ่งคล้ายกับวิธีที่ MaterialTheme ทำงานภายใน (Ibae84)
  • เปลี่ยนชื่อ ColorPalette เป็น Colors เพื่อให้สอดคล้องกับระบบสีของ Material มากขึ้น และเพื่อไม่ให้เกิดความสับสนว่า ColorPalette เป็นออบเจ็กต์การจัดธีม "ทั่วไป" ซึ่งแตกต่างจากการใช้งานระบบสีของ Material โดยเฉพาะ นอกจากนี้ ยังเปลี่ยนชื่อ lightColorPalette และ darkColorPalette เป็น lightColors และ darkColors ตามลำดับ (I9e976, b/161812111)
  • เปลี่ยนชื่อพารามิเตอร์ text ของ BottomNavigationItem เป็น label, onSelected เป็น onSelect, activeColor เป็น selectedContentColor, inactiveColor เป็น unselectedContentColor และอัปเดตลำดับพารามิเตอร์ให้ตรงกับหลักเกณฑ์ (Icb605, b/161809324)
  • Modifier.stateDraggable ได้รับการปรับปรุงใหม่ทั้งหมดและเปลี่ยนชื่อเป็น Modifier.swipeable มีการเปิดตัวคลาส SwipeableState ใหม่ และมีการปรับโครงสร้าง DrawerState และ BottomDrawerState เพื่อรับค่าจากคลาสนี้ [Modal/Bottom]DrawerLayout ไม่รับพารามิเตอร์ onStateChange อีกต่อไป (I72332, b/148023068)
  • foundation.shape.corner package were flatten to foundation.share (I46491, b/161887429)
  • เพิ่มคำอธิบายประกอบ ExperimentalMaterialApi ทำเครื่องหมาย RippleTheme เป็นเวอร์ชันทดลอง (Ic5fa0, b/161784800)
  • เปลี่ยนชื่อ Material FilledTextField เป็น TextField และเปลี่ยนชื่อ TextField พื้นฐานเป็น BaseTextField เพื่อให้ค้นพบและใช้งาน API ที่ต้องการได้ง่ายที่สุด (Ia6242, b/155482676)

การแก้ไขข้อบกพร่อง

  • เลิกใช้งาน OnChildPositioned แล้ว ให้ใช้ OnPositioned ในองค์ประกอบย่อยแทน (I87f95, b/162109766)
  • แก้ไข API ที่กว้าง (I077bc)
    1. นำอินเทอร์เฟซ OffsetBase ที่ไม่ได้ใช้ออก
    2. จัดคลาส Offset และ IntOffset ให้มี พื้นผิว API ที่สอดคล้องกัน
    3. เปลี่ยนชื่อ IntOffset.Origin เป็น IntOffset.Zero เพื่อให้สอดคล้องกับ Offset API
    4. ย้ายเมธอด nativeCanvas ออกจากอินเทอร์เฟซ Canvas เพื่อรองรับผู้ใช้ในการสร้างอินสแตนซ์ Canvas ของตนเอง
    5. สร้างคลาส EmptyCanvas สตับเพื่อรีแฟคเตอร์ DrawScope ให้เป็นพารามิเตอร์ที่ไม่ใช่ Null แทน lateinit และตรวจสอบว่าฟิลด์ไม่ใช่ Null
    6. เปลี่ยนชื่อ Enum ของ ClipOp เป็น Pascal Case
    7. เปลี่ยนชื่อ Enum FilterQuality ให้เป็น Pascal Case
    8. เปลี่ยนชื่อ enum StrokeJoin เป็น Pascal Case
    9. เปลี่ยนชื่อ PointMode enums เป็น Pascal Case
    10. เปลี่ยนชื่อการแจงนับ PaintingStyle เป็น Pascal Case
    11. เปลี่ยนชื่อการแจงนับ PathFillType เป็น Pascal Case
    12. เปลี่ยนชื่อ Enum StrokeCap ให้เป็น Pascal Case
    13. อัปเดตการใช้งาน DrawCache เพื่อไม่ให้ ใช้พารามิเตอร์ lateinit อีกต่อไป
    14. อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบเลื่อนเวลาอีกต่อไป สำหรับพารามิเตอร์ภายใน fillPaint และ strokePaint
    15. อัปเดต Image ที่ใช้ร่วมกันได้เพื่อหลีกเลี่ยงการใช้ Box เพื่อลดค่าใช้จ่าย
    16. อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
    17. อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ คำสั่งเส้นทางแต่ละรายการ
    18. อัปเดตองค์ประกอบย่อยของเวกเตอร์เพื่อนำการตรวจสอบแบบมีเงื่อนไขที่ซ้ำซ้อนออก สำหรับการตรวจสอบความเท่ากัน เนื่องจาก Compose จัดการการตรวจสอบเหล่านี้อยู่แล้ว
    19. เลิกใช้งานเมธอดตัวสร้างคู่ของ Rect เพื่อ ใช้ตัวสร้างฟังก์ชันแทน
    20. อัปเดตคลาส Brush และตัวสร้างฟังก์ชันด้วย @Immutable และ @Stable API
    21. อัปเดตการแจงนับ VertexMode ให้เป็น PascalCase
    22. อัปเดตเมธอด selectPaint ของ DrawScope เพื่อเขียนทับพารามิเตอร์การขีดเขียนแบบมีเงื่อนไข ในสีหากมีการเปลี่ยนแปลง
    23. อัปเดตขนาดเพื่อเพิ่ม API การแยกโครงสร้าง เปลี่ยนชื่อ UnspecifiedSize เป็น Unspecified และนำเมธอดที่ไม่ได้ใช้ออก
  • ย้ายกล่องโต้ตอบไปยัง UI (I47fa6)
  • นำ SemanticsNodeInteraction.performPartialGesture ออกแล้ว โปรดใช้ SemanticsNodeInteraction.performGesture แทน (Id9b62)
  • เปลี่ยนชื่อ SemanticsNodeInteraction.getBoundsInRoot() เป็น SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)
  • มีการอัปเดต API สำหรับการรองรับจากขวาไปซ้ายแล้ว เพิ่ม LayoutDirectionAmbient ซึ่งใช้เพื่ออ่านและเปลี่ยนทิศทางการจัดวางได้ นำ Modifier.rtl และ Modifier.ltr ออกแล้ว (I080b3)
  • เปลี่ยนชื่อ Modifier.deternimateProgress เป็น Modifier.progressSemantics (I9c0b4)
  • อัปเดต material-icons-extended ด้วยไอคอนล่าสุดที่เพิ่มลงใน Material.io/icons (I4b1d3)
  • ต้องระบุประเภท T อย่างชัดแจ้ง สำหรับ transitionDefinition (I1aded)
  • เลิกใช้งาน Modifier.plus แล้ว ให้ใช้ Modifier.then แทน คำว่า "จากนั้น" มีสัญญาณที่ชัดเจนกว่าในการเรียงลำดับ และยังห้ามพิมพ์ Modifier.padding().background() + anotherModifier ซึ่งจะทำให้การอ่านยากขึ้น (Iedd58, b/161529964)
  • เปลี่ยนชื่อ AndroidComposeTestRule เป็น createAndroidComposeRule (I70aaf)
  • เพิ่ม SemanticsMatcher isFocused() และ isNotFocused() (I0b760)
  • นำ BaseGestureScope.globalBounds ออก ซึ่งไม่ควร ใช้ในการทดสอบ ให้ใช้พิกัดที่อยู่ใกล้กับโหนดที่คุณ โต้ตอบด้วยแทน (Ie9b08)
  • ตำแหน่งป๊อปอัปคงที่บนจอแสดงผลที่มีรอยบาก (Idd7dd)
  • เปลี่ยนชื่อ Modifier.drawBackground เป็น Modifier.background (I13677)

เวอร์ชัน 0.1.0-dev15

22 กรกฎาคม 2020

androidx.compose.material:material:0.1.0-dev15 androidx.compose.material:material-icons-core:0.1.0-dev15 และ androidx.compose.material:material-icons-extended:0.1.0-dev15 ออกอากาศแล้ว เวอร์ชัน 0.1.0-dev15 มีคอมมิตเหล่านี้

การอัปเดตการขึ้นต่อกัน

  • หากต้องการใช้ Compose เวอร์ชัน 0.1.0-dev15 คุณจะต้องอัปเดตการอ้างอิง ตามข้อมูลโค้ดใหม่ที่แสดงด้านบนในส่วนการประกาศการอ้างอิง

การเปลี่ยนแปลง API

  • เลิกใช้งานคำอธิบายประกอบ @Model แล้ว ใช้ state และ mutableStateOf แทน การตัดสินใจเลิกใช้งานนี้เกิดขึ้นหลังจากการพูดคุยอย่างรอบคอบ

    เหตุผล

    เหตุผลรวมถึงแต่ไม่จำกัดเพียง

    • ลดพื้นที่ผิวของ API และแนวคิดที่เราต้องสอน
    • สอดคล้องกับชุดเครื่องมืออื่นๆ ที่เทียบเคียงได้ (Swift UI, React, Flutter) มากขึ้น
    • การตัดสินใจที่ย้อนกลับได้ เราจะนำ @Model กลับมาในภายหลังได้เสมอ
    • นำการใช้งานในกรณีที่พบได้ยากและคำถามที่ตอบยากเกี่ยวกับการกำหนดค่า @Model ออก เนื่องจากเป็นสิ่งที่เราต้องจัดการ
    • @Model คลาสข้อมูล เท่ากับ รหัสแฮช ฯลฯ
    • ฉันจะตั้งค่าให้บางพร็อพเพอร์ตี้ "สังเกต" และบางพร็อพเพอร์ตี้ไม่สังเกตได้อย่างไร
    • ฉันจะระบุความเท่าเทียมเชิงโครงสร้างเทียบกับความเท่าเทียมเชิงอ้างอิงที่จะใช้ในการสังเกตได้อย่างไร
    • ลด "เวทมนตร์" ในระบบ จะช่วยลดโอกาสที่ผู้ใช้จะคิดว่าระบบฉลาดกว่าที่เป็นจริง (เช่น ระบบรู้ว่าต้องเปรียบเทียบรายการอย่างไร)
    • ทำให้ความละเอียดของการสังเกตการณ์ใช้งานง่ายขึ้น
    • ปรับปรุงความสามารถในการปรับโครงสร้างจากตัวแปร -> พร็อพเพอร์ตี้ในคลาส
    • อาจเปิดโอกาสในการเพิ่มประสิทธิภาพเฉพาะรัฐที่สร้างขึ้นด้วยมือ
    • สอดคล้องกับส่วนอื่นๆ ของระบบนิเวศมากขึ้น และลดความคลุมเครือเกี่ยวกับสถานะที่ไม่เปลี่ยนแปลงหรือการ "ยอมรับสถานะที่เปลี่ยนแปลงได้"

    หมายเหตุเกี่ยวกับการย้ายข้อมูล

    การใช้งาน @Model ที่มีอยู่เกือบทั้งหมดจะได้รับการแปลงอย่างง่ายๆ ใน 2 วิธี ตัวอย่างด้านล่างมีคลาส @Model ที่มีพร็อพเพอร์ตี้ 2 รายการเพื่อเป็นตัวอย่างเท่านั้น และมีการใช้ใน Composable

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    วิธีที่ 1: ใช้ State<OriginalClass> และสร้างสำเนา

    ซึ่งทำได้ง่ายขึ้นด้วยคลาสข้อมูลของ Kotlin กล่าวโดยสรุปคือ ให้เปลี่ยนพร็อพเพอร์ตี้ var ทั้งหมดก่อนหน้านี้เป็นพร็อพเพอร์ตี้ val ของคลาสข้อมูล จากนั้นใช้ state แทน remember และกำหนดค่าสถานะให้กับสำเนาที่โคลนของต้นฉบับโดยใช้วิธีการที่สะดวกของคลาสข้อมูล copy(...)

    โปรดทราบว่าวิธีนี้จะใช้ได้ก็ต่อเมื่อมีการเปลี่ยนแปลงคลาสในขอบเขตเดียวกันกับที่สร้างอินสแตนซ์ State เท่านั้น หากคลาสมีการเปลี่ยนแปลงภายในตัวเองนอกขอบเขตการใช้งาน และคุณอาศัยการสังเกตการณ์ดังกล่าว แนวทางถัดไปคือแนวทางที่คุณควรใช้

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    วิธีที่ 2: ใช้ mutableStateOf และตัวแทนพร็อพเพอร์ตี้

    วิธีนี้ทำได้ง่ายขึ้นด้วยตัวแทนพร็อพเพอร์ตี้ของ Kotlin และ mutableStateOf API ซึ่งช่วยให้คุณสร้างอินสแตนซ์ MutableState นอกการจัดองค์ประกอบได้ โดยพื้นฐานแล้ว ให้แทนที่พร็อพเพอร์ตี้ var ทั้งหมดของคลาสเดิมด้วยพร็อพเพอร์ตี้ var ที่มี mutableStateOf เป็นผู้มอบสิทธิ์พร็อพเพอร์ตี้ ซึ่งมีข้อดีคือการใช้งานคลาสจะไม่เปลี่ยนแปลงเลย มีเพียงการใช้งานภายในเท่านั้นที่จะเปลี่ยนแปลง อย่างไรก็ตาม ลักษณะการทำงานจะไม่เหมือนกับตัวอย่างเดิมโดยสมบูรณ์ เนื่องจากตอนนี้แต่ละพร็อพเพอร์ตี้จะได้รับการสังเกต/ติดตามแยกกัน ดังนั้นการจัดองค์ประกอบใหม่ที่คุณเห็นหลังจากรีแฟคเตอร์นี้อาจแคบลง (ซึ่งเป็นเรื่องดี)

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    (I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)

  • เปลี่ยนชื่อการเรียกกลับ onFocusChange ในช่องข้อความเป็น onFocusChanged (Ida4a1)

  • เพิ่มพารามิเตอร์ขีดจํากัดใน stateDraggable เพื่อระบุขีดจํากัด ระหว่างจุดยึด ซึ่งใช้เพื่อกำหนดเกณฑ์ 56dp ในลิ้นชักด้านล่าง นอกจากนี้ ตอนนี้ BottomDrawerLayout ยังใช้การแจงนับ BottomDrawerState แยกต่างหากด้วย (I533fa)

  • นำ Modifier.ripple ที่เลิกใช้งานไปก่อนหน้านี้ออก ตอนนี้ Clickable ใช้ Ripple เป็นข้อบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณสามารถใช้ Clickable และรับข้อบ่งชี้ Ripple ได้ฟรี หากต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ขอบเขตสำหรับ Ripple คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยัง Clickable เป็นพารามิเตอร์การระบุ (I663b2, b/155375067)

  • นำการลบล้างที่เลิกใช้งานแล้วของ Composable FilledTextField ออก (I7f8f8)

  • เปลี่ยนชื่อออบเจ็กต์ปุ่ม (ที่มีค่าเริ่มต้นที่ฟังก์ชันปุ่มใช้) เป็น ButtonConstants (I7c5f7, b/159687878)

  • ตอนนี้ช่องเนื้อหาของปุ่มจะทำงานเป็นแถว (มีประโยชน์เมื่อคุณต้องการมีไอคอนพร้อมข้อความ โปรดดูตัวอย่างในปุ่มเกี่ยวกับวิธีเขียน) (I0ff10, b/158677863)

  • เราได้เลิกใช้งาน RadioGroup และ RadioGroupItem แล้ว ใช้ Box กับ Modifier.selectable, Row และ Column เพื่อสร้างชุดตัวเลือก RadioButton ที่เหมาะสมตามการออกแบบของคุณ (I7f5cf, b/149528535)

  • เพิ่ม Material Outlined Textfield (I1a518)

  • เลิกใช้งาน androidx.ui.foundation.TextFieldValue และ androidx.ui.input.EditorValue แล้ว นอกจากนี้ ยังมีการเลิกใช้งาน Composable TextField, FilledTextField และ CoreTextField ที่ใช้ประเภทดังกล่าวด้วย โปรดใช้ androidx.ui.input.TextFieldValue แทน (I4066d, b/155211005)

  • TabRow.TabPosition ไม่มีตำแหน่งใน Dp แต่มีใน IntPx (I34a07, b/158577776)

  • แทนที่การใช้งาน IntPx ด้วย Int แทนที่ IntPxPosition ด้วย IntOffset แทนที่ IntPxSize ด้วย IntSize (Ib7b44)

  • เพื่อรวมจำนวนคลาสที่ใช้เพื่อแสดงข้อมูลการปรับขนาด ให้ใช้คลาส Size แทน PxSize ซึ่งจะให้ประโยชน์ ของคลาสอินไลน์เพื่อใช้ประโยชน์จาก Long ในการแพ็กค่า Float 2 ค่าเพื่อแสดง ความกว้างและความสูงที่แสดงเป็น Float (Ic0191)

  • เลิกใช้งาน Modifier.ripple ตอนนี้ Clickable ใช้ Ripple เป็นข้อบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณสามารถใช้ Clickable และรับข้อบ่งชี้ Ripple ได้ฟรี หากต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ขอบเขตสำหรับ Ripple คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยัง Clickable เป็นพารามิเตอร์การระบุ (I101cd, b/155375067)

  • เราได้ปรับปรุง Scaffold API โดยเปลี่ยนชื่อพารามิเตอร์บางรายการและเพิ่มพารามิเตอร์ใหม่เพื่อให้ปรับแต่งได้ดียิ่งขึ้น เพิ่ม Getter เพื่อค้นหาขนาดของ Fab, TopBar และ BottomBar (I0e7ce)

  • เพิ่มคอมโพเนนต์ DropdownMenu ใน ui-material ซึ่งเป็นการติดตั้งใช้งานเมนู Material Design (I9bb3d)

  • อนุญาตให้แสดง/ซ่อนแป้นพิมพ์ซอฟต์แวร์ด้วยตนเองโดยใช้ SoftwareKeyboardController (Ifb9d6, b/155427736)

  • เพิ่ม Modifier.indication ลงในแพ็กเกจพื้นฐานแล้ว ใช้เพื่อแสดงการกด/ลาก/การบ่งชี้อื่นๆ ในองค์ประกอบที่โต้ตอบได้ที่กำหนดเอง (I8425f, b/155287131)

  • การใช้งาน CanvasScope ที่รวมกัน ตอนนี้จึงมีเพียง DrawScope และ ContentDrawScope เปลี่ยนชื่อ CanvasScope เป็น DrawScope อัปเดต DrawScope เพื่อใช้ Density interface และจัดเตรียม LayoutDirection อัปเดตคลาสย่อย DrawScope ที่ลบแล้วใน ContentDrawScope Painter และ PainterModifier เพื่อไม่ให้รักษาพร็อพเพอร์ตี้ RTL ไว้ด้วยตนเองอีกต่อไป เนื่องจาก DrawScope มีพร็อพเพอร์ตี้นี้อยู่แล้ว โดยไม่ต้องระบุด้วยตนเอง (I1798e)

  • เปลี่ยนชื่อ Emphasis.emphasize() เป็น Emphasis.applyEmphasis() (Iceebe)

  • ตอนนี้ปุ่มที่ปิดใช้จะแสดงตามข้อกำหนดของ Material Design (I47dcb, b/155076924)

  • FilledTextField รองรับการดำเนินการ IME, การแปลงภาพ และประเภทแป้นพิมพ์ (I1f9cf, b/155075201)

  • เพิ่มพารามิเตอร์ strokeWidth ลงใน CircularProgressIndicator เพื่อปรับแต่งขนาดเส้น หากต้องการเปลี่ยนขนาดเส้น (ความสูง) ของ LinearProgressIndicator คุณสามารถใช้ Modifier.preferredHeight() หรือตัวปรับขนาดอื่น (Icea16, b/154919081)

  • เพิ่มพารามิเตอร์ strokeWidth ลงใน CircularProgressIndicator เพื่อปรับแต่งขนาดเส้น หากต้องการเปลี่ยนขนาดเส้น (ความสูง) ของ LinearProgressIndicator คุณสามารถใช้ Modifier.preferredHeight() หรือตัวปรับขนาดอื่น (Icea16, b/154919081)

  • เพิ่ม API ช่องสำหรับไอคอนท้ายและไอคอนนำใน FilledTextField และการจัดการสถานะข้อผิดพลาด (Ic12e0)

  • เปลี่ยนสีเริ่มต้นของ FAB และ Extended FAB เป็น MaterialTheme.colors.secondary แล้ว (I3b9b9, b/154118816)

  • แทนที่การใช้ Color ที่อนุญาตให้เป็น Null ทั้งหมดใน API ด้วย ที่ไม่ใช่ Null และใช้ Color.Unset แทน Null (Iabaa7)

  • เปลี่ยนชื่อ EdgeInsets เป็น InnerPadding เปลี่ยนชื่อพารามิเตอร์ innerPadding ของปุ่ม Material เป็น padding (I66165)

  • ตอนนี้แถบเลื่อนไม่มีสถานะแล้ว ผู้ใช้จะต้องส่งและอัปเดตสถานะด้วยตนเองเช่นเดียวกับในตัวควบคุมอื่นๆ (Ia00aa)

  • นำ StaticDrawer ออกแล้ว หากต้องการใช้ ให้ใช้ Box ที่มีความกว้างตามข้อกำหนดของ Material แทน (I244a7)

  • เพิ่มการใช้งาน Material Design ของช่องข้อความที่กรอก (Ic75cd)

  • เพิ่มพารามิเตอร์ตัวแก้ไขไปยัง ListItem และจัดเรียงพารามิเตอร์ใหม่เพื่อ โปรโมตเนื้อหา Lambda ต่อท้าย (I66e21)

  • เพิ่มพารามิเตอร์ตัวสร้าง defaultFontFamily ลงใน Typography เพื่อให้ระบุชุดแบบอักษรเริ่มต้นที่จะใช้กับ TextStyles ที่ระบุซึ่งไม่ได้ตั้งค่าชุดแบบอักษรได้ (I89d07)

  • นำตารางข้อมูลวัสดุออกจากพื้นผิว API ชั่วคราว (Iaea61)

  • เปลี่ยนชื่อพารามิเตอร์ใน Divider ที่ใช้ร่วมกันได้ (Ic4373)

  • เด็ก (Ia6d19)

  • นำ MaterialTheme.emphasisLevels ออก ให้ใช้ EmphasisAmbient.current แทนเพื่อเรียกข้อมูลระดับความสำคัญ (Ib5e40)

  • ระบบการกำหนดธีมรูปร่างได้รับการอัปเดตตามข้อกำหนดการออกแบบ Material ตอนนี้คุณสามารถระบุรูปร่างขนาดเล็ก กลาง และใหญ่เพื่อให้คอมโพเนนต์ส่วนใหญ่ใช้ได้ (Ifb4d1)

  • เปลี่ยน API ของ MaterialTheme เช่น MaterialTheme.colors(), MaterialTheme.typography() ให้เป็นพร็อพเพอร์ตี้แทนที่จะเป็นฟังก์ชัน นำวงเล็บออกจากการเรียกที่มีอยู่แล้ว โดยคาดว่าจะไม่มีการเปลี่ยนแปลงด้านพฤติกรรม (I3565a)

  • ปรับโครงสร้าง API ของ FloatingActionButton เพื่อยอมรับ Composable Lambda แทน Primitive ดูตัวอย่างที่อัปเดตแล้วสำหรับข้อมูลการใช้งาน (I00622)

  • เพิ่มพารามิเตอร์ enabled ลงในช่องทำเครื่องหมาย สวิตช์ และสลับได้ (I41c16)

  • ตอนนี้ Ripple เป็นตัวปรับแต่งแล้ว แม้ว่า Clickable จะยังไม่ได้แปลง แต่การใช้งานที่แนะนำคือ Clickable(onClick = { ... }, modifier = ripple()) (Ie5200, b/151331852, b/150060763)

  • ย้าย Surface และ Card จาก androidx.ui.material.surface ไปยัง androidx.ui.material (I88a6d, b/150863888)

  • ตอนนี้ปุ่ม, FloatingActionButton และ Clickable มี enabled param แยกกันแล้ว มีการเปลี่ยนชื่อหรือจัดเรียงพารามิเตอร์บางรายการในปุ่มใหม่ (I54b5a)

  • เปลี่ยนชื่อ Image เป็น ImageAsset เพื่อให้เห็นความแตกต่างระหว่างข้อมูลรูปภาพกับ Image composable ที่กำลังจะเปิดตัวซึ่งใช้ในการเข้าร่วมเลย์เอาต์และวาดเนื้อหาได้ดียิ่งขึ้น _Body:สร้างเมธอดส่วนขยายใน android.graphics.Bitmap Bitmap.asImageAsset() เพื่อสร้างอินสแตนซ์ของ ImageAsset ที่มีประโยชน์ในการรวมการพัฒนาแอปพลิเคชัน Android แบบเดิมเข้ากับเฟรมเวิร์ก Compose (Id5bbd)

  • นำ Snackbar API ที่มีพารามิเตอร์ String ออกเพื่อใช้โอเวอร์โหลดที่ยอมรับ Composable Lambda ดูตัวอย่างที่อัปเดตแล้วสำหรับ ข้อมูลการใช้งาน (I55f80)

  • ปรับโครงสร้าง Tab API เพื่อยอมรับ Lambda text และ icon (Ia057e)

  • เพิ่มคอมโพเนนต์ BottomNavigation ดูเอกสารและตัวอย่างเพื่อดูข้อมูลการใช้งาน (I731a0)

  • เพิ่ม Icon, IconButton และ IconToggleButton โดยนำ AppBarIcon ออก คุณสามารถแทนที่การใช้งาน AppBarIcon ที่มีอยู่ด้วย IconButton ได้โดยตรง และตอนนี้ปุ่มดังกล่าวจะมีเป้าหมายการสัมผัสที่ถูกต้องแล้ว ดูตัวอย่างเพื่อดูข้อมูลการใช้งาน และดูไอคอนสำหรับไอคอน Material ที่ระบุ ซึ่งคุณใช้กับคอมโพเนนต์เหล่านี้ได้โดยตรง (I96849)

  • แทนที่ ButtonStyle ด้วยฟังก์ชันที่แตกต่างกันและนำการโอเวอร์โหลดข้อความ (สตริง) ออก ดูตัวอย่างที่อัปเดตแล้วสำหรับข้อมูลการใช้งาน (If63ab, b/146478620, b/146482131)

  • เปลี่ยนชื่อตัวปรับแต่ง Border เป็น DrawBorder (I8ffcc)

  • LayoutCoordinates ไม่มีพร็อพเพอร์ตี้ตำแหน่งอีกต่อไป พร็อพเพอร์ตี้ position จะไม่มีผลเมื่อพิจารณา LayoutModifiers, rotation หรือการปรับขนาด นักพัฒนาแอปควรใช้ parentCoordinates และ childToLocal() เพื่อคำนวณการเปลี่ยนจาก LayoutCoordinate หนึ่ง ไปยังอีกอันหนึ่งแทน

    LayoutCoordinates ใช้ IntPxSize สำหรับพร็อพเพอร์ตี้ขนาดแทน PxSize เลย์เอาต์ใช้ขนาดพิกเซลจำนวนเต็มสำหรับเลย์เอาต์ ดังนั้นขนาดเลย์เอาต์ทั้งหมด ควรใช้จำนวนเต็มและไม่ใช่ค่าทศนิยม (I9367b)

  • การเปลี่ยนแปลงที่ไม่รองรับการทำงานย้อนหลังใน Ambient API ดูรายละเอียดได้ในบันทึกและเอกสารประกอบของ Ambient<T> (I4c7ee, b/143769776)

  • เพิ่มคอมโพเนนต์เนื้อหา Scaffold แล้ว เครื่องมือที่ใช้ในการต่อเติม (I7731b)

  • แทนที่ DrawBorder ด้วย Border Modifier (Id335a)

การแก้ไขข้อบกพร่อง

  • FocusModifier เลิกใช้งานแล้วเพื่อใช้ Modifier.focus, Modifier.focusRequester, Modifier.focusObserver แทน เราเลิกใช้งาน FocusState และ FocusDetailedState แล้วเพื่อรองรับ FocusState2 (I46919, b/160822875, b/160922136)
  • เลิกใช้งาน VerticalScroller และ HoriziontalScroller แล้ว ใช้ ScrollableColumn และ ScrollableRow เพื่อสร้างประสบการณ์การใช้งานในตัวที่มีลักษณะการทำงานและพารามิเตอร์ของ Column/Row หรือ Modifier.verticalScroll และ Modifier.horizontalScroll ในองค์ประกอบของคุณเอง ในทำนองเดียวกัน เราได้เลิกใช้งาน ScrollerPosition เพื่อให้ใช้ ScrollState แทน (I400ce, b/157225838, b/149460415, b/154105299)
  • เราได้ปรับปรุง API ของ Modifier.draggable และ Modifier.scrollable นำ DragDirection ออกเพื่อใช้ Orientation แทน เราได้ปรับปรุงข้อกำหนดของรัฐสำหรับรายการที่เลื่อนได้ให้ง่ายขึ้น เราได้เปลี่ยนชื่อ ScrollableState เป็น ScrollableController (Iab63c, b/149460415)
  • เปลี่ยนชื่อเป็น runOnIdle (I83607)runOnIdleCompose
  • พร็อพเพอร์ตี้ที่มีความหมายแบบค่าเดียวจะใช้รูปแบบการเรียกในตอนนี้ เช่น ตอนนี้ 'semantics { hidden = true }' จะเขียนเป็น 'semantics { hidden() }' (Ic1afd, b/145951226, b/145955412)
  • เราได้เปลี่ยนชื่อ API สำหรับการทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น เราได้เปลี่ยนชื่อ API ทั้งหมดที่ขึ้นต้นด้วย findXYZ เป็น onNodeXYZ API ทั้งหมดที่ขึ้นต้นด้วย doXYZ จะเปลี่ยนชื่อเป็น performXYZ (I7f164)
  • เราได้เปลี่ยน Transition API ให้แสดงผล TransitionState แทนการส่ง TransitionState ไปยังองค์ประกอบย่อย ซึ่งจะทำให้ API สอดคล้องกับ API ของ animate() มากขึ้น (I24e38)
  • เพิ่มคลาสหน่วย IntBounds ซึ่งแสดงขอบเขตพิกเซลจำนวนเต็มจากการจัดวาง เราได้อัปเดต API ของ PopupPositionProvider เพื่อให้ใช้ได้แล้ว (I0d8d0, b/159596546)
  • เพิ่มแฟล็กที่ไม่บังคับใหม่ useUnmergedTree ลงในเครื่องมือค้นหาการทดสอบ (I2ce48)
  • นำ API การทดสอบขนาดที่ล้าสมัยออกแล้ว (Iba0a0)
  • นำคลาสอินไลน์ Shader ที่ ห่อหุ้มคลาสที่คาดไว้ของ NativeShader ออก เปลี่ยนชื่อ NativeShader เป็น Shader คลาสอินไลน์ Shader ที่ห่อไว้ไม่ได้เพิ่มสิ่งที่มีประโยชน์ใดๆ ให้กับพื้นผิว API และเป็นคลาสอินไลน์ ดังนั้นให้ใช้คลาส NativeShader โดยตรง (I25e4d)
  • ตอนนี้ป๊อปอัป กล่องโต้ตอบ และเมนูจะรับค่า MaterialTheme ตามบริบทแล้ว (Ia3665, b/156527485)
  • ตอนนี้ Material DropdownMenu เลื่อนได้แล้ว (Ide699)
  • นำพารามิเตอร์ทิศทางเลย์เอาต์ออกจากบล็อกการวัดของฟังก์ชัน Layout() อย่างไรก็ตาม คุณสามารถดูทิศทางเลย์เอาต์ได้ภายในโค้ดเรียกกลับผ่านออบเจ็กต์ขอบเขตการวัด (Ic7d9d)
  • ใช้ AnimationSpec แทน AnimationBuilder ใน API ระดับบนสุด เพื่ออธิบายแนวคิดของข้อกำหนดภาพเคลื่อนไหวแบบคงที่ - ปรับปรุง DSL การเปลี่ยนโดยนำข้อกำหนด Lambda ออกสำหรับ การสร้าง AnimationSpec เช่น Tween, Spring แต่จะใช้พารามิเตอร์ของตัวสร้างโดยตรงแทน - ปรับปรุงความสะดวกในการใช้งานโดยรวมของ AnimationSpec ด้วยการเปิดตัว ตัวสร้างแทนการใช้ตัวสร้าง - เปลี่ยนระยะเวลาและการหน่วงเวลาสำหรับ KeyFrames และ Tween เป็น Int ซึ่งจะ ช่วยลดการแคสต์ประเภทที่ไม่จำเป็นและการโอเวอร์โหลดเมธอด (เพื่อ รองรับทั้ง Long และ Int) (Ica0b4)
  • ตอนนี้ปุ่มสลับจะปรากฏในสถานะที่ปิดใช้เมื่อตั้งค่า enabled เป็น false (If4624, b/155941869, b/159331694)
  • เราเปลี่ยนชื่อ Modifier.tag เป็น Modifier.layoutId เพื่อไม่ให้เกิดความสับสนกับ Modifier.testTag (I995f0)
  • ตอนนี้ตำแหน่งบรรทัดการจัดแนว Int ที่แสดงผลจาก Placeable#get(AlignmentLine) จะไม่ใช่ค่าว่างแล้ว หากไม่มีเส้นแนวที่ค้นหา ระบบจะแสดงผล AlignmentLine.Unspecified (I896c5, b/158134875)
  • ปรับโครงสร้างคลาส Radius ให้เป็น คลาสอินไลน์ นำวิธีการสร้างคอมแพเนียนออก เพื่อใช้ตัวสร้างฟังก์ชัน ที่มีพารามิเตอร์เริ่มต้นเพื่อให้รัศมี ตามแกน y ตรงกับพารามิเตอร์รัศมีแกน x ที่จำเป็น

    อัปเดต DrawScope.drawRoundRect เพื่อใช้ พารามิเตอร์รัศมีเดียวแทนค่าลอยตัว 2 ค่าแยกกัน สำหรับรัศมีตามแกน x และ y (I46d1b)

  • เพื่อรวมจำนวนคลาสที่ใช้เพื่อแสดงข้อมูลการวางตำแหน่ง ให้ใช้คลาส Offset แทน PxPosition ซึ่งจะให้ประโยชน์ ของคลาสอินไลน์เพื่อใช้ประโยชน์จาก Long ในการแพ็กค่า Float 2 ค่าเพื่อแสดงออฟเซ็ต x และ y ที่แสดงเป็น Float (I3ad98)

  • แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างครั้งใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล ลบคลาส Px ทั้งหมด (I3ff33)

  • เลิกใช้งานคอมโพเนนต์ที่สลับได้แล้ว ใช้ Modifier.toggleable แทน (I35220, b/157642842)

  • แทนที่การใช้คลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I086f4)

  • แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (Id3434)

  • แทนที่การใช้งานคลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I97a5a)

  • แก้ไขปัญหาที่ onClick ไม่ได้รับการเรียกใช้สำหรับ DropdonMenuItems (I3998b, b/157673259)

  • เลิกใช้งาน MutuallyExclusiveSetItem แล้ว โปรดใช้ Modifier.selectable แทน (I02b47, b/157642842)

  • ตอนนี้เราเลิกใช้งาน TestTag แล้ว ใช้ Modifier.testTag แทน (If5110, b/157173105)

  • เคอร์เซอร์ของ TextField มีภาพเคลื่อนไหวแบบกะพริบ (Id10a7)

  • แทนที่การใช้คลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I19d02)

  • ตอนนี้ VerticalScroller มี Column ให้ใช้งานได้ทันที ตอนนี้ HorizontalScroller มี Row พร้อมใช้งานแล้ว (Ieca5d, b/157020670)

  • แทนที่การใช้คลาส Px ในคลาส Compose ต่างๆ ซึ่งเป็นส่วนหนึ่งของความพยายามในการปรับโครงสร้างขนาดใหญ่เพื่อให้ใช้เฉพาะ Dp และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (Iede0b)

  • เราเลิกเลิกการเลิกใช้งาน Modifier.semantics เพื่ออนุญาตให้ใช้กับคอมโพเนนต์ระดับสูง (I4cfdc)

  • มีการเปลี่ยนแปลง API ตัวแก้ไข DrawLayer โดยเปลี่ยนชื่อ outlineShape เป็น shape และมีค่าเริ่มต้นเป็น RectangleShape และตอนนี้ไม่สามารถเป็น Null ได้ เปลี่ยนชื่อ clipToOutline เป็น clip และนำ clipToBounds ออกเนื่องจากเหมือนกับ clip == true ที่มี RectangleShape (I7ef11, b/155075735)

  • อัปเดต API Compose ระดับสูงขึ้น ที่แสดง Canvas เพื่อ แสดง CanvasScope แทน ซึ่งจะช่วยลดความจำเป็นที่ผู้บริโภคต้องดูแลออบเจ็กต์ Paint ของตนเอง สำหรับผู้บริโภคที่ยังต้องการเข้าถึง Canvas สามารถใช้วิธีส่วนขยาย drawCanvas ซึ่งมีฟังก์ชันเรียกกลับเพื่อออกคำสั่งวาดด้วย Canvas พื้นฐาน (I80afd)

  • เลิกใช้งาน AlignmentLineOffset composable แล้ว โปรดใช้ตัวแก้ไข relativePaddingFrom() แทน นำ Composable CenterAlignmentLine ออกแล้ว (I60107)

  • มีการเปลี่ยนแปลง API ของ Lambda ที่ต่อท้าย WithConstraints ตอนนี้แทนที่จะมี 2 พารามิเตอร์ ก็จะมีขอบเขตของตัวรับซึ่งนอกเหนือจากข้อจำกัดและ layoutDirection แล้ว ยังมีพร็อพเพอร์ตี้ minWidth, maxWidth, minHeight และ maxHeight ใน Dp (I91b9a, b/149979702)

  • เพิ่มตัวแก้ไขเลย์เอาต์ defaultMinSizeConstraints ซึ่งจะตั้งค่าข้อจำกัดด้านขนาดให้กับเลย์เอาต์ที่ห่อไว้เฉพาะเมื่อไม่ได้ระบุข้อจำกัดที่เกี่ยวข้องที่เข้ามา (0 สำหรับข้อจำกัดขั้นต่ำและอนันต์สำหรับข้อจำกัดสูงสุด) (I311ea, b/150460257)

  • นำ FocusManagerAmbient ออกแล้ว ใช้ FocusModifier.requestFocus เพื่อรับโฟกัส (Ic4826)

  • สร้าง CanvasScope API ที่ห่อหุ้มออบเจ็กต์ Canvas เพื่อแสดงพื้นผิว API การวาดภาพแบบประกาศที่ไม่มีสถานะ การเปลี่ยนรูปแบบจะอยู่ในขอบเขตของตัวรับสัญญาณเอง และข้อมูลการปรับขนาดจะอยู่ในขอบเขตของขอบเขตการแทรกที่สอดคล้องกันด้วย โดยไม่จำเป็นต้องให้ผู้ใช้ดูแลออบเจ็กต์สถานะ Paint ของตนเองเพื่อกำหนดค่าการดำเนินการวาด

    เพิ่ม CanvasScopeSample รวมถึง อัปเดตแอปเดโมให้มีเดโมกราฟิกแบบประกาศ (Ifd86d)

  • เพิ่มการปรับแต่งสีเคอร์เซอร์ลงใน TextField (I6e33f)

  • ตอนนี้ TextFieldValue ที่ใช้กับ TextField จะยังคงอยู่ได้แม้จะมีการสร้างกิจกรรมใหม่เมื่อใช้ในลักษณะนี้ var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() } (I5c3ce, b/155075724)

  • เปลี่ยนชื่อ LayoutModifier2 เป็น LayoutModifier (Id29f3)

  • นำอินเทอร์เฟซ LayoutModifier ที่เลิกใช้งานแล้วออก (I2a9d6)

  • แทนที่พารามิเตอร์ focusIdentifier ของ CoreTextField/TextField ด้วย FocusNode เพื่อผสานรวมกับระบบย่อยโฟกัส (I7ea48)

  • ฟังก์ชันการวัดค่าโดยธรรมชาติใน Layout และ LayoutModifier2 มีตัวรับ IntrinsicMeasureScope แล้ว ซึ่งมี API การค้นหาค่าโดยธรรมชาติพร้อมทิศทางการจัดวางที่ส่งต่อโดยนัย (Id9945)

  • เพิ่ม Modifier.zIndex() ใหม่เพื่อควบคุมลำดับการวาดขององค์ประกอบย่อยภายในเลย์เอาต์ระดับบนสุดเดียวกัน เปลี่ยนชื่อพร็อพเพอร์ตี้ elevation ใน DrawLayerModifier เป็น shadowElevation และจะไม่ควบคุมลำดับการวาดอีกต่อไป มีการเปลี่ยนแปลงลำดับพารามิเตอร์สำหรับ DrawShadow โดยตอนนี้ค่าระดับความสูงจะเป็นพารามิเตอร์แรก และรูปร่างจะเป็นพารามิเตอร์ที่ 2 โดยมี RectangleShape เป็นค่าเริ่มต้น (I20150, b/152417501)

  • ย้าย RectangleShape จาก androidx.ui.foundation.shape.* ไปยัง androidx.ui.graphics.* (Ia74d5, b/154507984)

  • การอัปเดต API ของ TextField - ผสานรวมการเรียกกลับ onFocus และ onBlur เป็นการเรียกกลับ onFocusChange(Boolean) รายการเดียวที่มีพารามิเตอร์ (I66cd3)

  • เพิ่มพารามิเตอร์ verticalGravity และ horizontalGravity ลงใน Row และ Column ตามลำดับ (I7dc5a)

  • อัปเดต wrapContentWidth และ wrapContentHeight เพื่อให้คาดหวังการจัดแนวแนวตั้งหรือแนวนอนแทนที่จะเป็นการจัดแนวใดก็ได้ เราได้อัปเดตตัวแก้ไขแรงโน้มถ่วงให้ยอมรับการจัดแนวแนวตั้งหรือแนวนอน อัปเดตแถว คอลัมน์ และกองซ้อนให้รองรับการจัดแนวต่อเนื่องที่กำหนดเองแล้ว (Ib0728)

  • สร้าง PixelMap API เพื่อรองรับ การค้นหาข้อมูลพิกเซลจาก ImageAsset (I69ad6)

  • นำ ProvideContentColor ออก แล้วใช้ ContentColorAmbient โดยตรงกับ Providers (Iee942)

  • เปลี่ยนชื่อโมดูล ui-text-compose เป็น ui-text ui-text ตอนนี้มี Composable ของ CoreText และ CoreTextField (Ib7d47)

  • เปลี่ยนชื่อโมดูล ui-text เป็น ui-text-core (I57dec)

  • ย้าย Composable ui-framework/CoreText, CoreTextField ไปไว้ภายใต้ ui-text-compose คุณอาจต้องใส่ ui-text-compose ในโปรเจ็กต์ (I32042)

  • ปรับปรุง DrawModifier API:

    • สร้างขอบเขตตัวรับสำหรับ draw() ContentDrawScope
    • นำพารามิเตอร์ทั้งหมดใน draw() ออก
    • DrawScope มีอินเทอร์เฟซเหมือนกับ CanvasScope รุ่นก่อน
    • ContentDrawScope มีเมธอด drawContent() (Ibaced, b/152919067)
  • ตอนนี้ runOnIdleCompose และ runOnUiThread เป็นฟังก์ชันส่วนกลาง แทนที่จะเป็นเมธอดใน ComposeTestRule (Icbe8f)

  • ย้ายตัวดำเนินการมอบสิทธิ์พร็อพเพอร์ตี้ [Mutable]State ไปยังส่วนขยาย เพื่อรองรับการเพิ่มประสิทธิภาพการมอบสิทธิ์พร็อพเพอร์ตี้ Kotlin 1.4 ผู้โทรต้องเพิ่ม imports เพื่อใช้ by state { ... } หรือ by mutableStateOf(...) ต่อไป (I5312c)

  • เพิ่ม positionInParent และ boundsInParent สำหรับ LayoutCoordinates (Icacdd, b/152735784)

  • เลิกใช้งาน ColoredRect แล้ว ใช้ Box(Modifier.preferredSize(width, height).drawBackground(color)) แทน (I499fa, b/152753731)

  • เปลี่ยนชื่อ LayoutResult เป็น MeasureResult (Id8c68)

  • เพิ่ม LayoutModifier2 ซึ่งเป็น API ใหม่สำหรับการกำหนดตัวแก้ไขเลย์เอาต์ และเลิกใช้งาน LayoutModifier (If32ac)

  • แทนที่ตัวแก้ไขและตัวดำเนินการด้วยฟังก์ชันส่วนขยายของโรงงาน (I225e4)

  • ย้าย Draggable ไปยังตัวแก้ไขแล้ว (Id9b16, b/151959544)

  • เลิกใช้งาน Composable ของ ParentData แล้ว คุณควรสร้างตัวแก้ไขที่ใช้การติดตั้งอินเทอร์เฟซ ParentDataModifier หรือใช้ตัวแก้ไข LayoutTag หากเพียงต้องการติดแท็กลูกเลย์เอาต์เพื่อจดจำภายในบล็อกการวัด (I51368, b/150953183)

  • เลิกใช้งาน Composable ของ Center แล้ว ควรแทนที่ด้วยตัวแก้ไข LayoutSize.Fill + LayoutAlign.Center หรือด้วย Composable Box หรือ Stack อย่างใดอย่างหนึ่งที่มีการใช้ตัวแก้ไขที่เหมาะสม (Idf5e0)

  • เพิ่ม VectorPainter API เพื่อแทนที่ API องค์ประกอบย่อยที่มีอยู่สำหรับ กราฟิกแบบเวกเตอร์ ผลลัพธ์ขององค์ประกอบย่อย คือออบเจ็กต์ VectorPainter แทนที่จะเป็น DrawModifier เลิกใช้งาน Composable DrawVector ก่อนหน้าเพื่อใช้ VectorPainter

    เปลี่ยนชื่อ Image(Painter) API เป็น PaintBox(Painter) สร้าง Vector ที่ใช้ร่วมกันได้ซึ่งทำงานเหมือน Image ที่ใช้ร่วมกันได้ แต่ใช้ VectorAsset แทน ImageAsset (I9af9a, b/149030271)

  • เปลี่ยนชื่อ LayoutFlexible เป็น LayoutWeight เปลี่ยนชื่อพารามิเตอร์ "แน่น" เป็น "เติม" (If4738)

  • นำ RepaintBoundary ออกเพื่อใช้ DrawLayerModifier (I00aa4)

  • เราได้เปลี่ยน DrawVector จากฟังก์ชันที่ใช้ร่วมกันได้ทั่วไป เป็นการแสดงผล Modifier drawVector() ที่ จะวาดเวกเตอร์เป็นพื้นหลังของเลย์เอาต์ (I7b8e0)

  • ฟังก์ชันที่ประกอบได้ของความทึบแสงถูกแทนที่ ด้วยตัวแก้ไข drawOpacity (I5fb62)

  • แทนที่ฟังก์ชันที่ใช้ร่วมกันได้ Clip ด้วยตัวแก้ไข drawClip() DrawClipToBounds เป็นตัวแก้ไขที่สะดวก ในการใช้เมื่อคุณต้องการตัดเฉพาะขอบเขตเลเยอร์ ด้วยรูปร่างสี่เหลี่ยมผืนผ้า (If28eb)

  • แทนที่ฟังก์ชันที่ใช้คอมโพสได้ DrawShadow ด้วยตัวแก้ไข drawShadow() ตอนนี้ระบบจะวาดเงาเป็นส่วนหนึ่งของ LayerModifier แล้ว (I0317a)

  • เพิ่ม LayerModifier ซึ่งเป็นตัวแก้ไขที่อนุญาต ให้เพิ่ม RenderNode สำหรับเลย์เอาต์ ซึ่งช่วยให้ตั้งค่า การครอบตัด ความทึบ การหมุน การปรับขนาด และเงาได้ ซึ่งจะแทนที่ RepaintBoundary (I7100d, b/150774014)

  • ย้าย androidx.compose.ViewComposer ไปยัง androidx.ui.node.UiComposer นำ androidx.compose.Emittable ออกแล้ว เนื่องจากซ้ำกับ ComponentNode. androidx.compose.ViewAdapters จึงถูกนำออก ซึ่งไม่ใช่กรณีการใช้งานที่รองรับอีกต่อไป เลิกใช้งาน Compose.composeInto แล้ว โปรดใช้ setContent หรือ setViewContent แทน เลิกใช้งาน Compose.disposeComposition แล้ว โปรดใช้เมธอด dispose ใน Composition ที่ setContent ส่งคืนแทน androidx.compose.Compose.subcomposeInto ย้ายไปที่ androidx.ui.core.subcomposeInto แล้ว เปลี่ยนชื่อ ComponentNode#emitInsertAt เป็น ComponentNode#insertAt แล้ว เปลี่ยนชื่อ ComponentNode#emitRemoveAt เป็น ComponentNode#removeAt แล้ว เปลี่ยนชื่อ ComponentNode#emitMode เป็น ComponentNode#move แล้ว (Idef00)

  • สร้าง Composable ของรูปภาพเพื่อจัดการ การปรับขนาด/เลย์เอาต์ นอกเหนือจากการวาด ImageAsset ที่ระบุลงบนหน้าจอ Composable นี้ยังรองรับการวาดอินสแตนซ์ Painter ใดๆ โดยคำนึงถึงขนาดโดยธรรมชาติ รวมถึงรองรับขนาดคงที่ หรือขนาดขั้นต่ำที่กำหนด (Ibcc8f)

  • เลิกใช้งานคอมโพสฟังก์ชัน Wrap แล้ว โดยสามารถแทนที่ได้ด้วยตัวแก้ไข LayoutAlign หรือด้วย Composable ของ Stack (Ib237f)

  • WithConstraints got LayoutDirection parameter (I6d6f7)

  • ทำให้ระบบส่งต่อทิศทางเลย์เอาต์จากโหนดเลย์เอาต์หลักไปยังโหนดลูก เพิ่มตัวปรับแต่งทิศทางเลย์เอาต์แล้ว (I3d955)

  • คอมโพเนนต์ Stack รองรับทิศทางจากขวาไปซ้าย (Ic9e00)

  • นำ DrawShape ที่ใช้ร่วมกันออกแล้ว ใช้ตัวแก้ไข DrawBackground แทน (I7ceb2)

  • รองรับทิศทางจากขวาไปซ้ายในตัวแก้ไข LayoutPadding (I9e8da)

  • เพิ่ม AdapterList ซึ่งเป็นคอมโพเนนต์รายการแบบเลื่อนที่ จัดองค์ประกอบและวางรายการที่มองเห็นได้เท่านั้น ปัญหาที่ทราบในปัจจุบัน คือมีเฉพาะแนวตั้งและไม่สามารถจัดการการเปลี่ยนแปลง ในกรณีทั้งหมดของบัญชีย่อยได้ (Ib351b)

  • อัปเดตฟีเจอร์แฟล็ก ComposeFlags.COMPOSER_PARAM เป็น true ซึ่งจะเปลี่ยนกลยุทธ์การสร้างโค้ดสำหรับปลั๊กอินการเขียน ในระดับสูง การดำเนินการนี้จะทำให้ฟังก์ชัน @Composable สร้างขึ้นพร้อมกับพารามิเตอร์สังเคราะห์เพิ่มเติม ซึ่งจะส่งผ่านไปยังการเรียก @Composable ที่ตามมาเพื่อให้รันไทม์จัดการการดำเนินการได้อย่างเหมาะสม การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงที่สำคัญในระดับไบนารี แต่ควรคงความเข้ากันได้ในระดับแหล่งที่มาในการใช้งาน Compose ที่ได้รับอนุญาตทั้งหมด (I7971c)

  • เพิ่มคอมโพเนนต์ Canvas แล้ว Composable นี้ใช้พื้นที่บางส่วน (ผู้ใช้ระบุ) และช่วยให้คุณวาดโดยใช้ CanvasScope (I0d622) ได้

  • เราได้รวม Density และ DensityScope ไว้ในอินเทอร์เฟซเดียว ตอนนี้คุณใช้ DensityAmbient.current แทน ambientDensity() ได้แล้ว แทนที่จะใช้ withDensity(density) ให้ใช้ with(density) (I11cb1)

  • เปลี่ยน LayoutCoordinates เพื่อให้ providedAlignmentLines เป็น Set แทนที่จะเป็น Map และให้ LayoutCoordinates ใช้โอเปอเรเตอร์ get() แทนเพื่อดึงค่า ซึ่งจะช่วยให้ผู้แก้ไขแก้ไขค่าอย่างน้อย 1 ค่าของชุดได้ง่ายขึ้นโดยไม่ต้องสร้างคอลเล็กชันใหม่สำหรับผู้แก้ไขแต่ละราย (I0245a)

  • ตอนนี้ Scroller จะแสดงลักษณะการทำงานของการปัดแบบเนทีฟของ Android (I922af, b/147493715)

  • การปรับปรุงพื้นผิว API ของข้อจำกัด (I0fd15)