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

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

โครงสร้าง

คอมโพซเป็นชุดค่าผสมของรหัสกลุ่ม 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 สำหรับแอปหรือโมดูล

ดึงดูด

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

ความคิดเห็น

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

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

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

เวอร์ชัน 1.8

เวอร์ชัน 1.8.0-alpha05

30 ตุลาคม 2024

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

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

  • เพิ่มประสิทธิภาพลักษณะการทำงานของ Scaffold contentPadding เพื่อหลีกเลี่ยงการปรับเนื้อหาของร่างกายใหม่เสมอเมื่อ 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)

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

  • เพิ่มการรองรับ Ripples ในองค์ประกอบแบบขยายใน 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

  • ย้ายคอมโพเนนต์เนื้อหาไปใช้ Ripple API ใหม่แล้ว และจะไม่ค้นหา RippleTheme อีกต่อไป
  • คอมโพเนนต์ Material ที่ก่อนหน้านี้ยอมรับ MutableInteractionSource และมีค่าเริ่มต้นเป็น remember { MutableInteractionSource() } ตอนนี้ยอมรับ MutableInteractionSource ที่อนุญาตค่า Null และมีค่าเริ่มต้นเป็น Null แทน หากไม่ได้ยกระดับและใช้ MutableInteractionSource คุณควรส่งค่า Null วิธีนี้จะช่วยให้คอมโพเนนต์บางรายการสร้างอินสแตนซ์แบบ Lazy Loading ได้เมื่อจำเป็นเท่านั้น ซึ่งเป็นการปรับปรุงประสิทธิภาพ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย
  • 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 หากต้องการปิดใช้ Ripple แทนที่จะระบุ RippleConfiguration ด้วย isEnabled = false ให้ระบุ null ไปยัง LocalRippleConfiguration (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 วิธีนี้จะช่วยให้คอมโพเนนต์บางรายการสร้างอินสแตนซ์แบบ Lazy Loading ได้เมื่อจำเป็นเท่านั้น ซึ่งเป็นการปรับปรุงประสิทธิภาพ นอกจากนี้ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย

เวอร์ชัน 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 ไว้ในลิ้นชักที่ประกอบกันได้เพื่อให้ใช้ฟังก์ชันเดิมได้ ดูตัวอย่างได้ที่ 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 ใน Material 2 เลิกใช้งานแล้วเพื่อใช้ TextFieldColors เมื่อลบล้าง leadingIconColor หรือ trailingIconColor ให้ลบล้างโอเวอร์โหลดด้วย interactionSource ด้วย (Id57ed, b/199377790)

เวอร์ชัน 1.6.0-alpha01

21 มิถุนายน 2023

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

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

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

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

  • เลิกใช้งาน API Swipeable ของ Material แล้ว โปรดดู AnchoredDraggable API ของ Foundation ซึ่งเพิ่มประสิทธิภาพสำหรับทั้ง 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 แลมบ์ดาใน 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 ภายใน ตอนนี้ออฟเซ็ตเป็นพร็อพเพอร์ตี้จุดลอยตัวที่เป็นค่าว่างได้ ค่าปัจจุบันและค่าเป้าหมายการปัดจะยังคงเข้าถึงได้ผ่านพร็อพเพอร์ตี้ CurrentsValue และ targetValue ระบบจะยังคงรองรับเมธอดระดับคลาสก่อนหน้านี้ เช่น เปิด/ขยาย/ปิด และพร็อพเพอร์ตี้ เช่น isOpen/isClosed (Iad40c, b/178529942, b/220676296)

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

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

เวอร์ชัน 1.5.0-alpha02

5 เมษายน 2023

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

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

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

เวอร์ชัน 1.5.0-alpha01

22 มีนาคม 2023

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

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

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

เวอร์ชัน 1.4

เวอร์ชัน 1.4.3

3 พฤษภาคม 2023

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

เวอร์ชัน 1.4.2

19 เมษายน 2023

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

เวอร์ชัน 1.4.1

5 เมษายน 2023

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

เวอร์ชัน 1.4.0

22 มีนาคม 2023

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

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

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

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

เวอร์ชัน 1.4.0-rc01

8 มีนาคม 2023

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

เวอร์ชัน 1.4.0-beta02

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

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

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

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

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

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

เวอร์ชัน 1.4.0-beta01

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

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

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

  • แก้ไขปัญหาที่ pullRefresh ไม่ใช้ความเร็วซึ่งทำให้มีการเลื่อนมากเกินไป เปลี่ยนลายเซ็น API ของ onRelease แลมบ์ดาใน 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 ใน Drawer ว่าเป็น 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 ที่เปิดเผยจะเว้นว่างได้ ใช้ 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

  • ตอนนี้ UI ของ Compose และเนื้อหาเขียนขึ้นอยู่กับอายุการใช้งาน 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 ในวัสดุและ Material3 Text, 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)
  • เปลี่ยนชื่อพารามิเตอร์จากค่าเป็นค่าใน 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 การเปลี่ยนแปลงนี้จะส่งผลต่อทั้งกล่องโต้ตอบและป๊อปอัปที่กำหนดเองของ UI และ Material การเปลี่ยนแปลงนี้ทำเพื่อลดข้อบกพร่องด้านการช่วยเหลือพิเศษใน Android เวอร์ชันที่ต่ำกว่า S และเพื่อให้มั่นใจว่าบริการการช่วยเหลือพิเศษในหน้าต่างเหล่านั้นสามารถโต้ตอบกับเนื้อหาในกล่องโต้ตอบหรือป๊อปอัปได้

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

เวอร์ชัน 1.3.0-alpha03

10 สิงหาคม 2022

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

เวอร์ชัน 1.3.0-alpha02

27 กรกฎาคม 2022

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

การสนับสนุนภายนอก

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

เวอร์ชัน 1.3.0-alpha01

29 มิถุนายน 2022

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

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

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

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

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

เวอร์ชัน 1.2

เวอร์ชัน 1.2.1

10 สิงหาคม 2022

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

เวอร์ชัน 1.2.0

27 กรกฎาคม 2022

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

เวอร์ชัน 1.2.0-rc03

29 มิถุนายน 2022

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

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

เวอร์ชัน 1.2.0-rc02

22 มิถุนายน 2022

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

เวอร์ชัน 1.2.0-rc01

15 มิถุนายน 2022

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

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

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

    ในกรณีส่วนใหญ่ ปลั๊กอินคอมไพเลอร์ของ 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 มีคอมมิตเหล่านี้

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

  • ตอนนี้ขึ้นอยู่กับ 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

  • เพิ่มโอเวอร์โหลดที่ไร้เด็กสำหรับ Layout แล้วโดยมีประสิทธิภาพดีขึ้น (Ib0d9a)
  • การติดตั้งใช้งาน ExposedDropdownMenu โดยอิงตาม ExposedDropdownMenuBox ที่มี TextField และ DropdownMenu อยู่ภายใน (If60b2)
  • เพิ่ม dismissOnOutsideClick ลงใน PopupProperties แทนที่ dismissOnClickOutside ซึ่งเลิกใช้งานแล้ว พร็อพเพอร์ตี้ใหม่จะได้รับตำแหน่งการคลิกและขอบเขตของแท็ก Anchor ซึ่งช่วยให้ควบคุมได้ละเอียดยิ่งขึ้นว่าควรเรียกใช้ onCloseRequest หรือไม่ เช่น กรณีนี้อาจมีประโยชน์ในการป้องกันการปิดใช้งานจุดยึดเมื่อมีการแตะจุดยึด
    • เพิ่ม updateAndroidWindowManagerFlags ลงใน PopupProperties ซึ่งให้การควบคุมระดับล่างสำหรับ Flag ที่ป๊อปอัปส่งไปยัง WindowManager ของ Android พารามิเตอร์ของ lambda จะเป็น Flag ที่คำนวณจากค่า PopupProperties ซึ่งส่งผลให้เกิด Flag ของ WindowManager เช่น โฟกัสได้ ผลลัพธ์ของ lambda จะเป็นแฟล็กขั้นสุดท้ายซึ่งจะส่งไปยัง WindowManager ของ Android โดยค่าเริ่มต้น อัปเดต AndroidWindowManagerFlags จะคงการตั้งค่าแฟล็กที่คำนวณจากพารามิเตอร์ไว้ตามเดิม คุณควรใช้ 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 + รูปภาพ Composable เพื่อใช้พารามิเตอร์การกรองคุณภาพ ด้วย (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 เขียน 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 ... กฎเหล่านี้มี 1 ใน 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 บ่งบอกว่าเป็นเมธอดที่เรียกใช้เมื่อเริ่มต้นระบบ และควรคอมไพล์ล่วงหน้าเพื่อหลีกเลี่ยงค่าใช้จ่ายในการคอมไพล์และการตีความเมธอดเมื่อเริ่มต้นระบบ

  • เมธอดที่มีแฟล็ก 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 ใหม่ที่จัดการการคลิกและฟังก์ชันการทำงานอื่นๆ ที่คลิกได้ ได้แก่ การบ่งชี้, การโต้ตอบต้นฉบับ, การเปิด/ปิดใช้ คุณไม่สามารถใช้พื้นผิวแบบปกติที่คลิกไม่ได้กับ Modifier.clickable ได้ เนื่องจากพื้นผิวจะไม่ตัดการแสดงผลของภาพกระเพื่อมในกรณีดังกล่าว

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

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

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

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

เวอร์ชัน 1.0.0-beta07

18 พฤษภาคม 2021

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

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

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

เวอร์ชัน 1.0.0-beta06

5 พฤษภาคม 2021

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

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

  • Ripple ได้รับการย้ายข้อมูลเพื่อใช้ RippleDrawable ในอุปกรณ์ Android ภายในแล้ว ซึ่งหมายความว่าภาพเคลื่อนไหวของคลื่นจะแสดงใน RenderThread และภาพเคลื่อนไหวจะราบรื่นแม้ว่า UI Thread จะทำงานอยู่ เช่น เมื่อไปยังส่วนต่างๆ ของหน้าจอ การดำเนินการนี้จะไม่เปลี่ยนแปลงอินเทอร์เฟซ API ของ Ripple แต่อาจมีการเปิดตัวการเปลี่ยนแปลงลักษณะการทำงานอันเนื่องมาจากการเปลี่ยนแปลงนี้ เราได้เพิ่ม LocalRippleNativeRendering เพื่อช่วยในการย้ายข้อมูล ให้ระบุค่า false ให้กับ CompositionLocal นี้เพื่อใช้การติดตั้งใช้งาน Ripple เวอร์ชันก่อนหน้าภายใน CompositionLocalProvider API นี้เป็นแบบชั่วคราวและจะถูกนำออกในอนาคต ดังนั้นถ้าคุณพบปัญหาที่ทำให้ใช้ API นี้ โปรดรายงานข้อบกพร่อง (I902f8, b/168777351, b/183019123)
  • เพิ่ม API การช่วยเหลือพิเศษ CollectionInfo และ CollectionItemInfo ซึ่งช่วยทำเครื่องหมายคอลเล็กชันและรายการสำหรับบริการช่วยเหลือพิเศษได้ (Id54ef, b/180479017)
  • เพิ่ม 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 เมนูที่เจาะจงมากขึ้นลงในแคตตาล็อก Material ของ 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.suggestedWidth/ใส่ความสูง/เลือกขนาดเป็นความกว้าง/ความสูง/ขนาด (I5b414)
  • ตอนนี้ imageResource และ vectorResource เป็นฟังก์ชันส่วนขยายบนโฆษณาที่แสดงร่วม ImageBitmap และ ImageVector ตามลำดับ ลบฟังก์ชันload{Image,Vector,Font}ทรัพยากรแล้ว (I89130)
  • ตัวปรับแต่งสำหรับปรับขนาดให้พอดีกับภายในไม่ใช่เวอร์ชันทดลองอีกต่อไป (I15744)
  • นำการยืนยัน dp ออกแล้ว (I798d2)
  • นำการเรียกกลับ SoftwareKeyboardController ออกจากช่องข้อความทั้งหมดเพื่อแทนที่ด้วย API ใหม่ในเร็วๆ นี้ (Iae869, b/168778053)
  • การทำงานสลับ ช่องทำเครื่องหมาย และ RadioButton สามารถเว้นว่างได้ ตัวอย่างช่องทําเครื่องหมายในแถวที่คลิกได้อัปเดตให้ใช้ฟีเจอร์นี้ (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)

  • เปลี่ยนแพ็กเกจของเมธอด clear ScrollBy และ 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 แล้ว ย้าย VelocirtTracker จาก ui.gesture ไปยัง ui.input.pointer (Iff4a8, b/175294473)

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

  • ผู้ให้บริการเปลี่ยนชื่อเป็น CompositionLocalProvider

    • ตัวสร้างคอมโพสิชันไม่รับพารามิเตอร์คีย์อีกต่อไปและเลิกใช้งานแล้ว
    • ได้เปลี่ยนcurrentCompositeKeyHash เป็นพร็อพเพอร์ตี้ระดับบนสุดที่ประกอบได้แทนฟังก์ชันระดับบนสุดที่ประกอบกันได้
    • ย้าย CompositionData และ CompositionGroup ไปยังเนมสเปซ androidx.compose.runtime.tooling แล้ว
    • ComposableLambda ได้เปลี่ยนเป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
    • ComposableLambdaN เปลี่ยนเป็นอินเทอร์เฟซแทนที่จะเป็นคลาสที่เฉพาะเจาะจง และไม่มีพารามิเตอร์ประเภทอีกต่อไป
    • ย้ายฟังก์ชัน Snapshot ไปยังเนมสเปซ androidx.compose.runtime แล้ว
    • เมธอดผสานของ SnapshotMutationPolicy ไม่ได้อยู่ในช่วงทดลองอีกต่อไป
    • นําฟังก์ชัน clearRoots ระดับบนสุด @TestOnly ออกแล้ว ไม่จำเป็นต้องใช้อีกต่อไป
    • เราได้นําฟังก์ชัน keySourceInfoOf และ resetSourceInfo ออกแล้ว จึงไม่จําเป็นต้องใช้อีกต่อไป
    • นํา Composer.collectKeySourceInformation ออกแล้ว ไม่จำเป็นต้องใช้อีกต่อไป
    • นำเมธอด isjoinedKey, JoinedKeyLeft และ joinKeyRight ออกแล้ว จึงไม่จําเป็นต้องใช้อีกต่อไป
    • เราได้ย้ายและจัดระเบียบ 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 ใน BottomหายไปItem เป็น 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}ทรัพยากรแล้ว (I89130)

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

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

  • เพิ่ม Local SoftwareKeyboardController ใหม่ภายใน API เพื่อแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าใน TextField (I658b6, b/168778053)

เวอร์ชัน 1.0.0-alpha12

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

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

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

  • ตอนนี้ Modifier.pointerInput ต้องใช้คีย์การจดจำเพื่อระบุว่าควรรีสตาร์ทโคโริวทีนการตรวจหาการป้อนข้อมูลด้วยเคอร์เซอร์เมื่อใดสำหรับข้อกําหนดใหม่ (I849cd)
  • BottomDrawerLayout และ ListItem มีการทำเครื่องหมายเป็น @PrepareMaterialApi (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 ตามลำดับ ตอนนี้เมนูแบบเลื่อนลงจะทำงานตาม 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 เพิ่ม ProgressBarRangeInfo เพื่อทําเครื่องหมายแถบความคืบหน้าแบบไม่ชัดเจนสําหรับการช่วยเหลือพิเศษ (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 และ BottomหายไปItem เพื่อป้องกันไม่ให้คลิกได้ เปลี่ยน Bottom NavigationItem เป็น RowScope.BottomการนำทางItem เพื่อให้แสดงข้อกำหนดด้านเลย์เอาต์ใน 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)
  • เปลี่ยนการออกแบบตัวอักษร รูปร่าง และตำแหน่งแท็บให้เป็นคลาสข้อมูลไม่ได้อีกต่อไป เพิ่มฟังก์ชันการคัดลอกสำหรับแบบอักษรและรูปร่างเพื่อแทนที่แบบอักษรและรูปร่างที่สร้างขึ้น (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 ทำให้สามารถเพิ่มการตกแต่ง เช่น ไอคอน ตัวยึดตำแหน่ง ป้ายกำกับ และคล้ายกับช่องข้อความ และเพิ่มพื้นที่เป้าหมาย Hit ของช่อง (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 และหน้าต่างเปลี่ยน GlobalBounds เป็น 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

  • ความเร็วที่ปรับแล้วให้มีชิ้นส่วนที่เป็นส่วนประกอบและโอเปอเรเตอร์ทางคณิตศาสตร์ (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)
  • Compose รองรับ Getter พร็อพเพอร์ตี้ที่สร้างการเรียกใช้ Composable ได้ เราจะยังคงรองรับรูปแบบนี้ แต่ไวยากรณ์สำหรับการประกาศตัวรับพร็อพเพอร์ตี้เป็น @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.VectorConveters, Position.VectorConverter และอื่นๆ ไปยังแกนภาพเคลื่อนไหว และเลิกใช้งาน VectorConveters แบบเก่า (If0c4b)

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

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

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

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

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

  • เพิ่มการสนับสนุน InteractionState สำหรับ TextFields แล้ว (I61d91)

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

  • ย้าย ContentDrawScope ไปยังโมดูล UI กราฟิกแล้วเพื่อใช้กับ DrawScope (Iee043, b/173832789)

เวอร์ชัน 1.0.0-alpha08

2 ธันวาคม 2020

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

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

  • ตอนนี้ MaterialTheme จะกำหนดสีที่ถูกต้องสำหรับแถบการเลือกและพื้นหลังการเลือกแล้ว แอปที่ไม่ใช่ Material สามารถใช้ AmbientTextSelectionColors ด้วยตนเองเพื่อปรับแต่งสีที่ใช้สำหรับการเลือก (I1e6f4, b/139320372, b/139320907)
  • เพิ่มการตรวจสอบ Lint สําหรับการตั้งชื่อและตําแหน่งพารามิเตอร์ Lambda ที่คอมโพสิเบิล เพื่อตรวจสอบความสอดคล้องตามหลักเกณฑ์ของ Compose รวมถึงย้ายข้อมูล API บางรายการที่ใช้ children เป็นชื่อของ lambda ต่อท้ายเป็น content ตามการตรวจสอบและคำแนะนำของ Lint (Iec48e)
  • เปลี่ยนชื่อ VectorAsset เป็น ImageVectorย้ายและเปลี่ยนชื่อ VectorAsset เป็น Builder เพื่อให้เป็นคลาสภายในของ ImageVector ตามหลักเกณฑ์ของสภา API เพิ่ม typealias ของ VectorAssetBuilder เพื่อ ลิงก์กับ ImageVector.Builder สำหรับการจับคู่ (Icfdc8)
  • เปลี่ยนชื่อ ImageAsset และเมธอดที่เกี่ยวข้องเป็น ImageBitmap (Ia2d99)
  • ย้ายพร็อพเพอร์ตี้ความหมายพื้นฐานไปยัง ui (I6f05c)
  • fun RippleIndication() เลิกใช้งานแล้วและแทนที่ด้วย rememberRippleIndication() เพื่อให้สอดคล้องกับ API อื่นๆ (Id8e2c)
  • เพิ่มพารามิเตอร์ 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)
  • เปลี่ยนชื่อตัวปรับแต่งออฟเซ็ตPx เป็นออฟเซ็ต ตอนนี้ใช้พารามิเตอร์ 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)
  • อัปเดตฟิลด์ข้อความเพื่อยอมรับ 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 ได้เช่นกันหากไม่ต้องการใช้ไลบรารี Material (I9f622)
  • เพิ่ม FloatingActionButtonElevation เพื่อแสดงระดับความสูงที่ FAB ใช้ในสถานะต่างๆ ดู FloodActionButtonConstants.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 เพื่อจดจำ VectorPainter เพื่อบ่งชี้ได้ดีขึ้นว่า Composable API อาศัย "การจดจำ" เพื่อคงข้อมูลในองค์ประกอบต่างๆ (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
    • การบ่งชี้แอมเบียนท์ -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • เพิ่ม AmbientElevationOverlay ซึ่งช่วยให้ปรับแต่ง / ปิดใช้การวางซ้อนระดับความสูงเริ่มต้นที่ใช้กับพื้นผิวในธีมมืดได้ (I5b74d)

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

  • เพื่อเป็นส่วนหนึ่งของการปรับค่า Sentinel สำหรับคลาสแบบอินไลน์ให้เป็นมาตรฐาน ให้เปลี่ยนชื่อ Color.Unsetเป็น Color.Unidentifier เพื่อความสอดคล้องกับคลาสแบบอินไลน์อื่นๆ (I97611, b/169797763)
  • แนะนำ TextOverflow.None เมื่อส่วนเพิ่มเติมเป็น "ไม่มี" Text จะไม่จัดการกับส่วนเพิ่มเติมอีกต่อไป และจะรายงานขนาดจริงไปยัง 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 เพื่อใช้คุณสมบัติของรัศมี แทนพารามิเตอร์แต่ละรายการสำหรับค่ารัศมี x/y
    • นำ API ขนาดออกซึ่งถือว่ารูปภาพเป็นรูปสี่เหลี่ยมผืนผ้าที่มีจุดเริ่มต้นที่ 0,0
    • เพิ่ม API สำหรับการทำลายข้อมูลไปยัง Radius
    • ย้ายฟังก์ชันส่วนขยาย RoundRect ต่างๆ มาเป็นพร็อพเพอร์ตี้แทน
    • (I8f5c7, b/168762961)
  • เลิกใช้งาน foundation.Box แล้ว โปรดใช้ foundation.layout.Box แทน (Ie5950, b/167680279)
  • เปลี่ยนชื่อกองเป็นกล่องแล้ว เราจะเลิกใช้งาน Box ที่มีอยู่ก่อนหน้านี้เพื่อใช้ Box ใหม่ในCompose.foundation.layout ลักษณะการทำงานของ Box ใหม่คือการเรียงรายการย่อยซ้อนทับกันเมื่อมีรายการย่อยหลายคน ซึ่งแตกต่างจาก Box ก่อนหน้านี้ ซึ่งมีลักษณะการทำงานที่คล้ายกับคอลัมน์ (I94893, b/167680279)
  • เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการมีการตกแต่ง/ระยะห่างจากขอบในกล่อง ให้ใช้ตัวแก้ไขแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • อัปเดต Graphics API หลายรายการ
    • อัปเดต DrawScope API ที่มีวิธีการเปลี่ยนรูปแบบที่กำหนดขอบเขตเพื่อระบุว่าการเปลี่ยนรูปแบบจะใช้ภายในการเรียกกลับเท่านั้นและจะถูกนำออกหลังจากที่เรียกใช้ Callback แล้ว
    • อัปเดตเอกสารประกอบ 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)
  • สีพื้นหลังของ Textfield ไม่ใช้ความโปร่งใสของอัลฟ่าอีกต่อไป แต่ระบบจะใช้สีที่ระบุผ่านพารามิเตอร์ 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) เข้ามาแทนที่คลาสข้อมูลเส้นขอบ
  • เปลี่ยนชื่อพร็อพเพอร์ตี้บางรายการใน ให้เลื่อนลงสำหรับเป้าหมาย -> targetValue, ชิดความคืบหน้า -> ความคืบหน้า, ทิศทางการปัดหน้าจอ -> ทิศทาง เพิ่มฟังก์ชัน 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)
  • พารามิเตอร์เกณฑ์ใน Modifier.swipeable ได้รับการปรับเปลี่ยนแล้ว ขณะนี้มีคู่สถานะ (ประเภท T) และแสดงผลเกณฑ์ระหว่างสถานะเหล่านี้ในรูปแบบ ThresholdConfig เพิ่มพารามิเตอร์ dismissThresholds ลงใน SwipeToDismiss ซึ่งเป็น Lambda (DismissDirection) -> ThresholdConfig (Ie1080)
  • แถบเลื่อนมีสีเพิ่มเติมสำหรับการปรับแต่งแบบละเอียด (I73e64, b/161810475)
  • เปลี่ยนชื่อพารามิเตอร์สีของการ์ดเป็น backgroundColor (I01fc1, b/161809546)
  • Snackbar มีสีพื้นหลังและสีเนื้อหาที่ปรับแต่งได้เลย (I238f2, b/161804381)
  • เพิ่มพารามิเตอร์การปรับแต่ง, 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 ทั้งหมดที่มีรูปสี่เหลี่ยมและการเพิ่ม การเลิกใช้งาน/แทนที่ด้วย คำอธิบายประกอบอย่างเหมาะสมเพื่อช่วยในการย้ายข้อมูล (I37038, b/162627058)
  • เปลี่ยนชื่อ Rect เป็น 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. ปรับคลาสออฟเซ็ตและ 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 ไม่ให้ใช้การมอบสิทธิ์แบบ Lazy สำหรับพารามิเตอร์ภายใน FillPaint และ Straint อีกต่อไป
    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.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 Callback ในช่องข้อความที่เปลี่ยนชื่อเป็น onFocusChanged (Ida4a1)

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

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

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

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

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

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

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

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

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

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

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

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

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

  • เพิ่มคอมโพเนนต์เมนูแบบเลื่อนลงใน UI-material ซึ่งเป็นการใช้เมนูดีไซน์ Material (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)

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

  • เพิ่มพารามิเตอร์ความกว้างเส้นโครงร่างลงใน 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)

  • ตอนนี้ปุ่ม, FloodActionButton และ 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 ออกเพื่อใช้การวางแนว สถานะที่จําเป็นสําหรับการเลื่อนได้ได้รับการลดความซับซ้อน เปลี่ยนชื่อ ScrollableState เป็น ScrollableController แล้ว (Iab63c, b/149460415)
  • เปลี่ยนชื่อ runOnIdleCompose เป็น runOnIdle (I83607)
  • ตอนนี้พร็อพเพอร์ตี้ความหมายแบบค่าเดี่ยวใช้รูปแบบการเรียกแล้ว ตัวอย่างเช่น ตอนนี้ระบบจะเขียน "ความหมาย { hide = true }" เป็น 'ความหมาย { hide() }' (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 เพื่อใช้พารามิเตอร์รัศมีเดียวแทนค่าจำนวนลอยตัว 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 Composable ถูกนำออกแล้ว (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)

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

  • เพิ่ม Modifier.zIndex() ใหม่เพื่อควบคุมลําดับการวาดขององค์ประกอบย่อยภายในเลย์เอาต์หลักเดียวกัน เปลี่ยนชื่อพร็อพเพอร์ตี้ elevation ใน DrawLayerModifier เป็น shadowElevation และจะไม่ควบคุมลําดับการวาดอีกต่อไป ลำดับของพารามิเตอร์สำหรับ DrawShadow มีการเปลี่ยนแปลง: ตอนนี้ระดับความสูงเป็นรายการแรก และรูปร่างคือรูปร่างที่สองที่มีค่าเริ่มต้นเป็น 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 ออก แค่ใช้ ContentColor Context กับ Providers โดยตรง (Iee942)

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

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

  • ย้าย ui-framework/CoreText, CoreTextField composables ภายใต้ 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)

  • เปลี่ยนชื่อ Layoutผลลัพธ์ เป็น Measureผลลัพธ์แล้ว (Id8c68)

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

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

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

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

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

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

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

  • เปลี่ยนชื่อ LayoutFlexible เป็น LayoutWeight เปลี่ยนชื่อพารามิเตอร์ที่เข้มงวดเพื่อเติมแล้ว (If4738)

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

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

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

  • แทนที่คลิปของฟังก์ชันที่ประกอบกันได้ด้วยตัวปรับแต่ง 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 ถูกนําออกแล้ว ซึ่งจะไม่ใช่ Use Case ที่รองรับอีกต่อไป เลิกใช้งาน 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 Composable (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 แทนแอมเบียนท์Density() ได้แล้ว แทนที่จะใช้ withDensity(density) ให้ใช้แค่ with(density) (I11cb1)

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

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

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