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

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

โครงสร้าง

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

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

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

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

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

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

Groovy

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

ความคิดเห็น

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

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

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

เวอร์ชัน 1.8

เวอร์ชัน 1.8.0-alpha06

13 พฤศจิกายน 2024

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

เวอร์ชัน 1.8.0-alpha05

30 ตุลาคม 2024

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

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

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

เวอร์ชัน 1.8.0-alpha04

16 ตุลาคม 2024

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

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

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

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

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

เวอร์ชัน 1.8.0-alpha02

18 กันยายน 2024

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

เวอร์ชัน 1.8.0-alpha01

4 กันยายน 2024

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

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

  • เพิ่ม NavGraphBuilder.bottomSheet Builder ใหม่เพื่อสร้าง BottomSheet ด้วย Safe Args ((I28589, I777db, b/351858980))

เวอร์ชัน 1.7

เวอร์ชัน 1.7.5

30 ตุลาคม 2024

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

เวอร์ชัน 1.7.4

16 ตุลาคม 2024

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

เวอร์ชัน 1.7.2

18 กันยายน 2024

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

เวอร์ชัน 1.7.1

10 กันยายน 2024

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

เวอร์ชัน 1.7.0

4 กันยายน 2024

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

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

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

เวอร์ชัน 1.7.0-rc01

21 สิงหาคม 2024

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

เวอร์ชัน 1.7.0-beta07

7 สิงหาคม 2024

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

เวอร์ชัน 1.7.0-beta06

24 กรกฎาคม 2024

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

เวอร์ชัน 1.7.0-beta05

10 กรกฎาคม 2024

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

เวอร์ชัน 1.7.0-beta04

26 มิถุนายน 2024

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

เวอร์ชัน 1.7.0-beta03

12 มิถุนายน 2024

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

เวอร์ชัน 1.7.0-beta02

29 พฤษภาคม 2024

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

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

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

เวอร์ชัน 1.7.0-beta01

14 พฤษภาคม 2024

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

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

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

เวอร์ชัน 1.7.0-alpha08

1 พฤษภาคม 2024

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

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

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

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

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

เวอร์ชัน 1.7.0-alpha07

17 เมษายน 2024

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

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

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

เวอร์ชัน 1.7.0-alpha06

3 เมษายน 2024

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

ประกาศ

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

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

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

เวอร์ชัน 1.7.0-alpha05

20 มีนาคม 2024

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

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

  • นำการแจ้งว่าไม่เหมาะสม ScaffoldSubcomposeInMeasureFix ออกแล้ว (I67363)

เวอร์ชัน 1.7.0-alpha04

6 มีนาคม 2024

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

ฟีเจอร์ใหม่

เวอร์ชัน 1.7.0-alpha03

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

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

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

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

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

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

เวอร์ชัน 1.7.0-alpha02

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

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

เวอร์ชัน 1.7.0-alpha01

24 มกราคม 2024

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

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

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

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

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

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

เวอร์ชัน 1.6

เวอร์ชัน 1.6.8

12 มิถุนายน 2024

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

เวอร์ชัน 1.6.7

1 พฤษภาคม 2024

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

เวอร์ชัน 1.6.6

17 เมษายน 2024

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

เวอร์ชัน 1.6.5

3 เมษายน 2024

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

เวอร์ชัน 1.6.4

20 มีนาคม 2024

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

เวอร์ชัน 1.6.3

6 มีนาคม 2024

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

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

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

เวอร์ชัน 1.6.2

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

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

เวอร์ชัน 1.6.1

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

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

เวอร์ชัน 1.6.0

24 มกราคม 2024

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

เวอร์ชัน 1.6.0-rc01

10 มกราคม 2024

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

เวอร์ชัน 1.6.0-beta03

13 ธันวาคม 2023

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

เวอร์ชัน 1.6.0-beta02

29 พฤศจิกายน 2023

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

เวอร์ชัน 1.6.0-beta01

15 พฤศจิกายน 2023

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

เวอร์ชัน 1.6.0-alpha08

18 ตุลาคม 2023

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

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

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

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

เวอร์ชัน 1.6.0-alpha07

4 ตุลาคม 2023

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

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

เวอร์ชัน 1.6.0-alpha06

20 กันยายน 2023

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

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

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

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

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

เวอร์ชัน 1.6.0-alpha05

6 กันยายน 2023

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

ฟีเจอร์ใหม่

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

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

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

เวอร์ชัน 1.6.0-alpha04

23 สิงหาคม 2023

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

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

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

เวอร์ชัน 1.6.0-alpha03

9 สิงหาคม 2023

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

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

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

เวอร์ชัน 1.6.0-alpha02

26 กรกฎาคม 2023

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

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

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

เวอร์ชัน 1.6.0-alpha01

21 มิถุนายน 2023

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

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

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

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

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

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

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

รุ่น 1.5

เวอร์ชัน 1.5.4

18 ตุลาคม 2023

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

เวอร์ชัน 1.5.3

4 ตุลาคม 2023

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

รุ่น 1.5.2

27 กันยายน 2023

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

รุ่น 1.5.1

6 กันยายน 2023

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

เวอร์ชัน 1.5.0

9 สิงหาคม 2023

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

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

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

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

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

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

เวอร์ชัน 1.5.0-rc01

26 กรกฎาคม 2023

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

เวอร์ชัน 1.5.0-beta03

28 มิถุนายน 2023

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

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

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

เวอร์ชัน 1.5.0-beta02

7 มิถุนายน 2023

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

เวอร์ชัน 1.5.0-beta01

24 พฤษภาคม 2023

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

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

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

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

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

เวอร์ชัน 1.5.0-alpha04

10 พฤษภาคม 2023

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

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

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

เวอร์ชัน 1.5.0-alpha03

19 เมษายน 2023

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

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

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

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

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

เวอร์ชัน 1.5.0-alpha02

5 เมษายน 2023

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

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

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

เวอร์ชัน 1.5.0-alpha01

22 มีนาคม 2023

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

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

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

เวอร์ชัน 1.4

เวอร์ชัน 1.4.3

3 พฤษภาคม 2023

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

เวอร์ชัน 1.4.2

19 เมษายน 2023

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

เวอร์ชัน 1.4.1

5 เมษายน 2023

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

เวอร์ชัน 1.4.0

22 มีนาคม 2023

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

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

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

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

เวอร์ชัน 1.4.0-rc01

8 มีนาคม 2023

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

เวอร์ชัน 1.4.0-beta02

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

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

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

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

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

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

เวอร์ชัน 1.4.0-beta01

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

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

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

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

เวอร์ชัน 1.4.0-alpha05

25 มกราคม 2023

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

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

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

เวอร์ชัน 1.4.0-alpha04

11 มกราคม 2023

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

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

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

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

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

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

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

เวอร์ชัน 1.4.0-alpha03

7 ธันวาคม 2022

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

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

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

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

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

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

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

เวอร์ชัน 1.4.0-alpha02

9 พฤศจิกายน 2022

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

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

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

เวอร์ชัน 1.4.0-alpha01

24 ตุลาคม 2022

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

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

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

เวอร์ชัน 1.3

เวอร์ชัน 1.3.1

9 พฤศจิกายน 2022

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

เวอร์ชัน 1.3.0

24 ตุลาคม 2022

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

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

การเปลี่ยนแปลงที่ทําให้ลักษณะการทํางานเปลี่ยนแปลง

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

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

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

เวอร์ชัน 1.3.0-rc01

5 ตุลาคม 2022

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

เวอร์ชัน 1.3.0-beta03

21 กันยายน 2022

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

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

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

เวอร์ชัน 1.3.0-beta02

7 กันยายน 2022

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

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

เวอร์ชัน 1.3.0-beta01

24 สิงหาคม 2022

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

การเปลี่ยนแปลงที่ทําให้ลักษณะการทํางานเปลี่ยนแปลง

ระยะห่างสูงสุดที่รองรับในกล่องโต้ตอบและป๊อปอัปลดลงเหลือ 8dp

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

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

เวอร์ชัน 1.3.0-alpha03

10 สิงหาคม 2022

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

เวอร์ชัน 1.3.0-alpha02

27 กรกฎาคม 2022

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

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

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

เวอร์ชัน 1.3.0-alpha01

29 มิถุนายน 2022

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

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

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

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

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

เวอร์ชัน 1.2

เวอร์ชัน 1.2.1

10 สิงหาคม 2022

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

เวอร์ชัน 1.2.0

27 กรกฎาคม 2022

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

เวอร์ชัน 1.2.0-rc03

29 มิถุนายน 2022

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

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

เวอร์ชัน 1.2.0-rc02

22 มิถุนายน 2022

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

เวอร์ชัน 1.2.0-rc01

15 มิถุนายน 2022

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

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

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

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

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

เวอร์ชัน 1.2.0-beta03

1 มิถุนายน 2022

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

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

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

เวอร์ชัน 1.2.0-beta02

18 พฤษภาคม 2022

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

เวอร์ชัน 1.2.0-beta01

11 พฤษภาคม 2022

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

ฟีเจอร์ใหม่

  • นี่เป็นรุ่นเบต้าแรกของ 1.2

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

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

เวอร์ชัน 1.2.0-alpha08

20 เมษายน 2022

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

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

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

เวอร์ชัน 1.2.0-alpha07

6 เมษายน 2022

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

เวอร์ชัน 1.2.0-alpha06

23 มีนาคม 2022

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

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

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

เวอร์ชัน 1.2.0-alpha05

9 มีนาคม 2022

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

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

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

เวอร์ชัน 1.2.0-alpha04

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

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

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

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

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

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

เวอร์ชัน 1.2.0-alpha03

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

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

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

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

เวอร์ชัน 1.2.0-alpha02

26 มกราคม 2022

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

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

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

เวอร์ชัน 1.2.0-alpha01

12 มกราคม 2022

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

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

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

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

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

เวอร์ชัน 1.1

เวอร์ชัน 1.1.1

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

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

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

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

เวอร์ชัน 1.1.0

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

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

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

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

เวอร์ชัน 1.1.0-rc03

26 มกราคม 2022

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

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

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

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

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

เวอร์ชัน 1.1.0-rc01

15 ธันวาคม 2021

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

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

เวอร์ชัน 1.1.0-beta04

1 ธันวาคม 2021

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

ฟีเจอร์ใหม่

  • อัปเดตให้ใช้งานร่วมกับ Kotlin 1.6.0 ได้

เวอร์ชัน 1.1.0-beta03

17 พฤศจิกายน 2021

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

เวอร์ชัน 1.1.0-beta02

3 พฤศจิกายน 2021

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

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

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

เวอร์ชัน 1.1.0-beta01

27 ตุลาคม 2021

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

ฟีเจอร์ใหม่

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

เวอร์ชัน 1.1.0-alpha06

13 ตุลาคม 2021

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

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

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

เวอร์ชัน 1.1.0-alpha05

29 กันยายน 2021

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

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

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

เวอร์ชัน 1.1.0-alpha04

15 กันยายน 2021

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

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

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

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

  • อนุญาตให้คลิปขยายขอบเขตเป้าหมายการสัมผัสออกไปนอกภูมิภาคคลิปเพื่อวัตถุประสงค์ของเป้าหมายการสัมผัสขั้นต่ำ (I43e10, b/171509422)
  • อัปเดต Divider composable ให้ใช้ Dp.Hairline สำหรับพารามิเตอร์ความหนาเพื่อรองรับการวาดตัวแบ่งพิกเซลเดียว โดยไม่คำนึงถึงความหนาแน่นของการแสดงผล (I16ffb, b/196840810)

เวอร์ชัน 1.1.0-alpha03

1 กันยายน 2021

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

ฟีเจอร์ใหม่

  • อัปเดต Compose 1.1.0-alpha03 ให้ใช้ 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 ให้ใช้พารามิเตอร์ FilterQuality (Ie4fb0, b/180311607) ด้วย
  • เปลี่ยนชื่อ BadgeBox เป็น BadgedBox และเปลี่ยนพารามิเตอร์ให้ยอมรับคอมโพสิชันป้าย เพิ่มคอมโพเนนต์ป้ายซึ่งเป็นเนื้อหาป้ายทั่วไปสำหรับ BadgedBox (I639c6)
  • เพิ่มคอมโพเนนต์ NavigationRail โปรดดูข้อมูลการใช้งานในเอกสารประกอบและตัวอย่าง (I8de77)

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

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

รุ่น 1.0

เวอร์ชัน 1.0.5

3 พฤศจิกายน 2021

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

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

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

เวอร์ชัน 1.0.4

13 ตุลาคม 2021

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

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

  • อัปเดตให้ใช้ Kotlin 1.5.31

เวอร์ชัน 1.0.3

29 กันยายน 2021

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

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

  • อัปเดตให้ใช้ Kotlin 1.5.30

เวอร์ชัน 1.0.2

1 กันยายน 2021

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

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

เวอร์ชัน 1.0.1

4 สิงหาคม 2021

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

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

  • อัปเดตให้ใช้ Kotlin 1.5.21

เวอร์ชัน 1.0.0

28 กรกฎาคม 2021

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

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

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

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

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

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

    วิธีแก้ไขคือเพิ่ม minSdkVersion เป็น 24 ขึ้นไปชั่วคราวในไฟล์ build.gradle ปัญหานี้จะได้รับการแก้ไขใน Android Studio Bumblebee และ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

กฎมีไว้เพื่ออะไร

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

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

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

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

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

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

เวอร์ชัน 1.0.0-beta08

2 มิถุนายน 2021

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

ฟีเจอร์ใหม่

การเปลี่ยนแปลง API ที่ทําให้ลักษณะการทํางานเปลี่ยนแปลง

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

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

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

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

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

เวอร์ชัน 1.0.0-beta07

18 พฤษภาคม 2021

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

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

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

เวอร์ชัน 1.0.0-beta06

5 พฤษภาคม 2021

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

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

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

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

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

เวอร์ชัน 1.0.0-beta05

21 เมษายน 2021

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

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

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

เวอร์ชัน 1.0.0-beta04

7 เมษายน 2021

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

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

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

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

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

เวอร์ชัน 1.0.0-beta03

24 มีนาคม 2021

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

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

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

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

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

เวอร์ชัน 1.0.0-beta02

10 มีนาคม 2021

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

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

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

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

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

เวอร์ชัน 1.0.0-beta01

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • การวางแนวย้ายไปอยู่ในแพ็กเกจ Foundation แล้ว ย้าย VelocityTracker จาก ui.gesture ไปยัง ui.input.pointer แล้ว (Iff4a8, b/175294473)

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

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

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

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

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

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

  • เปลี่ยนแปลง Material API ดังต่อไปนี้

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha12

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • นำ Recomposer.current() ออกแล้ว [Abstract]ตอนนี้ ComposeView จะตั้งค่าเริ่มต้นเป็น Recomposer ระดับหน้าต่างที่สร้างขึ้นแบบล่าช้าโดย ViewTreeLifecycleOwner ของหน้าต่าง การคอมโพสิชันใหม่และการนับภาพเคลื่อนไหวตาม withFrameNanos จะหยุดชั่วคราวขณะที่วงจรชีวิตของโฮสต์หยุดลง (I38e11)

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

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

เวอร์ชัน 1.0.0-alpha11

28 มกราคม 2021

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • การเปลี่ยนค่าได้เปลี่ยนเป็นอินเทอร์เฟซที่ใช้งานได้ (Ib14e5)

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

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

  • นำวิธีการ monotonicFrameAnimationClockOf เวอร์ชันทดลองออก (Ib753f, b/170708374)

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

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

  • ตอนนี้ FocusRequester.createRefs มีสถานะเป็นเวอร์ชันทดลองเนื่องจากอาจมีการเปลี่ยนแปลง (I2d898, b/177000821)

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

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

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

เวอร์ชัน 1.0.0-alpha10

13 มกราคม 2021

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha09

16 ธันวาคม 2020

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha08

2 ธันวาคม 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha07

11 พฤศจิกายน 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha06

28 ตุลาคม 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha05

14 ตุลาคม 2020

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

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha04

1 ตุลาคม 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha03

16 กันยายน 2020

androidx.compose.material:material:1.0.0-alpha03, androidx.compose.material:material-icons-core:1.0.0-alpha03 และ androidx.compose.material:material-icons-extended:1.0.0-alpha03 เผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้

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

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

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

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

เวอร์ชัน 1.0.0-alpha02

2 กันยายน 2020

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

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

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

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

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

เวอร์ชัน 1.0.0-alpha01

26 สิงหาคม 2020

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

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

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

เวอร์ชัน 0.1.0-dev

เวอร์ชัน 0.1.0-dev17

19 สิงหาคม 2020

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

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

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

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

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

เวอร์ชัน 0.1.0-dev16

5 สิงหาคม 2020

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

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

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

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

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

เวอร์ชัน 0.1.0-dev15

22 กรกฎาคม 2020

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

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

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

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

  • เลิกใช้งานคำอธิบายประกอบ @Model แล้ว ใช้ state และ mutableStateOf แทน เราตัดสินใจเลิกใช้งานฟีเจอร์นี้หลังจากได้หารือกันอย่างรอบคอบแล้ว

    เหตุผล

    โดยเหตุผลประกอบอาจรวมถึงแต่ไม่จํากัดเพียงรายการต่อไปนี้

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

    หมายเหตุการย้ายข้อมูล

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

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

    ทางเลือกที่ 1: ใช้ State<OriginalClass> และสร้างสำเนา

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

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

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

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

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

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

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

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

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

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

  • นำการลบล้างที่เลิกใช้งานแล้วของคอมโพสิชัน FilledTextField ออก (I7f8f8)

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

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

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

  • เพิ่มช่องข้อความขอบมน (I1a518)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • นำ StaticDrawer ออกแล้ว หากต้องการใช้ ให้ใช้กล่องที่มีความกว้างที่ระบุไว้ในวัสดุแทน (I244a7)

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

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

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

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

  • เปลี่ยนชื่อพารามิเตอร์ในคอมโพสิชันตัวแบ่ง (Ic4373)

  • children (Ia6d19)

  • นำ MaterialTheme.emphasisLevels ออก และใช้ EmphasisAmbient.current เพื่อดึงข้อมูลระดับการเน้นแทน (Ib5e40)

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

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

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

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

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

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

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

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

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

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

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

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

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

  • เปลี่ยนชื่อตัวควบคุม Border เป็น DrawBorder (I8ffcc)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ตอนนี้ VerticalScroller มีคอลัมน์ให้ใช้งานทันที ตอนนี้ HorizontalScroller มีแถวให้ใช้งานตั้งแต่แกะกล่อง (Ieca5d, b/157020670)

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

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

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

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

  • คอมโพสิชัน AlignmentLineOffset เลิกใช้งานแล้ว โปรดใช้ตัวแก้ไข relativePaddingFrom() แทน นําคอมโพสิเบิล CenterAlignmentLine ออกแล้ว (I60107)

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

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

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

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

    เพิ่ม CanvasScopeSample และอัปเดตแอปเดโมให้รวมการสาธิตกราฟิกแบบประกาศ (Ifd86d)

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

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

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

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

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

  • ตอนนี้ฟังก์ชันการวัดค่าอินทรินซิกใน Layout และ LayoutModifier2 มีตัวรับ IntrinsicMeasureScope ซึ่งให้ API การค้นหาอินทรินซิกที่มีการวางแนวที่นำไปใช้ในเชิงปริยาย (Id9945)

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

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

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

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

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

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

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

  • เปลี่ยนชื่อโมดูล ui-text-compose เป็น ui-text ตอนนี้ ui-text มีคอมโพสิเบิล CoreText และ CoreTextField แล้ว (Ib7d47)

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

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

  • ปรับปรุง DrawModifier API

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

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

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

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

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

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

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

  • ย้ายรายการที่ลากไปไว้ในตัวแก้ไข (Id9b16, b/151959544)

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

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

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

    เปลี่ยนชื่อ Image(Painter) API เป็น PaintBox(Painter) สร้างคอมโพสิชันเวกเตอร์ที่ทํางานเหมือนคอมโพสิชันรูปภาพ ยกเว้นการใช้ VectorAsset แทน ImageAsset (I9af9a, b/149030271)

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

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

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

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

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

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

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

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

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

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

  • WithConstraints ได้พารามิเตอร์ LayoutDirection (I6d6f7)

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

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

  • นำคอมโพสิเบิล DrawShape ออกแล้ว ใช้ตัวแก้ไข DrawBackground แทน (I7ceb2)

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

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

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

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

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

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

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

  • การปรับปรุงอินเทอร์เฟซ API ของข้อจํากัด (I0fd15)