Compose Material

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

โครงสร้าง

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

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

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

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

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

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

ความคิดเห็น

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

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

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ Issue Tracker

เวอร์ชัน 1.13

เวอร์ชัน 1.13.0-alpha03

9 กันยายน 2026

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

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

  • ระบบเลิกใช้งานการโอเวอร์โหลดช่องข้อความ Material 2 ที่ยอมรับพารามิเตอร์ value, onValueChange แล้ว โปรดเปลี่ยนไปใช้โอเวอร์โหลดที่ใช้ TextFieldState เพื่อยกสถานะ (I6b841, b/556234973)

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

  • compileSdk สำหรับไลบรารี Compose ที่อัปเดตเป็น 37.1 ซึ่งจะต้องอัปเดต compileSdk สำหรับแอปและไลบรารีทั้งหมดที่ใช้ Compose (I05b0f)
  • อัปเดตคอมโพเนนต์ SecureTextField และ OutlinedSecureTextField (รวมถึงการโอเวอร์โหลด BasicSecureTextField ที่เลิกใช้งานแล้ว) เพื่อใช้ TextObfuscationMode.System เป็นโหมดการปกปิดเริ่มต้นแทน TextObfuscationMode.RevealLastTyped (I76c7e)

เวอร์ชัน 1.13.0-alpha02

26 สิงหาคม 2026

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

เวอร์ชัน 1.13.0-alpha01

12 สิงหาคม 2026

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

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

  • ตอนนี้ androidx.benchmark มีminSdk 24 รายการ (Ic2a85)

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

  • การเริ่มต้นระดับไฟล์ที่เพิ่มประสิทธิภาพของmaterial พร็อพเพอร์ตี้คลาสค่าระดับบนสุดโดยใช้ตัวรับแบบไดนามิก (Iae591)
  • การเริ่มต้นออบเจ็กต์คู่ที่เพิ่มประสิทธิภาพของคลาส material value (FabPosition และ Strings) โดยใช้ตัวรับแบบไดนามิก (I0c7c0)
  • นำข้อกำหนดสำหรับ compileSdk 37 ออก (If78b4)

เวอร์ชัน 1.12

เวอร์ชัน 1.12.1

9 กันยายน 2026

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

เวอร์ชัน 1.12.0

12 สิงหาคม 2026

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

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

เวอร์ชัน 1.12.0-rc01

29 กรกฎาคม 2026

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

เวอร์ชัน 1.12.0-beta02

1 กรกฎาคม 2026

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

เวอร์ชัน 1.12.0-beta01

17 มิถุนายน 2026

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

เวอร์ชัน 1.12.0-alpha03

19 พฤษภาคม 2026

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

เวอร์ชัน 1.12.0-alpha02

6 พฤษภาคม 2026

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

เวอร์ชัน 1.12.0-alpha01

22 เมษายน 2026

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

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

  • เปลี่ยน VelocityTracker เพื่อใช้การติดตั้งใช้งานที่ Android Framework จัดเตรียมให้ (กำหนดค่าได้ด้วย AndroidComposeUiFlags.isFrameworkVelocityTrackerEnabled) (Ibc7e2, b/359962905)

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

  • อัปเดต Compose compileSdk เป็น API 37 ซึ่งหมายความว่าเมื่อใช้ Compose จะต้องใช้ AGP เวอร์ชัน 9.2.0 เป็นอย่างน้อย (Id45cd, b/413674743)

เวอร์ชัน 1.11

เวอร์ชัน 1.11.4

1 กรกฎาคม 2026

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

เวอร์ชัน 1.11.3

17 มิถุนายน 2026

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

เวอร์ชัน 1.11.2

19 พฤษภาคม 2026

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

เวอร์ชัน 1.11.1

6 พฤษภาคม 2026

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

เวอร์ชัน 1.11.0

22 เมษายน 2026

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

เวอร์ชัน 1.11.0-rc01

8 เมษายน 2026

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

เวอร์ชัน 1.11.0-beta02

25 มีนาคม 2026

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

เวอร์ชัน 1.11.0-beta01

11 มีนาคม 2026

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

เวอร์ชัน 1.11.0-alpha06

25 กุมภาพันธ์ 2026

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

เวอร์ชัน 1.11.0-alpha05

11 กุมภาพันธ์ 2026

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

เวอร์ชัน 1.11.0-alpha04

28 มกราคม 2026

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

เวอร์ชัน 1.11.0-alpha03

14 มกราคม 2026

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

เวอร์ชัน 1.11.0-alpha02

17 ธันวาคม 2025

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

เวอร์ชัน 1.11.0-alpha01

3 ธันวาคม 2025

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

เวอร์ชัน 1.10

เวอร์ชัน 1.10.6

25 มีนาคม 2026

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

เวอร์ชัน 1.10.5

11 มีนาคม 2026

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

เวอร์ชัน 1.10.4

25 กุมภาพันธ์ 2026

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

เวอร์ชัน 1.10.3

11 กุมภาพันธ์ 2026

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

เวอร์ชัน 1.10.2

28 มกราคม 2026

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

เวอร์ชัน 1.10.1

14 มกราคม 2026

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

เวอร์ชัน 1.10.0

3 ธันวาคม 2025

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

เวอร์ชัน 1.10.0-rc01

19 พฤศจิกายน 2025

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

เวอร์ชัน 1.10.0-beta02

5 พฤศจิกายน 2025

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

เวอร์ชัน 1.10.0-beta01

22 ตุลาคม 2025

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

เวอร์ชัน 1.10.0-alpha05

8 ตุลาคม 2025

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

เวอร์ชัน 1.10.0-alpha04

24 กันยายน 2025

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

เวอร์ชัน 1.10.0-alpha03

10 กันยายน 2025

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

เวอร์ชัน 1.10.0-alpha02

27 สิงหาคม 2025

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

เวอร์ชัน 1.10.0-alpha01

13 สิงหาคม 2025

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

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

เวอร์ชัน 1.9

เวอร์ชัน 1.9.5

19 พฤศจิกายน 2025

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

เวอร์ชัน 1.9.4

22 ตุลาคม 2025

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

เวอร์ชัน 1.9.3

8 ตุลาคม 2025

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

เวอร์ชัน 1.9.2

24 กันยายน 2025

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

เวอร์ชัน 1.9.1

10 กันยายน 2025

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

เวอร์ชัน 1.9.0

13 สิงหาคม 2025

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

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

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

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

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

  • โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
  • API กล่องตกแต่งช่องข้อความไม่ใช่เวอร์ชันทดลองอีกต่อไป (I7480f)

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

  • ExposedDropdownMenu เข้ากันได้แบบไบนารีกับเวอร์ชันเก่า (I133f7)

เวอร์ชัน 1.9.0-rc01

30 กรกฎาคม 2025

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

เวอร์ชัน 1.9.0-beta03

16 กรกฎาคม 2025

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

เวอร์ชัน 1.9.0-beta02

2 กรกฎาคม 2025

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

เวอร์ชัน 1.9.0-beta01

18 มิถุนายน 2025

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

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

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

เวอร์ชัน 1.9.0-alpha04

4 มิถุนายน 2025

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

เวอร์ชัน 1.9.0-alpha03

20 พฤษภาคม 2025

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

เวอร์ชัน 1.9.0-alpha02

7 พฤษภาคม 2025

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

เวอร์ชัน 1.9.0-alpha01

23 เมษายน 2025

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

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

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

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

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

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

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

เวอร์ชัน 1.8

เวอร์ชัน 1.8.3

18 มิถุนายน 2025

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

เวอร์ชัน 1.8.2

20 พฤษภาคม 2025

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

เวอร์ชัน 1.8.1

7 พฤษภาคม 2025

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

เวอร์ชัน 1.8.0

23 เมษายน 2025

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

เวอร์ชัน 1.8.0-rc03

9 เมษายน 2025

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

เวอร์ชัน 1.8.0-rc02

26 มีนาคม 2025

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

เวอร์ชัน 1.8.0-rc01

12 มีนาคม 2025

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

เวอร์ชัน 1.8.0-beta03

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

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

เวอร์ชัน 1.8.0-beta02

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

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

เวอร์ชัน 1.8.0-beta01

29 มกราคม 2025

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

เวอร์ชัน 1.8.0-alpha08

15 มกราคม 2025

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

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

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

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

  • เปิดรับ sheetGesturesEnabled ใน ModalBottomSheetLayout (I3f032, b/329543529)

เวอร์ชัน 1.8.0-alpha07

11 ธันวาคม 2024

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

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

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

เวอร์ชัน 1.8.0-alpha06

13 พฤศจิกายน 2024

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

เวอร์ชัน 1.8.0-alpha05

30 ตุลาคม 2024

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

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

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

เวอร์ชัน 1.8.0-alpha04

16 ตุลาคม 2024

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

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

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

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

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

เวอร์ชัน 1.8.0-alpha02

18 กันยายน 2024

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

เวอร์ชัน 1.8.0-alpha01

4 กันยายน 2024

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

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

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

เวอร์ชัน 1.7

เวอร์ชัน 1.7.8

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

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

เวอร์ชัน 1.7.7

29 มกราคม 2025

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

เวอร์ชัน 1.7.6

11 ธันวาคม 2024

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

เวอร์ชัน 1.7.5

30 ตุลาคม 2024

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

เวอร์ชัน 1.7.4

16 ตุลาคม 2024

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

เวอร์ชัน 1.7.2

18 กันยายน 2024

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

เวอร์ชัน 1.7.1

10 กันยายน 2024

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

เวอร์ชัน 1.7.0

4 กันยายน 2024

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

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

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

เวอร์ชัน 1.7.0-rc01

21 สิงหาคม 2024

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

เวอร์ชัน 1.7.0-beta07

7 สิงหาคม 2024

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

เวอร์ชัน 1.7.0-beta06

24 กรกฎาคม 2024

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

เวอร์ชัน 1.7.0-beta05

10 กรกฎาคม 2024

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

เวอร์ชัน 1.7.0-beta04

26 มิถุนายน 2024

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

เวอร์ชัน 1.7.0-beta03

12 มิถุนายน 2024

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

เวอร์ชัน 1.7.0-beta02

29 พฤษภาคม 2024

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

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

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

เวอร์ชัน 1.7.0-beta01

14 พฤษภาคม 2024

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

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

  • อัปเดต API สำหรับรับลิงก์ที่มีธีม Material ในข้อความ กล่าวคือ เราได้นำวิธีการต่างๆ ออกจากTextDefaultsสำหรับการสร้างLinkAnnotationsที่มีธีมและแยกวิเคราะห์ HTML ด้วยลิงก์ที่มีธีม แต่ได้เพิ่มTextLinkStylesคลาสที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Text 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)
  • เราได้เลื่อนระดับชีตด้านล่างมาตรฐานจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว นำตัวสร้างที่เลิกใช้งานแล้วออกแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ Tween ตามหลักเกณฑ์แล้ว (I3c1a8, b/278692145, b/261409034)
  • เราได้เลื่อนระดับชีตด้านล่างแบบโมดัลจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว นำตัวสร้างที่เลิกใช้งานแล้วออกแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนด tween ตามหลักเกณฑ์แล้ว (Ic53f4, b/278692145, b/266780235, b/261409034)

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

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

เวอร์ชัน 1.7.0-alpha02

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

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

เวอร์ชัน 1.7.0-alpha01

24 มกราคม 2024

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

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

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

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

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

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

เวอร์ชัน 1.6

เวอร์ชัน 1.6.8

12 มิถุนายน 2024

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

เวอร์ชัน 1.6.7

1 พฤษภาคม 2024

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

เวอร์ชัน 1.6.6

17 เมษายน 2024

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

เวอร์ชัน 1.6.5

3 เมษายน 2024

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

เวอร์ชัน 1.6.4

20 มีนาคม 2024

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

เวอร์ชัน 1.6.3

6 มีนาคม 2024

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

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

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

เวอร์ชัน 1.6.2

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

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

เวอร์ชัน 1.6.1

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

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

เวอร์ชัน 1.6.0

24 มกราคม 2024

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

เวอร์ชัน 1.6.0-rc01

10 มกราคม 2024

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

เวอร์ชัน 1.6.0-beta03

13 ธันวาคม 2023

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

เวอร์ชัน 1.6.0-beta02

29 พฤศจิกายน 2023

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

เวอร์ชัน 1.6.0-beta01

15 พฤศจิกายน 2023

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

เวอร์ชัน 1.6.0-alpha08

18 ตุลาคม 2023

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

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

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

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

เวอร์ชัน 1.6.0-alpha07

4 ตุลาคม 2023

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

  • การอัปเดตทรัพยากร Dependency

เวอร์ชัน 1.6.0-alpha06

20 กันยายน 2023

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

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

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

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

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

เวอร์ชัน 1.6.0-alpha05

6 กันยายน 2023

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

ฟีเจอร์ใหม่

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

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

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

เวอร์ชัน 1.6.0-alpha04

23 สิงหาคม 2023

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

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

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

เวอร์ชัน 1.6.0-alpha03

9 สิงหาคม 2023

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

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

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

เวอร์ชัน 1.6.0-alpha02

26 กรกฎาคม 2023

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

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

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

เวอร์ชัน 1.6.0-alpha01

21 มิถุนายน 2023

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

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

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

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

  • เราได้เลิกใช้งาน Swipeable API ของ 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 จะแสดงเป็นค่าลอยตัวแล้ว 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 จะแสดงเป็นค่าลอยตัวแล้ว 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)
  • คืนค่า Getter พร็อพเพอร์ตี้ 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)

การอัปเดตทรัพยากร Dependency

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

เวอร์ชัน 1.4.0-alpha02

9 พฤศจิกายน 2022

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

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

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

เวอร์ชัน 1.4.0-alpha01

24 ตุลาคม 2022

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

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

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

เวอร์ชัน 1.3

เวอร์ชัน 1.3.1

9 พฤศจิกายน 2022

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

เวอร์ชัน 1.3.0

24 ตุลาคม 2022

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

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

การเปลี่ยนแปลงลักษณะการทำงานที่ส่งผลกับส่วนอื่นในระบบ

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

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

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

เวอร์ชัน 1.3.0-rc01

5 ตุลาคม 2022

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

เวอร์ชัน 1.3.0-beta03

21 กันยายน 2022

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

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

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

เวอร์ชัน 1.3.0-beta02

7 กันยายน 2022

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

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

เวอร์ชัน 1.3.0-beta01

24 สิงหาคม 2022

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

การเปลี่ยนแปลงลักษณะการทำงานที่ส่งผลกับส่วนอื่นในระบบ

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

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

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

เวอร์ชัน 1.3.0-alpha03

10 สิงหาคม 2022

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

เวอร์ชัน 1.3.0-alpha02

27 กรกฎาคม 2022

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

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

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

เวอร์ชัน 1.3.0-alpha01

29 มิถุนายน 2022

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

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

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

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

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

เวอร์ชัน 1.2

เวอร์ชัน 1.2.1

10 สิงหาคม 2022

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

เวอร์ชัน 1.2.0

27 กรกฎาคม 2022

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

เวอร์ชัน 1.2.0-rc03

29 มิถุนายน 2022

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

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

เวอร์ชัน 1.2.0-rc02

22 มิถุนายน 2022

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

เวอร์ชัน 1.2.0-rc01

15 มิถุนายน 2022

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

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

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

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

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

เวอร์ชัน 1.2.0-beta03

1 มิถุนายน 2022

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

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

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

เวอร์ชัน 1.2.0-beta02

18 พฤษภาคม 2022

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

เวอร์ชัน 1.2.0-beta01

11 พฤษภาคม 2022

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

ฟีเจอร์ใหม่

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

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

  • เปลี่ยนชื่อ 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)
  • การอัปเดต Surface API ของ Material 2 ซึ่งเพิ่มฟังก์ชันที่โอเวอร์โหลดเพิ่มเติมสำหรับ Surface ที่เลือกได้และสลับได้ (Ifcca5)

เวอร์ชัน 1.2.0-alpha05

9 มีนาคม 2022

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

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

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

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

การอัปเดตทรัพยากร Dependency

  • ตอนนี้ขึ้นอยู่กับ Kotlin 1.6.10

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

  • ตอนนี้ ModalBottomSheetState มีธง isSkipHalfExpanded แล้ว โดยจะตั้งค่าผ่านตัวสร้างหรืออัปเดตในภายหลังได้โดยตั้งค่าพร็อพเพอร์ตี้ ModalBottomSheetState's 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 และทําให้มีลักษณะการทํางานที่สอดคล้องกันหากคุณใช้ทั้ง View และ Compose การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจได้ว่าเมื่อคุณสร้าง UI โดยใช้คอมโพเนนต์ Material ของ Compose ระบบจะปฏิบัติตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษของเป้าหมายการสัมผัส
  • การรองรับแถบนำทางด้านข้างที่เสถียร
  • เปลี่ยน API แบบทดลองก่อนหน้านี้หลายรายการให้เป็น API ที่เสถียร
  • การรองรับ Kotlin เวอร์ชันใหม่กว่า

เวอร์ชัน 1.1.0-rc03

26 มกราคม 2022

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

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

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

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

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

เวอร์ชัน 1.1.0-rc01

15 ธันวาคม 2021

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

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

เวอร์ชัน 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 ซึ่งให้การควบคุมระดับต่ำสำหรับค่าสถานะที่ป๊อปอัปส่งไปยัง 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 ที่จัดแนวไว้ด้านล่างและแอป Catalog สาธิต (I3cffc)
  • ตอนนี้กล่องโต้ตอบจะทําตามลักษณะการกําหนดขนาดของแพลตฟอร์มแล้ว ตั้งค่า usePlatformDefaultWidth เป็น false เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
  • เพิ่มการสาธิตแถบนำทางลงในแอปแคตตาล็อก (I04960)
  • เพิ่มการสาธิตป้ายลงในแอปแคตตาล็อก (If285d)

รุ่น 1.0

เวอร์ชัน 1.0.5

3 พฤศจิกายน 2021

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

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

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

เวอร์ชัน 1.0.4

13 ตุลาคม 2021

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

การอัปเดตทรัพยากร Dependency

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

เวอร์ชัน 1.0.3

29 กันยายน 2021

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

การอัปเดตทรัพยากร Dependency

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

เวอร์ชัน 1.0.2

1 กันยายน 2021

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

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

เวอร์ชัน 1.0.1

4 สิงหาคม 2021

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

การอัปเดตทรัพยากร Dependency

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

เวอร์ชัน 1.0.0

28 กรกฎาคม 2021

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

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

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

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

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

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

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

เวอร์ชัน 1.0.0-rc02

14 กรกฎาคม 2021

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

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

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

เวอร์ชัน 1.0.0-rc01

1 กรกฎาคม 2021

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

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

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

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

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

เวอร์ชัน 1.0.0-beta09

16 มิถุนายน 2021

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

กฎมีไว้ทำอะไร

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

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

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

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

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

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

เวอร์ชัน 1.0.0-beta08

2 มิถุนายน 2021

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

ฟีเจอร์ใหม่

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

  • การเปลี่ยนแปลงที่ทำให้เกิดข้อผิดพลาด: ตอนนี้การ์ดจะใช้การคลิก ทำให้การคลิกที่เพิ่มผ่าน Card(Modifier.clickable) ไม่มีการดำเนินการใดๆ โปรดใช้การโอเวอร์โหลดการทดลองใหม่ของการ์ดที่ยอมรับ onClick (Ia8744, b/183775620)
    • เพิ่มการ์ดใหม่ที่โอเวอร์โหลดซึ่งจัดการการคลิกและฟังก์ชันที่คลิกได้อื่นๆ ได้แก่ ตัวบ่งชี้, interactionSource, เปิด/ปิด เราไม่สามารถใช้การ์ดปกติที่คลิกไม่ได้กับ Modifier.clickable เนื่องจากในกรณีดังกล่าว การ์ดจะไม่ตัดการระบุการกระเพื่อม
  • การเปลี่ยนแปลงพฤติกรรม: ตอนนี้ 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 จะโหลดอยู่ เช่น เมื่อไปยังส่วนต่างๆ ระหว่างหน้าจอ การเปลี่ยนแปลงนี้จะไม่ส่งผลต่อ 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 เป็น "เริ่ม" ให้สอดคล้องกับแถว (Ib2dc7)
  • เพิ่มโมดูลใหม่และ UI ตัวยึดตำแหน่งสำหรับแคตตาล็อก Material ของ Compose ซึ่งปัจจุบันซ้อนอยู่ในเดโมการทดสอบการผสานรวมที่มีอยู่ (Idfcb3)
  • androidx.compose.ui:ui ไม่ได้ขึ้นอยู่กับ AppCompat หรือ Fragment อีกต่อไป หากคุณใช้ ComposeView ในแอปพลิเคชัน และใช้ Fragment และ/หรือ AppCompat โปรดตรวจสอบว่าคุณใช้ AppCompat 1.3 ขึ้นไป / Fragment 1.3 ขึ้นไป เนื่องจากคุณต้องใช้เวอร์ชันเหล่านี้เพื่อตั้งค่าวงจรและเจ้าของสถานะที่บันทึกไว้ที่จำเป็นสำหรับ ComposeView อย่างถูกต้อง (I1d6fa, b/161814404)

เวอร์ชัน 1.0.0-beta01

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

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

นี่คือ Compose 1.0.0 เวอร์ชันเบต้าที่เปิดตัวเป็นครั้งแรก

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

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

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

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

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

  • นำ TargetAnimation API ออกแล้ว (If47d1, b/177457083)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha12

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

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

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

  • ตอนนี้ Modifier.pointerInput ต้องใช้คีย์ remember เพื่อระบุ เมื่อควรเริ่มโครูทีนการตรวจหาอินพุตของเคอร์เซอร์ใหม่สำหรับ การอ้างอิงใหม่ (I849cd)
  • มีการทำเครื่องหมาย BottomDrawerLayout และ ListItem เป็น @ExperimentalMaterialApi (Id766e)
  • เพิ่ม PaddingValues.Absolute แล้ว และสามารถใช้ใน API ที่ยอมรับ PaddingValues ได้ (Ia5f30)
  • เลิกใช้งาน onImeActionPerformed แล้ว ให้ใช้ KeyboardActions แทน (If0bbd, b/179071523)
  • เราได้เปลี่ยนชื่อ ImagePainter เป็น BitmapPainter เพื่อให้สอดคล้องกับ VectorPainter มากขึ้น และเพื่อให้เป็นไปตามหลักเกณฑ์การตั้งชื่อของ ImageBitmap และ ImageVector (Iba381, b/174565889)
  • ตอนนี้ Animatable.snapTo และ Animatable.stop เป็นฟังก์ชันระงับแล้ว (If4288)
  • ComponentActivity.setContent ย้ายไปอยู่ที่ androidx.activity.compose.setContent ในโมดูล androidx.activity:activity-compose แล้ว (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 เดิมแอมเบียนต์ชื่อ AmbientFoo ตอนนี้คอมโพสิชันโลคัลชื่อ LocalFoo (I2d55d)
  • ย้ายการเลือกไปที่มูลนิธิแล้ว (I7892b)
  • เช่นเดียวกับที่เราเคยนำ state { 0 } ที่ใช้ร่วมกันได้ออกไปก่อนหน้านี้ และตอนนี้เรากำลังส่งเสริมการใช้งานอย่าง remember { mutableStateOf(0) } เราจะนำ savedInstanceState { 0 } ที่ใช้ร่วมกันได้ออก คุณควรใช้ rememberSaveable { mutableStateOf(0) } แทน และระบบจะบันทึกและกู้คืนโดยอัตโนมัติหากจัดเก็บประเภทที่ใช้ภายใน MutableState ไว้ใน Bundle ได้ หากก่อนหน้านี้คุณส่งออบเจ็กต์โปรแกรมประหยัดที่กำหนดเอง ตอนนี้คุณต้องใช้การโอเวอร์โหลดใหม่ของ rememberSaveable ซึ่งมีพารามิเตอร์ stateSaver การใช้งานจะมีลักษณะดังนี้ val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)
  • เพิ่ม ProgressBarRangeInfo.Indeterminate เพื่อทำเครื่องหมายแถบความคืบหน้าที่ไม่แน่นอนเพื่อการช่วยเหลือพิเศษ (I6fe05)
  • เราเลิกใช้งาน @ComposableContract แล้วเพื่อเปลี่ยนไปใช้คำอธิบายประกอบที่เจาะจงมากขึ้น 3 รายการ

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

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

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

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

  • เปลี่ยนพารามิเตอร์ text และ icon ของ Tab และพารามิเตอร์ 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 เพิ่มเมธอดจาก Factory createEmptyComposeRule() ซึ่งจะแสดงผล ComposeTestRule และไม่เปิดใช้กิจกรรมให้คุณ ใช้เมื่อต้องการเปิดใช้งานกิจกรรมระหว่างการทดสอบ เช่น ใช้ ActivityScenario.launch (I9d782, b/174472899)

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

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

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

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

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

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

  • ตอนนี้ Surface สามารถมีเลย์เอาต์ย่อยหลายรายการได้แล้ว (I66a92, b/144488459)

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

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

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

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

  • ตอนนี้คุณสร้างองค์ประกอบที่คลิกได้ เปิด/ปิดได้ และเลือกได้ภายนอก Composition ได้แล้ว (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) วิธีการจากโรงงานใหม่สำหรับขอบเขตของ 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() = ...
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha08

2 ธันวาคม 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha07

11 พฤศจิกายน 2020

androidx.compose.material:material:1.0.0-alpha07, androidx.compose.material:material-icons-core:1.0.0-alpha07 และ androidx.compose.material:material-icons-extended:1.0.0-alpha07 จะเปิดตัว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตต่อไปนี้

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

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

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

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

เวอร์ชัน 1.0.0-alpha06

28 ตุลาคม 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha05

14 ตุลาคม 2020

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

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha04

1 ตุลาคม 2020

androidx.compose.material:material:1.0.0-alpha04, androidx.compose.material:material-icons-core:1.0.0-alpha04 และ androidx.compose.material:material-icons-extended:1.0.0-alpha04 จะเปิดตัว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตต่อไปนี้

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

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

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

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

เวอร์ชัน 1.0.0-alpha03

16 กันยายน 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha02

2 กันยายน 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha01

26 สิงหาคม 2020

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

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

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

เวอร์ชัน 0.1.0-dev

เวอร์ชัน 0.1.0-dev17

19 สิงหาคม 2020

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

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

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

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

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

เวอร์ชัน 0.1.0-dev16

5 สิงหาคม 2020

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

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

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

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

  • เลิกใช้งาน OnChildPositioned แล้ว ให้ใช้ OnPositioned ในองค์ประกอบย่อยแทน (I87f95, b/162109766)
  • แก้ไข API แบบกว้าง (I077bc)
    1. นำอินเทอร์เฟซ OffsetBase ที่ไม่ได้ใช้ออก
    2. จัดแนวคลาส Offset และ IntOffset ให้มี API ที่สอดคล้องกัน
    3. เปลี่ยนชื่อ IntOffset.Origin เป็น IntOffset.Zero เพื่อให้สอดคล้องกับ Offset API
    4. ย้ายเมธอด nativeCanvas ออกจากอินเทอร์เฟซ Canvas เพื่อรองรับผู้ใช้ในการสร้างอินสแตนซ์ Canvas ของตนเอง
    5. สร้างคลาส EmptyCanvas ที่เป็น Stub เพื่อทำการรีแฟคเตอร์ DrawScope ให้เป็นพารามิเตอร์ที่ไม่ใช่ Null แทน lateinit และตรวจสอบว่าฟิลด์ไม่ใช่ Null
    6. เปลี่ยนชื่อ Enum ของ ClipOp ให้เป็น Pascal Case
    7. เปลี่ยนชื่อ Enum FilterQuality ให้เป็น Pascal Case
    8. เปลี่ยนชื่อ enum StrokeJoin ให้เป็น Pascal Case
    9. เปลี่ยนชื่อ Enum ของ PointMode ให้เป็น Pascal Case
    10. เปลี่ยนชื่อการแจงนับ PaintingStyle ให้เป็น Pascal Case
    11. เปลี่ยนชื่อ enum ของ PathFillType ให้เป็น Pascal Case
    12. เปลี่ยนชื่อการแจงนับ StrokeCap เป็น Pascal Case
    13. อัปเดตการใช้งาน DrawCache เพื่อไม่ให้ใช้พารามิเตอร์ lateinit อีกต่อไป
    14. อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบเลื่อนเวลา สำหรับพารามิเตอร์ภายใน fillPaint และ strokePaint อีกต่อไป
    15. อัปเดต Composable ของรูปภาพเพื่อหลีกเลี่ยงการใช้ Box เพื่อลดค่าใช้จ่าย
    16. อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
    17. อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ แต่ละคำสั่งเส้นทาง
    18. อัปเดตองค์ประกอบย่อยของเวกเตอร์เพื่อนำการตรวจสอบแบบมีเงื่อนไขที่ซ้ำซ้อนออก สำหรับการตรวจสอบความเท่ากัน เนื่องจาก Compose จัดการ การตรวจสอบดังกล่าวอยู่แล้ว
    19. เลิกใช้งานเมธอดตัวสร้าง Rect Companion เพื่อใช้ตัวสร้างฟังก์ชันแทน
    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 เพื่อให้ระบุชุดแบบอักษรเริ่มต้นที่จะใช้กับ TextStyle ที่ระบุทั้งหมดซึ่งไม่ได้ตั้งค่าชุดแบบอักษรไว้ (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 แยกกันแล้ว มีการเปลี่ยนชื่อหรือจัดเรียงพารามิเตอร์บางรายการในปุ่มใหม่ (I54b5a)

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

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

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

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

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

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

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

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

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

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

  • เพิ่มคอมโพเนนต์ Scaffold Material แล้ว การติดตั้งใช้งาน Scaffold (I7731b)

  • แทนที่ DrawBorder ด้วยตัวแก้ไขเส้นขอบ (Id335a)

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

  • เลิกใช้งาน FocusModifier แล้วเพื่อใช้ Modifier.focus, Modifier.focusRequester, Modifier.focusObserver แทน เราเลิกใช้งาน FocusState และ FocusDetailedState แล้วเพื่อเปลี่ยนไปใช้ FocusState2 (I46919, b/160822875, b/160922136)
  • เลิกใช้งาน VerticalScroller และ HoriziontalScroller แล้ว ใช้ ScrollableColumn และ ScrollableRow เพื่อสร้างประสบการณ์การใช้งานในตัวที่มีลักษณะการทำงานและพารามิเตอร์ของ Column/Row หรือ Modifier.verticalScroll และ Modifier.horizontalScroll ในองค์ประกอบของคุณเอง ในทำนองเดียวกัน เราได้เลิกใช้งาน ScrollerPosition เพื่อให้ใช้ ScrollState' แทน (I400ce, b/157225838, b/149460415, b/154105299)
  • เราได้ปรับปรุง API ของ Modifier.draggable และ Modifier.scrollable ใหม่ เราได้นำ DragDirection ออกเพื่อใช้ Orientation แทน เราได้ปรับปรุงข้อกำหนดของรัฐสำหรับรายการที่เลื่อนได้ เปลี่ยนชื่อ ScrollableState เป็น ScrollableController (Iab63c, b/149460415)
  • runOnIdleComposeเปลี่ยนชื่อเป็น runOnIdle (I83607)
  • ตอนนี้พร็อพเพอร์ตี้เชิงความหมายแบบค่าเดียวใช้รูปแบบการเรียก เช่น ตอนนี้เขียน "semantics { hidden = true }" เป็น "semantics { hidden() }" (Ic1afd, b/145951226, b/145955412)
  • เราได้เปลี่ยนชื่อ API การทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น เปลี่ยนชื่อ API ทั้งหมดที่ขึ้นต้นด้วย findXYZ เป็น onNodeXYZ เราได้เปลี่ยนชื่อ API ทั้งหมดที่ขึ้นต้นด้วย doXYZ เป็น performXYZ (I7f164)
  • มีการเปลี่ยนแปลง Transition API เพื่อให้แสดงผล TransitionState แทนการส่ง TransitionState ไปยังองค์ประกอบย่อย ซึ่งจะทำให้ API สอดคล้องกับ 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 โดยรวมด้วยการเปิดตัว ตัวสร้างแทนการใช้ตัวสร้าง - เปลี่ยนระยะเวลาและการหน่วงเวลาสำหรับ KeyFrame และ Tween เป็น Int ซึ่งจะ ช่วยลดการแคสต์ประเภทที่ไม่จำเป็นและการโอเวอร์โหลดเมธอด (เพื่อ รองรับทั้ง Long และ Int) (Ica0b4)
  • ปุ่มสลับจะปรากฏในสถานะที่ปิดใช้เมื่อตั้งค่า enabled เป็น false (If4624, b/155941869, b/159331694)
  • เราเปลี่ยนชื่อ Modifier.tag เป็น Modifier.layoutId เพื่อไม่ให้สับสนกับ Modifier.testTag (I995f0)
  • ตอนนี้ตำแหน่ง Int ของเส้นการจัดแนวที่ส่งกลับจาก Placeable#get(AlignmentLine) จะไม่ใช่ค่าว่างแล้ว หากไม่มีบรรทัดการจัดแนวที่ค้นหา ระบบจะแสดงผล AlignmentLine.Unspecified (I896c5, b/158134875)
  • ปรับโครงสร้างคลาส Radius ให้เป็น คลาสอินไลน์ นำวิธีการสร้างองค์ประกอบเสริมออก เพื่อใช้ตัวสร้างฟังก์ชัน ที่มีพารามิเตอร์เริ่มต้นเพื่อให้รัศมี ตามแกน y ตรงกับพารามิเตอร์รัศมีแกน x ที่จำเป็น

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • [Mutable]State property delegate operators moved to extensions to support Kotlin 1.4 property delegate optimizations. ผู้โทรต้องเพิ่ม imports เพื่อใช้ by state { ... } หรือ by mutableStateOf(...) ต่อไป (I5312c)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • WithConstraints มีพารามิเตอร์ LayoutDirection (I6d6f7)

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

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

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

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

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

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

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

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

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

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

  • การปรับปรุงแพลตฟอร์ม API ของข้อจํากัด (I0fd15)