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

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

โครงสร้าง

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

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

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

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

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

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ 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"
    }
}

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

ความคิดเห็น

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

สร้างรายการใหม่

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

เวอร์ชัน 1.8

เวอร์ชัน 1.8.0-alpha01

4 กันยายน 2024

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

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

  • เพิ่มเครื่องมือสร้าง NavGraphBuilder.bottomSheet ใหม่เพื่อสร้าง BottomSheet ที่มีอาร์กิวเมนต์ปลอดภัย (I28589, I777db, b/351858980))

เวอร์ชัน 1.7

เวอร์ชัน 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 แทน หากคุณไม่ได้รอสายและใช้ MutableInteractionSource คุณควรผ่านค่า Null วิธีนี้จะช่วยให้คอมโพเนนต์บางรายการสร้างอินสแตนซ์แบบ Lazy Loading ได้เมื่อจำเป็นเท่านั้น ซึ่งเป็นการปรับปรุงประสิทธิภาพ เราขอแนะนำให้คุณทำการเปลี่ยนแปลงที่คล้ายกันในคอมโพเนนต์ของคุณเองด้วย
  • BottomDrawer, ModalBottomSheet, BackdropScaffold และ Bottom Sheet มาตรฐานได้รับการเลื่อนระดับเป็น 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 ที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Text Composable แทน (I31B93)

เวอร์ชัน 1.7.0-alpha08

1 พฤษภาคม 2024

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

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

  • แก้ไข backgroundColor ที่ไม่ได้ใช้กับ TextFieldDecorationBox และ OutlinedTextFieldDecorationBox ตอนนี้กล่องตกแต่งยอมรับพารามิเตอร์ shape (I371c2, b/307694651)
  • นำ RippleConfiguration#isEnabled ออกแล้ว และกำหนดให้ LocalRippleConfiguration เป็นค่าว่าง หากต้องการปิดใช้ 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 ไม่ใช่ lambda ที่ตามมาอีกต่อไป (I9c029, b/261423850)
  • BackdropScaffold ได้รับการโปรโมตจากเวอร์ชันทดลองเป็นเวอร์ชันที่เสถียรแล้ว ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ tween ตามหลักเกณฑ์แล้ว พารามิเตอร์ snackbarHost ของ BackdropScaffold ไม่ใช่พารามิเตอร์สุดท้ายอีกต่อไปเพื่อหลีกเลี่ยงความสับสนกับ lambda ที่ตามมา BackdropScaffoldState จะแสดง API ของ progress(from, to) เพื่อแสดงความคืบหน้าในการค้นหาระหว่าง Anchor (I73f48, b/261423218)
  • Bottom Sheet มาตรฐานได้รับการโปรโมตจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียรแล้ว ลบตัวสร้างที่เลิกใช้งานแล้วออก ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวกลายเป็นข้อกำหนด Tween ตามหลักเกณฑ์แล้ว (I3c1a8, b/278692145, b/261409034)
  • Modal Bottom Sheet ได้รับการเลื่อนระดับจากเวอร์ชันทดลองเป็นเวอร์ชันเสถียร ลบตัวสร้างที่เลิกใช้งานแล้วออก ตอนนี้ข้อกำหนดของภาพเคลื่อนไหวเป็นข้อกำหนดของ tween ตามหลักเกณฑ์แล้ว (Ic53f4, b/278692145, b/266780235, b/261409034)

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

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

เวอร์ชัน 1.7.0-alpha02

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

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

เวอร์ชัน 1.7.0-alpha01

24 มกราคม 2024

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

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

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

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

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

  • คอมโพเนนต์ Material ที่ก่อนหน้านี้ยอมรับ MutableInteractionSource และกำหนดค่าเริ่มต้นให้จำ { MutableInteractionSource() } จะยอมรับ MutableInteractionSource ที่เป็นค่าว่างได้และค่าเริ่มต้นคือ 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 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

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

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

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

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

เวอร์ชัน 1.6.0-alpha01

21 มิถุนายน 2023

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

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

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

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

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

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

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

รุ่น 1.5

เวอร์ชัน 1.5.4

18 ตุลาคม 2023

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

เวอร์ชัน 1.5.3

4 ตุลาคม 2023

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

รุ่น 1.5.2

27 กันยายน 2023

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

รุ่น 1.5.1

6 กันยายน 2023

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

เวอร์ชัน 1.5.0

9 สิงหาคม 2023

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

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

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

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

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

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

เวอร์ชัน 1.5.0-rc01

26 กรกฎาคม 2023

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

เวอร์ชัน 1.5.0-beta03

28 มิถุนายน 2023

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

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

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

เวอร์ชัน 1.5.0-beta02

7 มิถุนายน 2023

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

เวอร์ชัน 1.5.0-beta01

24 พฤษภาคม 2023

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

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

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

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

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

เวอร์ชัน 1.5.0-alpha04

10 พฤษภาคม 2023

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

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

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

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

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

เวอร์ชัน 1.5.0-alpha02

5 เมษายน 2023

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

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

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

เวอร์ชัน 1.5.0-alpha01

22 มีนาคม 2023

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

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

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

เวอร์ชัน 1.4

เวอร์ชัน 1.4.3

3 พฤษภาคม 2023

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

เวอร์ชัน 1.4.2

19 เมษายน 2023

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

เวอร์ชัน 1.4.1

5 เมษายน 2023

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

เวอร์ชัน 1.4.0

22 มีนาคม 2023

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

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

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

  • เพิ่ม Modifier.minimumInteractiveComponentSize โดยอาจใช้เพื่อสงวนขนาดอย่างน้อย 48.dp เพื่อไม่ให้เกิดความสับสนในการโต้ตอบด้วยการสัมผัสหากองค์ประกอบจะวัดเล็กกว่า (I33f58, b/258495559)
  • รวมการเปลี่ยนแปลงใน API แบบปัดดูใน ModalDrawer แล้ว ระบบได้แทนที่ animateTo ของ DrawerState ด้วยวิธีการเปิดและปิด และออฟเซ็ตดังกล่าวจะกลายเป็นค่าว่างในขณะนี้ ใช้ requireOffset เพื่อกำหนดให้ออฟเซ็ต (I3de9e)
  • เพิ่มพารามิเตอร์ minLines ในวัสดุและ Material3 Text, 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

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

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

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

เวอร์ชัน 1.4.0-alpha05

25 มกราคม 2023

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

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

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

เวอร์ชัน 1.4.0-alpha04

11 มกราคม 2023

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

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

  • เพิ่มในพร็อพเพอร์ตี้ความหมาย IsContainer ใน Surfaces แล้ว ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการส่งผ่านตามความหมายเชิงอรรถศาสตร์ขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379)
  • ทำเครื่องหมายฟังก์ชัน snapTo ใน Drawer ว่าเป็น API ที่ไม่ใช่เวอร์ชันทดลอง (Ib9c18, b/261425368)
  • เพิ่มพารามิเตอร์สีแทร็กสำหรับสัญญาณบอกสถานะความคืบหน้าแบบวงกลม และพารามิเตอร์ขีดสูงสุดสำหรับสัญญาณบอกสถานะความคืบหน้าทั้งแบบวงกลมและเชิงเส้น (Ie668c, b/216325962, b/222964817)
  • เปลี่ยนชื่อ ModalBottomSheetState, ModalBottomSheetState.Saver และ confirmStateChange ของ rememberModalBottomSheetState เป็น confirmValueChange แล้ว (Ib48d1)
  • ประเภทการแสดงผลเพิ่มเติมของฟังก์ชันที่ซ่อนซึ่งเลิกใช้งานแล้ว (Ibf7b0)
  • เพิ่ม Modifier.minimumInteractiveComponentSize โดยอาจใช้เพื่อสงวนขนาดอย่างน้อย 48.dp เพื่อไม่ให้เกิดความสับสนในการโต้ตอบด้วยการสัมผัสหากองค์ประกอบจะวัดเล็กกว่า (I33f58, b/258495559)
  • รวมการเปลี่ยนแปลงใน 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 ยังไม่ได้รับ Anchor เลย ระบบจะอัปเดต currentValue โดยไม่มีภาพเคลื่อนไหวเมื่อมีการเรียกใช้ snapTo หรือ animateTo แทนที่จะส่งข้อยกเว้น (I2c91b)
  • แก้ไขสถานะเปิดใช้ในการใช้งาน Material 2 FilterChip (Id326a, b/261329817)
  • แก้ไขข้อบกพร่องที่ ModalBottomSheetLayout จะขัดข้องหากเป็น HalfExpanded เมื่อหมุนจากแนวตั้งเป็นแนวนอน โปรดตรวจสอบว่าคุณส่งด้วย initialValue ที่ถูกต้อง เช่น ด้วยการตรวจสอบการกําหนดค่า (Ie8df7, b/182882364)
  • แก้ไขปัญหาที่ ModalBottomSheetLayout ขัดข้องหากเนื้อหาชีตว่างเปล่า ModalBottomSheetLayout อนุญาตให้ใช้เนื้อหาชีตว่างเปล่าแล้ว หากเนื้อหาชีตว่างเปล่า จะมีเพียงสถานะซ่อนเท่านั้น (Ic2288, b/200980998, b/216693030)

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

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

เวอร์ชัน 1.4.0-alpha03

7 ธันวาคม 2022

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

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

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

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

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

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

  • ตอนนี้ 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 ใน Material และ Material3 Text, TextField และ OutlinedTextField ซึ่งอนุญาตให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์เป็นจํานวนบรรทัด (I4af1d)
  • เพิ่มพารามิเตอร์ minLines ใน BasicText และ BasicTextField วิธีนี้ช่วยตั้งค่าความสูงขั้นต่ำของ Composable เหล่านี้ในแง่ของ จำนวนสาย (I24294, b/122476634)

เวอร์ชัน 1.4.0-alpha01

24 ตุลาคม 2022

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

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

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

เวอร์ชัน 1.3

เวอร์ชัน 1.3.1

9 พฤศจิกายน 2022

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

เวอร์ชัน 1.3.0

24 ตุลาคม 2022

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

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

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

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

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

  • เพิ่มคอมโพเนนต์ Pull-To-Refresh ใน Compose (I29168)
  • เปลี่ยนชื่อพารามิเตอร์จากค่าเป็นค่าใน RangeSlider (I3b79a)

เวอร์ชัน 1.3.0-rc01

5 ตุลาคม 2022

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

เวอร์ชัน 1.3.0-beta03

21 กันยายน 2022

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

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

  • เพิ่มคอมโพเนนต์ Pull-To-Refresh ใน Compose (I29168)

เวอร์ชัน 1.3.0-beta02

7 กันยายน 2022

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

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

เวอร์ชัน 1.3.0-beta01

24 สิงหาคม 2022

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

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

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

ระดับความสูงที่รองรับสำหรับกล่องโต้ตอบการเขียนและป๊อปอัปลดลงจาก 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 ในสถานะขยาย แถบแสดงข้อความจะยึดอยู่กับด้านล่างของชีต (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 Composable ที่วาดเส้นขอบใน OutlinedTextField เป็น TextFieldDefaults.BorderBox (I5F295)

เวอร์ชัน 1.2.0-alpha08

20 เมษายน 2022

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

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

  • เราเลิกใช้งานการใช้งานบางส่วน (ลดลง OR) แล้วใน 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 และอีกครั้งต้องการหน้าต่างซึ่ง ซึ่งจำเป็นสำหรับการจัดการแฟล็กหน้าต่างบางรายการ เลิกใช้งานแล้ว ViewCompat.getWindowInsetsController เพื่อใช้ WindowCompat.getInsetsController เพื่อให้มั่นใจว่ากรอบเวลาที่ถูกต้องคือ (เช่น หากมุมมองอยู่ในกล่องโต้ตอบ) (I660ae, b/219572936)
  • ข้อความ:includeFontPadding จะปิดอยู่โดยค่าเริ่มต้น ปัญหาการคลิปที่เกิดจาก includeFontPadding=false ได้รับการจัดการแล้ว และไม่ควรสร้างคลิปสำหรับสคริปต์แบบยาว (I31c84, b/171394808)
  • เพิ่ม API ของ LazyVerticalGrid ใหม่เพื่อกำหนดขนาดของแกนไขว้ (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 แต่มีตัวเลือกมากขึ้นสำหรับการปรับแต่ง
  • ให้วิธีปรับระยะห่างจากขอบในแนวนอนและแนวตั้งในช่องข้อความ (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/178)
  • เพิ่ม ComposableTarget, ComposableTargetMarker และ ComposableOpenTarget ที่อนุญาตการรายงานเวลาคอมไพล์เมื่อ ฟังก์ชันที่ประกอบกันได้เรียกว่าการกำหนดเป้าหมายไปยังแอปพลิเคชันซึ่งไม่ใช่ ที่ออกแบบมาเพื่อใช้

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

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

เวอร์ชัน 1.2.0-alpha03

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

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

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

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

เวอร์ชัน 1.2.0-alpha02

26 มกราคม 2022

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

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

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

เวอร์ชัน 1.2.0-alpha01

12 มกราคม 2022

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

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

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

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

  • ตอนนี้ 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 ซึ่งมีลักษณะการทำงานที่สอดคล้องกันหากใช้มุมมองและการเขียนผสมกัน การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจว่าเมื่อคุณสร้าง 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 ซึ่งมีลักษณะการทำงานที่สอดคล้องกันหากใช้มุมมองและการเขียนผสมกัน การเปลี่ยนแปลงนี้ยังช่วยให้มั่นใจว่าเมื่อคุณสร้าง 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 มีการคอมมิตเหล่านี้

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

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

เวอร์ชัน 1.1.0-beta01

27 ตุลาคม 2021

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

ฟีเจอร์ใหม่

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

เวอร์ชัน 1.1.0-alpha06

13 ตุลาคม 2021

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

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

  • เพิ่มโอเวอร์โหลดที่ไร้เด็กสำหรับ Layout แล้วโดยมีประสิทธิภาพดีขึ้น (Ib0d9a)
  • การใช้งาน ExposedDropdownMenu โดยอิงตาม ExposedDropdownMenuBox ที่มี TextField และ DropdownMenu ภายใน (If60b2)
  • เพิ่ม dismissOnOutsideClick ลงใน PopupProperties แล้ว โดยแทนที่ dismissOnClickOutside ซึ่งเลิกใช้งานแล้ว พร็อพเพอร์ตี้ใหม่จะได้รับตำแหน่งการคลิกและขอบเขตของ Anchor ซึ่งช่วยให้ควบคุมได้ละเอียดยิ่งขึ้นว่าควรเรียกใช้ onCloseRequest หรือไม่ ตัวอย่างเช่น วิธีนี้อาจมีประโยชน์ในการป้องกันไม่ให้โฆษณา Anchor ปิดไปเมื่อแตะที่จุดยึด
    • เพิ่ม updateAndroidWindowManagerFlags ใน PopupProperties แล้ว ซึ่งจะให้การควบคุมระดับต่ำสำหรับแฟล็กที่ป๊อปอัปส่งไปยัง WindowManager ของ Android พารามิเตอร์ lambda จะเป็นแฟล็กที่คํานวณจากค่า PopupProperties ที่ส่งผลให้เกิดแฟล็ก 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 แบบทดลองภายในเพื่อปิดใช้ลักษณะการทำงานนี้ในทุกลำดับชั้น แต่วิธีนี้มีไว้เพื่อเป็นวิธีแก้ไขปัญหาชั่วคราวเท่านั้นในขณะที่อัปเดต UI ที่มีอยู่เพื่อพิจารณาขนาดขั้นต่ำใหม่ (I9b966, b/149691127, b/171509422)
  • เพิ่มอินเทอร์เฟซ TextFieldColorsWithIcons รุ่นทดลองซึ่งขยาย TextFieldColors เพื่อระบุ InteractionSource ให้กับ LeaderColor และต่อท้ายสี การทำเช่นนี้ทำให้สามารถปรับเปลี่ยนลักษณะที่ปรากฏของ 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 มีคอมมิตเหล่านี้

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

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

เวอร์ชัน 1.1.0-alpha01

4 สิงหาคม 2021

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

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

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

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

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

รุ่น 1.0

เวอร์ชัน 1.0.5

3 พฤศจิกายน 2021

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

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

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

เวอร์ชัน 1.0.4

13 ตุลาคม 2021

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

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

  • อัปเดตเป็น Kotlin 1.5.31 แล้ว

เวอร์ชัน 1.0.3

29 กันยายน 2021

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

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

  • อัปเดตเป็น Kotlin 1.5.30 แล้ว

เวอร์ชัน 1.0.2

1 กันยายน 2021

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

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

เวอร์ชัน 1.0.1

4 สิงหาคม 2021

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

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

  • อัปเดตเพื่อใช้ Kotlin 1.5.21 แล้ว

เวอร์ชัน 1.0.0

28 กรกฎาคม 2021

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

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

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

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

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

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

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

เวอร์ชัน 1.0.0-rc02

14 กรกฎาคม 2021

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

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

  • กล่องโต้ตอบจะทำงานตามลักษณะการทำงานของการปรับขนาดแพลตฟอร์ม ตั้งค่า usePlatformDefaultWidth เป็น "เท็จ" เพื่อลบล้างลักษณะการทำงานนี้ (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)

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

  • Scrim ใน BottomDrawer, BackdropScaffold และ ModalBottomSheetLayout จะหายไป จากนั้นจะมีการส่ง Color.Unidentifier (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> คืออักขระอย่างน้อย 1 ตัว ได้แก่ H, S และ P เพื่อระบุว่าควรแจ้งว่าเมธอดนี้เป็น "Hot", "Startup" หรือ "Post Startup" หรือไม่

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

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

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

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

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

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

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

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

  • Modifier.onGloballyPositioned() มีการเปลี่ยนแปลงเพื่อรายงานพิกัดของตัวแก้ไขนี้ในสายตัวปรับแต่ง ไม่ใช่พิกัดเลย์เอาต์หลังจากใช้ตัวปรับแต่งทั้งหมดแล้ว ซึ่งหมายความว่าตอนนี้ลำดับของตัวปรับส่งผลต่อพิกัดที่จะรายงาน (Ieb67d, b/177926591)
  • เพิ่ม README สำหรับแคตตาล็อก Material ของ 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 อยู่ระหว่างการโหลด เช่น เมื่อไปยังหน้าจอต่างๆ ซึ่งไม่ได้เปลี่ยนแพลตฟอร์มของ Ripple ของ API แต่อาจมีการเปลี่ยนแปลงลักษณะการทำงานซึ่งเป็นผลมาจากการเปลี่ยนแปลงนี้ เราได้เพิ่ม LocalRippleNativeRendering เพื่อช่วยในการย้ายข้อมูล โดยระบุค่า false ให้กับ CompositionLocal นี้เพื่อกลับไปใช้การติดตั้งใช้งาน Ripple ก่อนหน้าภายใน CompositionLocalProvider API นี้เป็นแบบชั่วคราวและจะถูกนำออกในอนาคต ดังนั้นถ้าคุณพบปัญหาที่ทำให้ใช้ API นี้ โปรดรายงานข้อบกพร่อง (I902f8, b/168777351, b/183019123)
  • เพิ่ม API การช่วยเหลือพิเศษ CollectionInfo และ CollectionItemInfo ซึ่งช่วยทำเครื่องหมายคอลเล็กชันและรายการสำหรับบริการช่วยเหลือพิเศษได้ (Id54ef, b/180479017)
  • เพิ่ม API การช่วยเหลือพิเศษ error ที่อนุญาตให้ทำเครื่องหมายโหนดที่มีอินพุตที่ไม่ถูกต้อง (I12997, b/180584804, b/182142737)

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

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

เวอร์ชัน 1.0.0-beta05

21 เมษายน 2021

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

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

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

เวอร์ชัน 1.0.0-beta04

7 เมษายน 2021

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

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

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

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

  • เพิ่มการใช้งานแคตตาล็อก Material ของ 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 ใหม่ในเครื่อง API ที่จะแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าใน ฟิลด์ข้อความ (I5951e, b/168778053)

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

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

เวอร์ชัน 1.0.0-beta01

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

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

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

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

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

    วิธีนี้จะช่วยเลื่อนไปยังรายการที่ต้องการได้อย่างลื่นไหล (I4bfd7)

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

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

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

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

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

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

  • เปลี่ยนชื่อตัวปรับขนาดแล้ว เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize แล้ว เปลี่ยนชื่อ Modifier.suggestedWidth/ใส่ความสูงของเนื้อหา/เลือกขนาดเป็นความกว้าง/ความสูง/ขนาด (I5B414)

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

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

  • ขณะนี้ลิ้นชักState.open() และ โดยทั่วไปสถานะ.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 ใน BottomNavItem ให้อยู่หลัง selected และ onClick แล้ว
    • เปลี่ยนชื่อพารามิเตอร์ alwaysShowLabels ใน BottomหายไปItem เป็น alwaysShowLabel แล้ว
    • เปลี่ยนชื่อพารามิเตอร์ bodyContent ในคอมโพเนนต์บางรายการเป็น content แล้ว
    • พารามิเตอร์ที่เรียงลำดับใหม่ใน ButtonDefaults.buttonColors() โปรดทราบว่าเนื่องจากประเภทของพารามิเตอร์ไม่มีการเปลี่ยนแปลง จึงไม่ทำให้เกิดข้อผิดพลาดในโค้ดของคุณ โปรดตรวจสอบว่าคุณกำลังใช้พารามิเตอร์ที่มีชื่อหรืออัปเดตลำดับด้วยตนเอง มิฉะนั้นโค้ดของคุณจะไม่ทำงานเหมือนที่เคย
    • เพิ่มพารามิเตอร์ secondaryVariant ใน darkColors() แล้ว โดยปกติสีนี้เหมือนกับ secondary ในธีมมืด แต่เพิ่มเพื่อความสอดคล้องและปรับแต่งได้มากขึ้น
    • นำ ElevationDefaults และ animateElevation() ออกจากแพลตฟอร์ม API สาธารณะแล้ว เนื่องจากไม่ได้ใช้ / มีประโยชน์โดยทั่วไป
    • เปลี่ยนชื่อ onValueChangeEnd ใน Slider เป็น onValueChangeFinished และทำให้เป็นโมฆะแล้ว
    • เปลี่ยนชื่อพารามิเตอร์ text ใน Snackbar เป็น content เพื่อความสอดคล้อง
    • เพิ่มพารามิเตอร์ contentPadding ใน DropdownMenuItem เพื่ออนุญาตให้ปรับแต่งระยะห่างจากขอบเริ่มต้นได้ รวมถึงกำหนดให้ content เป็นส่วนขยายใน RowScope
    • เปลี่ยนชื่อ ModalDrawerLayout เป็น ModalDrawer แล้ว
    • เปลี่ยนชื่อ BottomDrawerLayout เป็น BottomDrawer แล้ว
    • (I1cc66)
  • ตอนนี้ BasicTextField ยอมรับแปรงแทนสี เพื่อให้สามารถปรับแต่งได้ดียิ่งขึ้น (I83a36)

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

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

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

  • เพิ่มองค์ประกอบ Local SoftwareKeyboardController ใหม่ในเครื่องแล้ว API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I658b6, b/168778053)

เวอร์ชัน 1.0.0-alpha12

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

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

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

  • ตอนนี้ Modifier.pointerInput ต้องใช้แป้นจดจำเพื่อระบุ เมื่อใดที่ Coroutine ตรวจจับอินพุตตัวชี้ควรรีสตาร์ทสำหรับ ทรัพยากร Dependency (I849cd)
  • BottomDrawerLayout และ ListItem มีการทำเครื่องหมายเป็น @ExperimentalMaterialApi (Id766e)
  • เพิ่ม PaddingValues.Absolute แล้วและใช้ใน API ที่ยอมรับ PaddingValues ได้ (Ia5f30)
  • onImeActionActioned เลิกใช้งานแล้ว ใช้ KeyboardActions แทน (If0bbd, b/179071523)
  • เพื่อให้ชื่อตรงกันมากขึ้น แบบแผนกับ ImageBitmap และ ImageVector ImagePainter เปลี่ยนชื่อเป็น BitmapPainter แล้ว กับ VectorPainter แบบขนาน (Iba381, b/174565889)
  • ตอนนี้ Animatable.snapTo และ Animatable.stop ระงับฟังก์ชันแล้ว (If4288)
  • ย้าย ComponentActivity.setContent ไปยัง androidx.activity.compose.setContent ใน androidx.activity:activity-compose โมดูล (Icf416)
  • วิธีการทำลายโครงสร้างและ copy() ถูกนำออกจาก หลายชั้นเรียนที่แทบไม่ได้ใช้ (I26702, b/178659281)
  • สร้าง HalExpand() และExpand() ใน ModalBottomSheetState ภายใน (Ic914e)
  • เปลี่ยนตัวบ่งชี้#createInstance เป็น @Composable และเปลี่ยน LocalIndication ให้มีเครื่องหมาย ไม่ใช่ () -> การบ่งชี้ (I5eeea, b/157150564)
  • ย้าย AlertDialog และเมนูแบบเลื่อนลงไปยัง Android เท่านั้นในขณะนี้ เพิ่มพารามิเตอร์ PopupProperties ในเมนูแบบเลื่อนลงสำหรับการกำหนดค่าเพิ่มเติมของป๊อปอัปที่สำคัญ (I9c443)
  • เลิกใช้งานloadFontResource แล้ว โปรดใช้ fontResource แทน imageResource,LoadImageResource, vectorResource และloadVectorResource เลิกใช้งานแล้ว โปรดใช้ PainterResource แทน (I6B809)
  • นำพารามิเตอร์ toggle และ toggleModifier ออกจากเมนูแบบเลื่อนลง และเปลี่ยนชื่อ dropdownModifier, dropdownOffset และ dropdownContent เป็น modifier, offset และ content ตามลำดับ ตอนนี้เมนูแบบเลื่อนลงจะทำงานตาม Popup เสมอ ซึ่งมีการใช้เลย์เอาต์ระดับบนสุดสำหรับตำแหน่งของเมนู ในกรณีส่วนใหญ่ คุณสามารถย้าย toggle เป็นข้างเคียงของ DropdownMenu และรวมทั้งสองไว้ใน Box ดูตัวอย่างที่อัปเดตในเอกสารประกอบสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ API นี้ (I884fb)
  • toIntPx() เปลี่ยนชื่อเป็น roundToPx() (I9b7e4, b/173502290)
  • IntBounds ได้เปลี่ยนชื่อเป็น IntRect และปรับปรุง API ให้ดีขึ้น (I1f6ff)
  • เพิ่มการขยายและยุบการดำเนินการด้านความหมาย เพิ่มเมื่อ ขยายและครึ่งขยายใน ModalBottomSheetState (Ib5064)
  • เลิกใช้งาน Modifier.dragGestureFilter แล้ว โปรดใช้ Modifier.pointerInput { detectDragGestures (...)} แทน หรือใช้ Modifier.draggable สำหรับการลากแกน 1 แกน (I0ba93, b/175294473)
  • เปลี่ยนชื่อแอมเบียนท์ให้ตรงกับแอมเบียนท์ -> การเปลี่ยนชื่อ CompositionLocal แอมเบียนท์เคยมีชื่อว่า AmbientFoo แต่ปัจจุบัน CompositionLocals เรียกว่า LocalFoo (I2d55d)
  • ย้ายรายการที่เลือกไปยังพื้นฐานแล้ว (I7892B)
  • เช่นเดียวกับที่เรานำ Composable ของ state { 0 } ออกก่อนหน้านี้และตอนนี้โปรโมตการใช้งาน เช่น remember { mutableStateOf(0) } เราจะนำ Composable ของ 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)

  • โหมดประหยัด, listSaver(), MapSaver(), autoSaver ถูกย้ายจาก androidx.compose.runtime.savedinstancestate ไปยัง androidx.compose.runtime.saveable (I77fe6) แล้ว

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

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

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

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

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

  • เลิกใช้งาน AnimatedValue/Float แล้ว โปรดใช้ ภาพเคลื่อนไหวแทน (I71345, b/177457083)

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

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

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

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

  • นำ Recomposer.current() ออกแล้ว [Abstract]ComposeView เลย จะใช้ค่าเริ่มต้นเป็น Recomposer ที่สร้างแบบ Lazy Loading เป็น Recomposer ที่มีขอบเขตเป็นหน้าต่าง ซึ่งขับเคลื่อนด้วย ViewTreeLifecycleOwner สำหรับหน้าต่าง การจัดองค์ประกอบใหม่และ หยุดภาพเคลื่อนไหวจาก withFrameNanos ไว้ชั่วคราวขณะ Lifecycle ของโฮสต์ จะหยุดลง (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() เพื่อให้แปลงภาพเคลื่อนไหวเป็นสถานะได้ง่ายขึ้น และเปลี่ยน animateElevation เป็นส่วนขยายการระงับใน Animatable ด้วย (If613C)
  • Snackbar, SnackbarHost, SnackbarHostState ไม่เป็น @ExperimentalMaterialAPI แล้ว (Id1fb5)
  • เปลี่ยนการออกแบบตัวอักษร รูปร่าง และตำแหน่งแท็บให้เป็นคลาสข้อมูลไม่ได้อีกต่อไป เพิ่มฟังก์ชันการคัดลอกสำหรับการพิมพ์และรูปร่างเพื่อแทนที่ฟังก์ชันที่สร้างขึ้น (I40037)
  • ลบ Material API ที่เลิกใช้งานแล้วก่อนหน้านี้ (Ifaa25)

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

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

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

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

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

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

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

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

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

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

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

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

  • "โมฆะ" และ "ComCompositionReference()" จะถูกเลิกใช้งานเพื่อใช้ CurrentRecomposeScope และ RememberComCompositionReference ตามลำดับ (I583a8)

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

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

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

  • สามารถสร้างคลิกได้ เปิด/ปิด และเลือกได้นอกการเรียบเรียงได้แล้ว (I0a130, b/172938345, b/175294473)

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

  • เลิกใช้งาน ScrollableColumn/Row แล้ว การใช้ ScrollableColumn มีประสิทธิภาพน้อยกว่าเมื่อเทียบกับ LazyColumn เมื่อคุณมีเนื้อหาแบบเลื่อนจำนวนมาก เนื่องจาก LazyColumn ทำให้เราสามารถเขียน/วัด/วาดองค์ประกอบที่มองเห็นได้เท่านั้น เพื่อป้องกันไม่ให้ผู้ใช้ทำงานได้อย่างมีประสิทธิภาพ เราจึงตัดสินใจเลิกใช้งาน ScrollableColumn และ ScrollableRow และโปรโมตการใช้งาน LazyColumn และ LazyRow แทน ผู้ใช้ยังคงสามารถตัดสินใจได้ว่าไม่ต้องการลักษณะการทำงานแบบ Lazy Loading และใช้ตัวแก้ไขโดยตรง เช่น 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 AccessibilitySlideState เปลี่ยนชื่อเป็น ScrollAxisRange LandscapeAccessibilitySlideState ได้รับการเปลี่ยนชื่อเป็น LandscapescrollAxisRange verticalAccessibilitySlideState เปลี่ยนชื่อเป็น verticalscrollAxisRange (รหัส 3148)

  • ใช้ประโยชน์จาก 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 ใน เท่ากับการติดตั้งใช้งาน "is MyClass" แทน (I4f734)

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

  • เพิ่มการสนับสนุนสำหรับฟิลด์ข้อความที่ปิดใช้และอ่านอย่างเดียว (I35279, b/171040474, b/166478534)
  • ตอนนี้แทนที่ animate() ด้วย animateAsState() แล้ว ซึ่งแสดงผลเป็น State<T> แทน T วิธีนี้ทำให้ ประสิทธิภาพสูงสุด เนื่องจากสามารถจำกัดขอบเขตการใช้งานไม่ได้ให้แคบลงได้ ตรงตำแหน่งที่มีการอ่านค่า State (Ib179e)
  • เพิ่ม API บทบาทความหมาย และเพิ่มบทบาทเป็นพารามิเตอร์ใน 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 ให้ลงท้ายด้วยค่าเริ่มต้นแทน เช่น ButtonDefaults และนำคำนำหน้า default ที่ไม่จำเป็นออกจากพร็อพเพอร์ตี้ในออบเจ็กต์ใหม่เหล่านี้ด้วย (Ibb915, b/159982740)
  • Compose รองรับ Getter พร็อพเพอร์ตี้ที่สร้างการเรียกใช้ Composable ได้ การรองรับโค้ดนี้ยังคงอยู่ แต่ไวยากรณ์สำหรับการประกาศ Getter พร็อพเพอร์ตี้ว่าเป็น @Composable กำลังจะมีการเปลี่ยนแปลง

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

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

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

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

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

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

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

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

    API ตัวสร้างฟังก์ชันการไล่ระดับสีที่เลิกใช้งานแล้ว ในวิธีจากโรงงานกับวัตถุการไล่ระดับสี (I511fc, b/173066799)

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

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

  • ย้าย Dp.VectorConverter, Position.VectorConverter, และอื่นๆ ไปยังแล้ว Anthos-core และเลิกใช้งาน VectorConveters แบบเก่า (If0c4b)

  • ขณะนี้ API ป้อนข้อความอัตโนมัติเป็น API ที่อยู่ระหว่างการทดลองและต้องมีการเลือกใช้ (I0a1ec)

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

  • ได้เปลี่ยนชื่อ AccessibilityLabel เป็น contentDescription AccessibilityValue เปลี่ยนชื่อเป็น statusDescription แล้ว (I250f2)

  • ฟังก์ชัน infinitefiniteable แบบใหม่สำหรับการสร้าง InfiniteDuplicateableSpec (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 ที่ประกอบกันได้ เพื่อตรวจสอบความสอดคล้องของหลักเกณฑ์การเขียน รวมทั้งย้ายข้อมูล 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)
  • ย้าย DrawModifier API จาก ในแพ็กเกจ androidx.compose.ui แพ็กเกจ androidx.compose.ui.draw สร้างไฟล์ DrawModifierDeprecated.kt ไปยังแล้ว รวมถึง typealiases/helper เพื่อช่วย การย้ายข้อมูลจาก API (รหัส 6044, 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) แล้ว
  • พารามิเตอร์การจัดแนวของ Box เปลี่ยนชื่อเป็น contentAlignment แล้ว (I2c957)
  • เปลี่ยนชื่อตัวปรับแต่งออฟเซ็ตPx เป็นออฟเซ็ต ตอนนี้จะใช้พารามิเตอร์ lambda แทน State แล้ว (Ic3021, b/173594846)
  • เปิดตัว SweepGradientShader และ SweepGradientBrush API (Ia22c1)
  • เพิ่มการตรวจสอบ Lint สำหรับพารามิเตอร์ตัวปรับแต่งในฟังก์ชัน Composable การตรวจสอบ Lint นี้จะตรวจสอบการตั้งชื่อ ประเภทการแสดงผล ค่าเริ่มต้น และลำดับของพารามิเตอร์เพื่อให้สอดคล้องกับหลักเกณฑ์การเขียน (If493b)
  • API TextFieldValue ที่อัปเดต
    • ทำให้ 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 เก่าและสตับของโมดูลออก (I3a7cb)
  • TextUnit.Inherit เปลี่ยนชื่อเป็น TextUnit ไม่ระบุเพื่อให้สอดคล้องกับหน่วยอื่นๆ (กรณีที่ 19)
  • อัปเดตอินเทอร์เฟซการปรับแนวและทำให้ใช้งานได้แล้ว (I46a07, b/172311734)
  • เปลี่ยนรหัสเป็น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

  • เราเลิกใช้งานการเน้นและแทนที่ด้วย AmbientContentAlpha แล้ว AmbientContentAlpha เป็นกระบวนการนามธรรมที่ง่ายกว่าซึ่งแสดงถึงอัลฟ่าของเนื้อหาที่ต้องการสําหรับส่วนหนึ่งของลําดับชั้น ซึ่งคล้ายกับที่ AmbientContentColor แสดงสีของเนื้อหาที่ต้องการ ตอนนี้ข้อความและไอคอนจะใช้ค่าปัจจุบันจาก AmbientContentAlpha โดยค่าเริ่มต้น และคุณดำเนินการต่อไปนี้ด้วยตนเองได้ color.copy(alpha = AmbientContentAlpha.current) เพื่อให้คอมโพเนนต์มีผลเหมือนกัน คุณจะป้อนค่าผ่าน AmbientContentAlpha โดยตรงและใช้ระดับเริ่มต้นใหม่ใน ContentAlpha เพื่อแทนที่ EmphasisLevels เดิมแทนการใช้ ProvideEmphasis (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 ลงใน TextFields (Ib2a5b)
  • อัปเดตฟิลด์ข้อความเพื่อยอมรับ KeyboardOptions (Ida7f3)
  • ขณะนี้พื้นผิวจะใช้ระดับความสูงสัมบูรณ์ (ทั้งหมด) เมื่อคำนวณการซ้อนทับระดับความสูง ดังนั้น พื้นผิวที่ซ้อนอยู่ในอีกพื้นผิวหนึ่งจะใช้ระดับความสูงแบบรวมในการวาดการวางซ้อน (I7bd2b, b/171031040)

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

  • ย้าย captureToBitmap ไปยัง captureToImage แล้ว (I86385)
  • เลิกใช้งาน AmbientTextStyle, ProvideTextStyle และ AmbientContentColor ของพื้นฐานแล้ว โปรดใช้เวอร์ชันใหม่ที่มีในไลบรารี Material แทน สำหรับแอปพลิเคชันที่ไม่ใช่ Material คุณควรสร้างระบบการออกแบบเฉพาะธีมสิ่งแวดล้อมที่สามารถใช้งานได้ในคอมโพเนนต์ของคุณเอง (I74acc, b/172067770)
  • Foundation.Text เลิกใช้งานแล้วและแทนที่ด้วย Material.Text สำหรับ API ข้อความพื้นฐานที่ไม่ถูกตัดสินซึ่งไม่ใช้ค่าจากธีม โปรดดู androidx.compose.foundation.BasicText (If64cb)
  • เปลี่ยนชื่อ KeyboardOptions เป็น ImeOptions (I82f36)
  • ย้าย KeyboardType และ ImeAction ลงใน KeyboardOptions (I910ce)
  • เลิกใช้งาน BaseTextField แล้ว โปรดใช้ BasicTextField แทน (I896eb)
  • ลบคำอธิบายประกอบ ExperimentalSubcomposeLayoutApi แล้ว ตอนนี้สามารถใช้ SubcomposeLayout ได้โดยไม่ต้องเพิ่ม @OptIn (I708ad)
  • FirstBaseline และ LastBaseline ย้ายไปยังแพ็กเกจ androidx.compose.ui.layout (Ied2e7) แล้ว
  • อัปเดต Icon API เพื่อใช้โหมด Color.Unidentifier เป็นสีจางที่เป็นไปได้ ซึ่งจะวาดตามที่ให้ไว้ Asset หรือ Painter ที่ไม่มี ColorFilter ก่อนหน้านี้ พยายามเพิกเฉยต่อการย้อมสีด้วย Color.Unidentifier จะย้อมด้วยสีโปร่งใสที่สุดท้าย โดยไม่แสดงผลเลย (I049e2, b/171624632)
  • RelativePaddingFrom เป็น paddingFrom แทน เพิ่มตัวปรับแต่ง addingFromBaseline เพื่ออำนวยความสะดวกในการระบุระยะทางตั้งแต่ขอบเขตของเลย์เอาต์ไปจนถึงเกณฑ์พื้นฐานของข้อความ (I0440a, b/170633813)
  • LaunchedTask เปลี่ยนชื่อเป็น LaunchedEffect เพื่อความสอดคล้อง ด้วย API ของ SideEffect และ DisposableEffect LaunchedEffect ที่ไม่มี ไม่อนุญาตให้ใช้พารามิเตอร์หัวเรื่องเพื่อส่งเสริมแนวทางปฏิบัติแนะนำ (Ifd3d4)
  • ย้าย Measureผลลัพธ์ ออกจาก 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)
  • เพิ่ม FloodActionButtonElevation เพื่อแสดงระดับความสูงที่ FAB นำไปใช้ในสถานะต่างๆ ดู FloodActionButtonConstants.defaultElevation() สำหรับการติดตั้งใช้งานเริ่มต้น (I2d4f5)
  • เพิ่มอินเทอร์เฟซ SwitchColors เพื่อแสดงสีที่สวิตช์ใช้ในสถานะต่างๆ ดู SwitchConstants.defaultColors เพื่อกำหนดค่าสีเหล่านี้ (I93805)
  • เพิ่มอินเทอร์เฟซ ButtonElevation และ ButtonColors เพื่อแสดงระดับความสูงและสีที่ปุ่มต่างๆ ใช้งานในสถานะต่างๆ ดูฟังก์ชันเริ่มต้นใน ButtonConstants เพื่อปรับแต่งพารามิเตอร์เหล่านี้ (Ic5b7b)
  • เพิ่มอินเทอร์เฟซ RadioButtonColors เพื่อแสดงสีที่ใช้โดย RadioButton ในสถานะต่างๆ ดู RadioButtonConstants.defaultColors() เพื่อกำหนดค่าสีที่ใช้ในสถานะต่างๆ (I74130)
  • เพิ่มอินเทอร์เฟซ CheckboxColors เพื่อแสดงสีที่ใช้โดยช่องทำเครื่องหมายในสถานะต่างๆ โปรดดู CheckboxConstants.defaultColors() เพื่อกำหนดค่าสีที่ใช้ในสถานะต่างๆ (I7dbdb)

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

  • คอมโพเนนต์วัสดุไม่ได้ตั้งค่าระดับความสูงเป็น 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 เพื่อรวมทรัพยากร Dependency แล้ว สำหรับ 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 ลิ้นชักท่าทางสัมผัสเปิดใช้งานใน ScaffoldState ย้ายไปที่ Scaffold แล้ว (I36645, b/168297016)
  • นําประเภท Nullable ออกจากพารามิเตอร์ Scaffold lambda แล้วคุณสามารถใช้ emptyContent() เพื่อแทนเนื้อหาสำหรับพารามิเตอร์ที่ระบุได้ (I2b318, b/157633857, b/158551084)
  • เลิกใช้งาน contentColor() และ CurrentTextStyle() และแทนที่ด้วย AmbientContentColor และ AmbientTextStyleแอมเบียนท์ตามลำดับ คุณสามารถเข้าถึงค่าปัจจุบันได้โดยใช้ .current ในพร็อพเพอร์ตี้ แอมเบียนท์ เช่นเดียวกับสภาพแวดล้อมอื่นๆ โดยเราทำการเปลี่ยนแปลงนี้เพื่อให้เกิดความสม่ำเสมอ และเพื่อหลีกเลี่ยงไม่ให้มีหลายวิธีในการทำสิ่งเดียวกัน นอกจากนี้ ยังเปลี่ยนชื่อพร็อพเพอร์ตี้แอมเบียนท์บางรายการเพื่ออธิบายวัตถุประสงค์ได้ดียิ่งขึ้นดังนี้

    • ContentColorAmbient -> สีเนื้อหาแอมเบียนท์
    • รูปแบบข้อความแอมเบียนท์ -> รูปแบบข้อความแอมเบียนท์
    • ตัวบ่งชี้แอมเบียนท์ -> ตัวบ่งชี้แบบแอมเบียนท์
    • การเน้นความสำคัญ -> ระดับแสงแวดล้อม
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
  • เพิ่ม AmbientElevationOverlay ซึ่งอนุญาตให้ปรับแต่ง / ปิดใช้การวางซ้อนระดับความสูงเริ่มต้นที่ใช้กับแพลตฟอร์มต่างๆ ในธีมมืด (I5b74d)

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

  • ในฐานะส่วนหนึ่งของการกำหนดมาตรฐาน ของค่าที่ส่งสำหรับคลาสในบรรทัด เปลี่ยนชื่อสี ยกเลิกการตั้งค่าเป็นสี ไม่ระบุ เพื่อความสอดคล้องกับคลาสแบบอินไลน์อื่นๆ (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 ในคอมโพเนนต์เนื้อหาที่เก็บสถานะ เพื่ออนุญาตให้มีการยกสถานะและอ่าน / ควบคุมสถานะ (Iaca5f, b/168025711, b/167164434)
  • เปลี่ยนพารามิเตอร์ *color บน RadioButton และ TriStateCheckbox เพื่อให้สามารถปรับแต่งสีที่ใช้ในแต่ละสถานะได้อย่างสมบูรณ์ ตลอดจนเปลี่ยนวิธีการเคลื่อนไหวของสีในแต่ละสถานะได้ด้วยหากต้องการ ดูฟังก์ชันสี animateDefault* ใหม่ใน CheckboxConstants และ RadioButtonConstants สำหรับข้อมูลเพิ่มเติม (I1c532)
  • เปลี่ยนชื่อ "จำฉากหลัง" เพื่อจดจำฉากหลังScaffoldState และเพิ่มพารามิเตอร์อีก 1 รายการสำหรับนาฬิกาภาพเคลื่อนไหว เปลี่ยนชื่อพารามิเตอร์แล้ว ฉากหลังScaffoldState ของ BackdropScaffold เป็นแค่ scaffoldState เปลี่ยนชื่อแล้ว BackdropConstants เป็น BackdropScaffoldConstants (Ib644D)
  • เพิ่มคอมโพเนนต์ BottomSheetScaffold เวอร์ชันทดลองแล้ว (Ie02f0, b/148996320)
  • เพิ่มคอมโพเนนต์ ModalBottomSheetLayout ทดลอง (Ic209e, b/148996320)
  • เปลี่ยนชื่อ ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation เป็น defaultElevation และตอนนี้แสดงผลค่า Dp แทน AnimatedValue (I5f3ed)

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

  • อัปเดต Graphics API หลายรายการ
    • อัปเดตการปรับขนาดและการหมุนแล้ว การเปลี่ยนรูปแบบที่จะใช้ พารามิเตอร์ออฟเซ็ตเพื่อแสดง Pivot พิกัดแทนที่จะเป็นจุดลอยตัวแยกต่างหาก พารามิเตอร์ของพิกัด x/y ใน DrawScope และ DrawTransform
    • นำ Rect.expandToInclude และ Rect.join ออกแล้ว วิธีการ
    • อัปเดตเอกสารประกอบของรัศมีที่แสดงรูปวงรี นอกเหนือจากเครื่องอีลิปติคอล
    • เพิ่มเอกสารประกอบเพื่อระบุ เครื่องมือสร้างสาธารณะสำหรับรัศมีในบรรทัด ไม่ ต้องเรียกโดยตรง แต่ วัตถุที่มีรัศมีควรสร้างอินสแตนซ์ผ่าน เครื่องมือสร้างฟังก์ชัน
    • นำ 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 ที่ทำลายลงในรัศมีแล้ว
    • ย้ายฟังก์ชันส่วนขยาย RoundRect ต่างๆ เป็น พร็อพเพอร์ตี้แทน
    • (I8f5c7, b/168762961)
  • Foundation.Box เลิกใช้งานแล้ว โปรดใช้ Foundation.layout.Box แทน (Ie5950, b/167680279)
  • เปลี่ยนชื่อกลุ่มเป็น Box แล้ว เราจะเลิกใช้งาน Box ที่มีอยู่ก่อนหน้านี้เพื่อเปลี่ยนไปใช้ Box ใหม่ใน publisher.foundation.layout ลักษณะการทำงานของ Box ใหม่คือการเรียงรายการย่อยซ้อนทับกันเมื่อมีรายการย่อยหลายคน ซึ่งแตกต่างจาก Box ก่อนหน้านี้ ซึ่งมีลักษณะการทำงานที่คล้ายกับคอลัมน์ (I94893, b/167680279)
  • เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการให้มีการตกแต่ง/ระยะห่างจากขอบบนกล่อง ให้ใช้ตัวปรับแต่งแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • อัปเดต Graphics API หลายรายการ
    • อัปเดต DrawScope API ที่มีขอบเขต เพื่อระบุว่าการเปลี่ยนแปลง การเปลี่ยนแปลงจะมีผลเฉพาะภายใน Callback และนำออกหลังจากมีการเรียกใช้ Callback
    • อัปเดตเอกสาร ClipsPath เพื่ออ้างอิงไปยังเส้นทางแล้ว แทนสี่เหลี่ยมผืนผ้ามุมมน
    • ระยะห่างคงที่ในเอกสารสำหรับพารามิเตอร์ที่ถูกต้อง ในClipPath
    • เปลี่ยนชื่อ DrawScope.drawCanvas เป็น DrawIntoCanvas และ พารามิเตอร์ขนาดที่นำออก
    • เปลี่ยนชื่อพารามิเตอร์ dx/dy ในเมธอด inset เป็น แนวนอนและแนวตั้ง
    • เพิ่มโอเวอร์โหลดส่วนที่ให้ ค่าที่แทรกเป็นขอบเขตทั้ง 4 ส่วน
    • ลบเอกสารที่ระบุว่าวิธีการฝัง ส่วนนั้นจะใช้กับทั้ง 4 ด้าน
    • อัปเดตเอกสารประกอบสำหรับคลาส Rect แล้ว
    • อัปเดตความคิดเห็นเกี่ยวกับพารามิเตอร์ Rect ให้ตรงกับ kdoc ภาพถ่ายไฮเปอร์เรียลลิสติก
    • นำ Rect.join และ Rect.expandToInclude ออกแล้ว
    • สร้างการโอเวอร์โหลดสำหรับ Rect.translate(offset) และ Rect.shift เลิกใช้งานแล้ว
    • (If086a, b/167737376)
  • เราป้องกันไม่ให้มีการนำเข้าเนื้อหาของขอบเขตเลย์เอาต์แบบคงที่ (เช่น alignWithSiblings ใน RowScope) ควรใช้ตัวเลือกขอบเขตที่ชัดเจนแทน: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } (I216be, b/166760797)

เวอร์ชัน 1.0.0-alpha03

16 กันยายน 2020

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

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

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

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

  • ตอนนี้ฟังก์ชันการทดสอบส่วนกลาง เช่น onNode หรือ waitForIdle พร้อมใช้งานแล้ว เลิกใช้งานแล้ว โปรดย้ายข้อมูลไปยังพาร์ทเนอร์ใหม่ที่กำหนดไว้ใน ComposeTestRule (I7f45a)
  • DpConstraints และ API ที่ใช้เลิกใช้งานแล้ว (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 ส่วนอื่นๆ ทั้งหมด ของแพ็กเกจเวกเตอร์คณิตศาสตร์ได้ถูกลบออกแล้ว (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 Callbacks ออกจาก TextField แล้ว ใช้ Modifier.FocusObserver แทน (I51089, b/161297615)
  • เลิกใช้งาน Modifier.drawBorder แล้ว ใช้ Modifier.border แทน คลาสข้อมูลเส้นขอบถูกแทนที่ด้วย BorderStroke (I4257d, b/158160576)
  • เปลี่ยนชื่อพร็อพเพอร์ตี้บางรายการใน SwingableState: SlackTarget -> targetValue, เลื่อนความคืบหน้า -> ความคืบหน้า เลื่อนทิศทาง -> เส้นทางการเรียนรู้ เพิ่มฟังก์ชัน RememberWipeableState สำหรับการสร้าง "SpupableStates" (I2fc9c, b/163129614, b/163132293)
  • เพิ่มการรองรับแถบแสดงข้อความพร้อมการจัดตำแหน่งและการจัดคิวที่เหมาะสม เข้าถึงได้ผ่านฟังก์ชันระงับ SnackbarHostState.showSnackbar ข้อกำหนดเพิ่มเติม
    • เพิ่มคอมโพเนนต์ SnackbarHost แล้ว โดยจะโฮสต์ Snackbar ตามรัฐและมีหน้าที่เปลี่ยนระหว่างแถบแสดงข้อความ
    • มีการเพิ่ม SnackbarHostState เพื่อให้สามารถควบคุมแถบแสดงแถบแสดงข้อความหรือแถบแสดงข้อความ ทั้งนี้เพื่อแยกออกจาก ScaffoldState ได้ คุณจะเข้าถึงรัฐนี้ผ่าน scaffoldState.snackbarHostState ได้ด้วย
    • มีการเพิ่มการใช้งาน Snackbar มากเกินไปเพื่อรองรับอินเทอร์เฟซทั่วไประหว่าง snackbarHostState และ Snackbar เอง (I79aaa)
  • เพิ่มพารามิเตอร์ที่เปิดใช้ไปยัง IconButton และจัดเรียงพารามิเตอร์ใน IconToggleButton (I0a941, b/161809385, b/161807956)
  • นำเวอร์ชัน ListItem ที่มี API แบบสตริงออกแล้ว ใช้เวอร์ชันช่องแทน (Ib8f57, b/161804681)
  • นำคอมโพเนนต์ FilledTextField ที่เลิกใช้งานแล้วออก โปรดใช้ TextField แทนเพื่อรับการใช้งานดีไซน์ Material ของช่องข้อความที่กรอก (I5e889)
  • ตอนนี้ AlertDialog ใช้ FlowRow สำหรับปุ่มต่างๆ (I00ec1, b/161809319, b/143682374)
  • เพิ่มพารามิเตอร์ใน Modifier.swipeable สำหรับการเปลี่ยนจำนวน ความต้านทานเมื่อปัดผ่านขอบเขต นำพารามิเตอร์ค่า [min/max]ออกแล้ว (I93d98)
  • เพิ่มพารามิเตอร์ backgroundColor ไปยัง LinearProgressIndicator และนำระยะห่างจากขอบภายในออกจาก CircularProgressIndicator เพิ่ม ProgressIndicatorConstants.DefaultProgressAnimationSpec ใหม่ซึ่งสามารถใช้เป็น AnimationSpec เริ่มต้นได้เมื่อแสดงความคืบหน้าระหว่างค่าต่างๆ (If38b5, b/161809914, b/161804677)
  • เพิ่มพารามิเตอร์ velocityThreshold ที่ไม่บังคับลงใน Modifier.swipeable แล้ว (I698ba)
  • bottomBarSize, fabSize และอื่นๆ และไม่มีให้ใช้งานใน ScaffoldState อีกต่อไป ใช้ Modifier.onPosition กับคอมโพเนนต์ที่คุณต้องการทราบขนาดแทน เพิ่ม contentColor และ Modifier pamateres ไปยัง 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) และตัวบ่งชี้Container เปลี่ยนชื่อเป็น indicator ดูตัวอย่างและเอกสารประกอบสำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีใช้ API ที่อัปเดตและค่าเริ่มต้น (I54d45, b/161809544)
  • มีการปรับแต่งพารามิเตอร์เกณฑ์ใน Modifier.swipeable แล้ว เดี๋ยวนี้ ใช้คู่สถานะ (ประเภท T) และแสดงผลเกณฑ์ระหว่างสถานะเหล่านั้น ในรูปแบบ ThresholdConfig เพิ่ม closeThresholds ของพารามิเตอร์ลงใน ScrollToOff ซึ่งเป็น lambda (CloseDirection) -> ThresholdConfig (Ie1080)
  • แถบเลื่อนมีสีมากกว่าสำหรับการปรับแต่งแบบละเอียด (I73e64, b/161810475)
  • เปลี่ยนชื่อพารามิเตอร์สีของการ์ดเป็น backgroundColor (I01fc1, b/161809546)
  • Snackbar มีสีพื้นหลังและสีเนื้อหาที่ปรับแต่งได้เลย (I238f2, b/161804381)
  • เพิ่มพารามิเตอร์การปรับแต่ง, backgroundColor, contentColor และ scrimColor ไปยังลิ้นชัก (I23655, b/161804378)
  • ขณะนี้ Composable ของ state { ... } เลิกใช้งานแล้วเพื่อให้ การเรียกไปที่ remember { mutableStateOf(...) } อย่างชัดแจ้งเพื่อความชัดเจน การดำเนินการนี้จะลดแพลตฟอร์ม API โดยรวมและจำนวนแนวคิดสำหรับสถานะ การจัดการ และตรงกับรูปแบบ by mutableStateOf() สำหรับชั้นเรียน การมอบสิทธิ์พร็อพเพอร์ตี้ (Ia5727)
  • พารามิเตอร์ระยะห่างจากขอบของปุ่มเปลี่ยนชื่อเป็น contentPadding (Id252e, b/161809394)
  • เพิ่มคอมโพเนนต์เนื้อหาการทดสอบ "ปัดเพื่อปิด" (I129e5)

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

  • นำ onChildPositioned และ OnChildPositionedModifier ออกแล้ว นักพัฒนาแอปควรใช้ onPositioned และ OnPositionedModifier ในเลย์เอาต์ย่อยแทน (I4522e, b/162109766)
  • เพิ่มMergePolicy lambda ลงใน SemanticsPropertyKey แล้ว ประเภท ใช้เพื่อกำหนดนโยบายที่กำหนดเองสำหรับความหมายการผสานAllDescendants การผสาน นโยบายเริ่มต้นคือใช้ค่าระดับบน หากมีอยู่แล้ว ปรากฏ หรือไม่ก็มีค่าย่อย (Iaf6c4, b/161979921)
  • IntSize เป็นคลาสแบบอินไลน์แล้วในตอนนี้ (I2bf42)
  • PlacementScope.placeAbsolute() เปลี่ยนชื่อเป็น PlacementScope.place() และ PlacementScope.place() ก่อนหน้านี้เปลี่ยนชื่อเป็น PlacementScope.placeRelative() ด้วยเหตุนี้ เมธอด PlacementScope.place() จะไม่มิเรอร์ตำแหน่งในบริบทแบบขวาไปซ้ายโดยอัตโนมัติอีกต่อไป หากต้องการ โปรดใช้ PlacementScope.placeRelative() แทน (I873ac, b/162916675)
  • PxBound ที่เลิกใช้งานแล้วใน ชอบสี่เหลี่ยมผืนผ้า อัปเดตการใช้งานทั้งหมดแล้ว ของ PxBounds พร้อมรูปสี่เหลี่ยมและเพิ่ม การเลิกใช้งาน/แทนที่ด้วย เพื่อช่วยเสริม การย้ายข้อมูล (I37038, b/162627058)
  • เปลี่ยนชื่อ Rect เป็น RoundRect แล้ว เพื่อให้พอดีกับรูปแบบการตั้งชื่อ สร้างตัวสร้างฟังก์ชันที่คล้ายกัน ไปยัง "Rect" และเลิกใช้งานฟังก์ชัน 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

  • สีเป็นคลาสสุดท้ายแทนที่จะเป็นอินเทอร์เฟซ แทนที่จะขยายและให้การใช้งานที่กำหนดเอง คุณควรสร้าง แอมเบียนท์ใหม่สำหรับออบเจ็กต์ธีมที่กำหนดเอง และเข้าถึงออบเจ็กต์ธีมผ่าน แอมเบียนท์ใหม่ในคอมโพเนนต์ คล้ายกับการทำงานของ MaterialTheme (Ibae84)
  • เปลี่ยนชื่อ ColorPalette เป็นสี เพื่อให้จับคู่กับระบบสีของ 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 มีการเริ่มใช้คลาส ScrollableState แบบใหม่และ 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 ให้เป็นพารามิเตอร์ที่ไม่ใช่ค่าว่างได้แทน lateinit และตรวจสอบว่าฟิลด์จะไม่เป็นโมฆะ
    6. เปลี่ยนชื่อ ClipOp enum เป็น Pascal Case แล้ว
    7. เปลี่ยนชื่อ enum ของFilterquality เป็น Pascal Case แล้ว
    8. เปลี่ยนชื่อ Strokeเข้าร่วม enum เป็น Pascal Case แล้ว
    9. เปลี่ยนชื่อ enum ของ PointMode เป็น Pascal Case แล้ว
    10. เปลี่ยนชื่อ enum ของ PaintingStyle เป็น Pascal Case แล้ว
    11. เปลี่ยนชื่อ PathFillType enum เป็น Pascal Case แล้ว
    12. เปลี่ยนชื่อ StrokeCap enum เป็น Pascal Case แล้ว
    13. อัปเดตการใช้งาน DrawCache เป็นไม่แล้ว ใช้พารามิเตอร์ Latinit
    14. อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบ Lazy อีกต่อไป สำหรับพารามิเตอร์ภายในfillPaint และ Straint
    15. อัปเดตรูปภาพที่ประกอบขึ้นได้เพื่อหลีกเลี่ยงการใช้ Box ลดค่าใช้จ่าย
    16. อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
    17. อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ วิธีการในแต่ละเส้นทาง
    18. อัปเดตองค์ประกอบย่อยเวกเตอร์เพื่อนำรายการที่ซ้ำซ้อนออก การตรวจสอบความเทียบเท่าแบบมีเงื่อนไขตามแฮนเดิลของการเขียนที่มีอยู่แล้ว พวกมัน
    19. เลิกใช้งานเมธอดตัวสร้างโฆษณาที่แสดงร่วมรูปสี่เหลี่ยมผืนผ้าที่ต้องการแล้ว ของตัวสร้างฟังก์ชัน
    20. อัปเดตคลาสของแปรงและเครื่องมือสร้างฟังก์ชันด้วย API @ที่เปลี่ยนแปลงไม่ได้และ @เสถียร
    21. อัปเดต enum VertexMode เป็น PascalCase
    22. อัปเดต DrawScope เมธอด SelectPaint เป็นแบบมีเงื่อนไข เขียนทับพารามิเตอร์เส้นโครงร่างในการแสดงผล หากมี เปลี่ยนแปลงแล้ว
    23. อัปเดตขนาดเพื่อเพิ่ม API ที่ทำลายโครงสร้างแล้ว เปลี่ยนชื่อ UnidentifierSize เป็น "Unidentifier [ไม่ระบุ]" และ "นำเมธอดที่ไม่ได้ใช้ออก"
  • ย้ายกล่องโต้ตอบไปยัง 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 อย่างชัดแจ้ง conversionDefinition (แก้ไขแล้ว)
  • เลิกใช้งาน Modifier.plus แล้ว โปรดใช้ Modifier.then แทน "จากนั้น" มีสัญญาณในการจัดลำดับมากกว่า ในขณะเดียวกันก็ห้ามพิมพ์ Modifier.padding().background() + anotherModifier ทำให้เชนหลุดและอ่านยากขึ้น (Iedd58, b/161529964)
  • เปลี่ยนชื่อ AndroidComposeTestRule เพื่อสร้าง AndroidComposeRule แล้ว (I70aaf)
  • เพิ่ม isFocused() และ isNotFocused() SemanticsMatcher (I0b760)
  • นำออกแล้ว BaseGestureScope.globalBounds ซึ่งไม่ควรเป็นเช่นนั้น ที่ใช้จากการทดสอบ ใช้พิกัดภายในของโหนดที่คุณอยู่ โต้ตอบแทน (Ie9b08)
  • ตำแหน่งป๊อปอัปคงที่บนจอแสดงผลที่ตัดออก (Idd7dd)
  • Modifier.drawBackground ได้เปลี่ยนชื่อเป็น Modifier.background (I13677)

เวอร์ชัน 0.1.0-dev15

22 กรกฎาคม 2020

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

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

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

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

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

    เหตุผล

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

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

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

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

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

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

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

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

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

    ทางเลือก 2: ใช้ mutableStateOf และผู้รับมอบสิทธิ์พร็อพเพอร์ตี้

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

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

    (I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, {1263/143})

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

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

  • นำ Modifier.ripple ที่เลิกใช้งานแล้วออก ตอนนี้ฟีเจอร์ "คลิกได้" จะใช้ระลอกคลื่นเป็นตัวบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ไว้ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณสามารถใช้สัญลักษณ์แบบคลิกและรับสัญญาณระลอกคลื่นได้ฟรี หากคุณต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ที่มีขอบเขตสำหรับ RippleIndication คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยังคลิกเพื่อใช้เป็นพารามิเตอร์ตัวบ่งชี้ได้ (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 แล้ว ฟิลด์ข้อความ FilledTextField และ CoreTextField ที่ใช้ Composable ที่ใช้ ประเภทนั้นก็เลิกใช้งานแล้วด้วย โปรดใช้ 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 ตอนนี้ฟีเจอร์ "คลิกได้" จะใช้ระลอกคลื่นเป็นตัวบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ไว้ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณสามารถใช้สัญลักษณ์แบบคลิกและรับสัญญาณระลอกคลื่นได้ฟรี หากคุณต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ที่มีขอบเขตสำหรับ 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 และ ขอบเขตการวาดเนื้อหา เปลี่ยนชื่อ CanvasScope เป็น DrawScope อัปเดต DrawScope เพื่อใช้ความหนาแน่น อินเทอร์เฟซ และแสดง LayoutDirection ลบคลาสย่อย DrawScope ใน ContentDrawScope อัปเดต Painter และ PainterModifier แล้ว เพื่อไม่ให้มีพร็อพเพอร์ตี้ RTL อีกต่อไป และ DrawScope มีข้อมูลนี้แล้ว โดยไม่ต้องระบุด้วยตนเอง (I1798e)

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

  • ตอนนี้ปุ่มที่ปิดใช้แล้วมีลักษณะตามข้อกำหนดของดีไซน์ Material (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)

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

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

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

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

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

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

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

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

  • พารามิเตอร์ที่เปลี่ยนชื่อใน Divider Composable (Ic4373)

  • เด็ก (Ia6d19)

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

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

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

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

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

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

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

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

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

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

  • เปลี่ยนโครงสร้างของ API แท็บให้ยอมรับ text และ icon lambda (Ia057e)

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

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

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

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

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

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

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

  • เพิ่มองค์ประกอบของวัสดุนั่งร้านแล้ว อุปกรณ์นั่งร้าน (I7731b)

  • แทนที่ DrawBorder เพื่อใช้ตัวควบคุมเส้นขอบ (Id335a)

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

  • FocusModifier เลิกใช้งานไปแล้วเพื่อใช้ Modifier.Focus, Modifier.focusRequester, Modifier.FocusObserver แทน FocusState และ FocusDescriptionState เลิกใช้งานแล้วเพื่อใช้ FocusState2 (I46919, b/160822875, b/160922136)
  • เลิกใช้งาน Vertical Scroller และ Horiziontalscroller แล้ว ใช้ ScrollableColumn และ ScrollableRow สำหรับประสบการณ์แบบบิวท์อินที่มีลักษณะการทำงานของคอลัมน์/แถวและพารามิเตอร์ หรือใช้ Modifier.verticalscroll และ Modifier.โมการเพิ่มแนวนอนในองค์ประกอบของคุณเอง ในทำนองเดียวกัน 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 }' เขียนเป็น: 'ความหมาย {hidden() }' (Ic1afd, b/145951226, b/145955412)
  • มีการเปลี่ยนชื่อ API การทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น ทั้งหมด searchXYZ API ได้เปลี่ยนชื่อเป็น onNodeXYZ เปลี่ยนชื่อ API ของ doXYZ ทั้งหมดเป็น OperatXYZ (I7F164)
  • เปลี่ยน API การเปลี่ยนให้แสดงผล TransitionState แทนการส่งผ่าน TransitionState ให้แก่เด็กๆ ซึ่งจะทำให้ API มีความสอดคล้องกับ animate() API (I24e38)
  • เพิ่มคลาสหน่วย IntBounds แล้ว ซึ่งแสดงขอบเขตพิกเซลที่เป็นจำนวนเต็มจากเลย์เอาต์ มีการอัปเดต API ของ PopupPositionProvider ให้ใช้งาน (I0d8d0, b/159596546)
  • มีการเพิ่ม Flag useUnmergedTree ใหม่ที่ไม่บังคับในเครื่องมือค้นหาทดสอบ (I2ce48)
  • นำ API การทดสอบขนาดที่ล้าสมัยออก (Iba0a0)
  • ลบคลาส Shader inline ที่ รวมคลาส NativeShader คาดหวัง เปลี่ยนชื่อ NativeShader เป็น Shader คลาส Shader inline ที่รวมไว้ได้ ไม่เพิ่มสิ่งใดก็ตามที่มีคุณค่าลงในแพลตฟอร์ม API และเป็นคลาสแบบอินไลน์ ดังนั้นโปรดใช้ NativeShader โดยตรง (I25e4d)
  • ป๊อปอัป กล่องโต้ตอบ และเมนูกำลังรับค่า MaterialTheme ตามบริบท (Ia3665, b/156527485)
  • คุณเลื่อนเมนู Material ในเมนูแบบเลื่อนลงได้แล้ว (Ide699)
  • นำพารามิเตอร์ทิศทางของเลย์เอาต์ออกจากบล็อกการวัดของฟังก์ชัน Layout() อย่างไรก็ตาม ทิศทางของเลย์เอาต์จะมีอยู่ใน Callback ผ่านออบเจ็กต์ Measure Scope (Ic7d9d)
  • ใช้ AnimationSpec แทน AnimationBuilder ใน API ระดับบนสุด เพื่อสร้างความชัดเจนเกี่ยวกับข้อกำหนดของภาพเคลื่อนไหวแบบคงที่ -ปรับปรุง DSL การเปลี่ยนด้วยการนำข้อกำหนด lambda ออกสำหรับ การสร้าง AnimationSpecs เช่น Tween, Spring แต่กลับใช้ พารามิเตอร์ตัวสร้างโดยตรง -เพิ่มความสะดวกในการใช้งานโดยรวมของ AnimationSpec ผู้สร้างแทนที่จะพึ่งพาผู้สร้าง -เปลี่ยนระยะเวลาและการหน่วงเวลาสำหรับ KeyFrame และ Tween เป็น Int ช่วงเวลานี้ ขจัดประเภทการแคสต์ที่ไม่จำเป็นและวิธีการโหลดมากเกินไป (สำหรับ สนับสนุนทั้ง Long และ Int) (Ica0b4)
  • สวิตช์จะปรากฏในสถานะปิดใช้เมื่อตั้งค่า enabled เป็น "เท็จ" (If4624, b/155941869, b/159331694)
  • Modifier.tag เปลี่ยนชื่อเป็น Modifier.layoutId เพื่อหลีกเลี่ยงความสับสนกับ Modifier.testTag (I995f0)
  • ขณะนี้ตำแหน่ง Int ของเส้นจัดตำแหน่งที่แสดงผลจาก Placeable#get(AlignmentLine) ไม่เป็นค่าว่างแล้ว หากบรรทัดการจัดเรียงที่ค้นหาขาดหายไป ระบบจะแสดงผล AlignmentLine.Unidentifier (I896c5, b/158134875)
  • คลาสรัศมีแบบปรับโครงสร้างใหม่ให้เป็น ในบรรทัด นำการสร้างโฆษณาที่แสดงร่วมออกแล้ว เมธอดที่ใช้กับตัวสร้างฟังก์ชัน พร้อมด้วยพารามิเตอร์เริ่มต้นให้มีรัศมี ตามแกน y ให้ตรงกับค่าของ พารามิเตอร์รัศมีแกน x

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

  • ในการรวม จำนวนคลาสที่ใช้แสดง ข้อมูลการวางตำแหน่ง, ทำให้เป็นมาตรฐาน เกี่ยวกับการใช้คลาสออฟเซ็ตแทน ของ PxPosition ซึ่งมีประโยชน์ ของคลาสในหน้าที่จะใช้ประโยชน์จาก เพื่อบรรจุค่าจำนวนลอยตัว 2 ค่าเพื่อแสดง x และออฟเซ็ต y แสดงเป็นเลขทศนิยม (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)

  • ตอนนี้ Vertical Scroller สามารถจัดเตรียมคอลัมน์ให้ใช้งานได้แล้ว ตอนนี้ Horizontalscroller แสดง "แถวแนวนอน" จากกล่องแล้ว (Ieca5d, b/157020670)

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

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

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

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

  • เลิกใช้งาน AlignmentLineOffset composable แล้ว โปรดใช้ตัวปรับแต่ง relatedPaddingFrom() แทน CenterAlignmentLine Composable ถูกนำออกแล้ว (I60107)

  • มีการเปลี่ยนแปลงด้วย WithConstraints ต่อท้าย lambda API จากนี้จะมีเพียง 2 พารามิเตอร์ แต่กลับมีขอบเขตตัวรับ ซึ่งนอกเหนือจากข้อจำกัดและการจัดวางDirection ยังมีคุณสมบัติ 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)

  • แทนที่ CoreTextField/TextFieldIdentifierIdentifier กับ FocusNode เพื่อผสานรวมกับระบบย่อยของโฟกัส (I7ea48)

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

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

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

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

  • เพิ่มพารามิเตอร์แบบแรงโน้มถ่วงแนวตั้งและแนวนอนแรงโน้มถ่วงที่แถวและคอลัมน์ตามลำดับ (I7dc5a)

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

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

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

  • โมดูล ui-text-compose ถูกเปลี่ยนชื่อเป็นข้อความ ui-text ข้อความ UI ตอนนี้มี CoreText และ CoreTextField Composables (Ib7d47)

  • โมดูลข้อความ UI เปลี่ยนชื่อเป็น ui-text-core (I57dec)

  • ย้าย ui-framework/CoreText, CoreTextField composables ภายใต้แล้ว ui-text-compose คุณอาจต้องการใส่ "ui-text-compose" ไว้ใน (I32042)

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

    • สร้างขอบเขตตัวรับสำหรับDraw() ContentDrawScope
    • นำพารามิเตอร์ทั้งหมดใน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 เลิกใช้ DrawVector ก่อนหน้า Composable ดีกว่า VectorPainter

    เปลี่ยนชื่อ API ของ Image(Painter) เป็น PaintBox(Painter) สร้าง Vector Composable ที่มีลักษณะการทำงานเหมือน รูปภาพ Composable ยกเว้น VectorAsset แทน ของ ImageAsset (I9af9a, b/149030271)

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

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

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

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

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

  • แทนที่ฟังก์ชัน Composable ของ 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 ในหน้าจอ Composable นี้ ยังสนับสนุนการวาดภาพใดๆ ก็ตามที่กำหนดเอง อินสแตนซ์ที่คำนึงถึงขนาดที่แท้จริง รวมถึงการสนับสนุน ขนาดหรือขนาดต่ำสุด (Ibcc8f)

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

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

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

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

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

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

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

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

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

  • เราได้รวมความหนาแน่นและ DensityScope เป็นอินเทอร์เฟซเดียว ตอนนี้คุณใช้ DensityAmbient.current แทนเงื่อนไขแอมเบียนท์Density() ได้แล้ว แทน withDensity(density) เพียงด้วย(density) (I11cb1)

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

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

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