UI การเขียน
androidx.compose.ui
androidx.compose.ui.geometry
androidx.compose.ui.graphics
androidx.compose.ui.platform
androidx.compose.ui.test
(ดูเอกสารอ้างอิง API สำหรับแพ็กเกจการเขียนทั้งหมด)
อัปเดตล่าสุด | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
7 สิงหาคม 2024 | 1.6.8 | - | 1.7.0-เบต้า 07 | - |
โครงสร้าง
การเขียนจะรวมรหัสกลุ่ม 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.ui:ui:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.ui:ui:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มการอ้างอิงของบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูที่ ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนที่จะสร้างใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา เพื่อดูข้อมูลเพิ่มเติม
เวอร์ชัน 1.7
เวอร์ชัน 1.7.0-beta07
7 สิงหาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta07
แล้ว เวอร์ชัน 1.7.0-beta07 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ตอนนี้ฟังก์ชัน
SemanticsNodeInteraction
ที่เกี่ยวข้องกับการป้อนข้อความperformTextReplacement
,performTextInput
และperformTextClearance
จะแสดงข้อผิดพลาดเกี่ยวกับการยืนยันเมื่อเรียกใช้ฟังก์ชันTextFields
แบบอ่านอย่างเดียว (I4ae8f)
เวอร์ชัน 1.7.0-beta06
24 กรกฎาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta06
แล้ว เวอร์ชัน 1.7.0-beta06 มีคอมมิตเหล่านี้
เวอร์ชัน 1.7.0-beta05
10 กรกฎาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta05
แล้ว เวอร์ชัน 1.7.0-beta05 มีสัญญาผูกมัดเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่การเปลี่ยนแป้นพิมพ์ซอฟต์แวร์อาจทำให้
TextField
ไม่ยอมรับการป้อนข้อมูลจากแป้นพิมพ์ใหม่จนกว่าจะหลุดโฟกัสและโฟกัสกลับคืนมา - แก้ไขปัญหาที่การพยายามคงเนื้อหาของเลเยอร์จะทำให้เกิดผลข้างเคียงที่ไม่คาดคิดเมื่อแสดงผลด้วยเนื้อหา
SurfaceView
เวอร์ชัน 1.7.0-beta04
26 มิถุนายน 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta04
แล้ว เวอร์ชัน 1.7.0-beta04 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- หลีกเลี่ยงข้อขัดข้องเมื่อวัดบรรทัดข้อความขนาดใหญ่มาก (เช่น 10,000 อักขระ) (8157ab)
- ปิดใช้การรองรับการแสดงผลของซอฟต์แวร์สำหรับ
GraphicsLayer
API (35ddd8) - แก้ไขข้อขัดข้องในตรรกะความต่อเนื่องของเลเยอร์ (70b13E)
- การใช้การเพิ่มประสิทธิภาพออบเจ็กต์เลเยอร์ซ้ำถูกเปลี่ยนกลับ เนื่องจากทำให้เกิดปัญหาในการแสดงผล (70b13E)
เวอร์ชัน 1.7.0-beta03
12 มิถุนายน 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta03
แล้ว เวอร์ชัน 1.7.0-beta03 มีสัญญาผูกมัดเหล่านี้
เวอร์ชัน 1.7.0-beta02
29 พฤษภาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta02
แล้ว เวอร์ชัน 1.7.0-beta02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
SemanticsProperties.Editable
เป็นIsEditable
และเปลี่ยนSemanticsPropertyReceiver.editable
เป็น ค่าisEditable
ตอนนี้พร็อพเพอร์ตี้นี้จะเป็นบูลีนและช่องข้อความจะระบุเสมอ (I8acd8) - เปลี่ยนชื่อพารามิเตอร์การเปรียบเทียบการช่วยเหลือพิเศษ (I3d440)
- อัปเดต API สำหรับการจัดรูปแบบลิงก์:
TextLinkStyles
เป็นส่วนหนึ่งของตัวสร้างLinkAnnotation
และเมธอดAnnotatedString.fromHtml
(I90b2b) แล้ว นำTextDefaults
ออกจากวัสดุด้วย (I5477b)
แก้ไขข้อบกพร่อง
- เปลี่ยนชื่อ
LayoutCoordinates.introducesFrameOfReference
เป็นLayoutCoordinates.introducesMotionFrameOfReference
แล้วเพื่อให้สื่อถึงวัตถุประสงค์ได้ดียิ่งขึ้น เปลี่ยนชื่อฟังก์ชันที่เกี่ยวข้องเพื่อคำนวณพิกัดตามค่าสถานะนั้น (I3a330)
เวอร์ชัน 1.7.0-beta01
14 พฤษภาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-beta01
แล้ว เวอร์ชัน 1.7.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
performCustomAccessibilityActionLabelled
เป็นperformCustomAccessibilityActionWithLabel
และperformCustomAccessibilityActionWhere
เป็นperformCustomAccessibilityActionWithLabelMatching
แล้ว (I5387f) AnnotatedString.hasEqualsAnnotations
ตอนนี้เป็นhasEqualAnnotations
(I685c0)- อัปเดต API เพื่อรับลิงก์ธีม Material ในข้อความ กล่าวโดยเจาะจงคือ ได้นำเมธอดออกจาก
TextDefaults
สำหรับการสร้างLinkAnnotations
ตามธีมและแยกวิเคราะห์ HTML ที่มีลิงก์ที่มีธีม แต่ได้เพิ่มคลาสTextLinkStyles
ที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Text Composable แทน (I31B93)
แก้ไขข้อบกพร่อง
- แก้ไขกรณีการใช้งานเพิ่มเติมเมื่อมีการเพิ่มตัวปรับแต่งอินพุตตัวชี้แบบไดนามิกในระหว่างเหตุการณ์ 63e1504
เวอร์ชัน 1.7.0-alpha08
1 พฤษภาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha08
แล้ว เวอร์ชัน 1.7.0-alpha08 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มการสนับสนุนสำหรับการใช้งานรูปร่างที่เปลี่ยนแปลงได้ ขณะนี้สังเกต
Shape#createOutline
ได้ภายในเลเยอร์กราฟิก ดังนั้นการอ่านค่าสถานะภายในจะทําให้เกิดการไม่ถูกต้องเมื่อสถานะเปลี่ยนแปลง ทำให้ภาพเคลื่อนไหวของรูปร่างมีประสิทธิภาพมากขึ้น (รหัส 1629, b/326070216) - เปลี่ยนชื่อ
isPositionedByParentWithDirectManipulation
เป็นintroducesFrameOfReference
แล้ว โปรดทราบว่าตอนนี้การตั้งค่าจะเกิดการย้อนกลับ ซึ่งหมายความว่าโดยค่าเริ่มต้นLayoutCoordinates
ส่วนใหญ่จะใช้กรอบอ้างอิง และเมื่ออยู่ภายใต้การควบคุมโดยตรง พร็อพเพอร์ตี้จะเป็นเท็จเท่านั้น หากต้องการค้นหาตำแหน่งที่มีเฉพาะรายการที่มีกรอบอ้างอิง ให้ใช้positionInLocalFrameOfReference(...)
หรือpositionInLocalLookaheadFrameOfReference
จากLookaheadScope
(Ifc5f7) LookaheadScope
API ปรับให้เสถียรแล้ว (I21507)- เปลี่ยนการดำเนินการ lambda สำหรับ
getScrollViewportLength
ตามความคิดเห็นเกี่ยวกับ API ของสภา (Ibc74a) - อัปเดต
GraphicsLayer
Outline API เพื่อใช้พารามิเตอร์แบบลอยแทน int ลบค่าความเห็นUnsetOffset/UnsetSize IntSize
เพื่อใช้ค่าคงที่ที่ไม่ได้ระบุที่มีอยู่แล้วในคลาสออฟเซ็ตที่ขึ้นกับจำนวนลอยตัวและคลาสแทรกในบรรทัดที่มีขนาด (I2fb03, b/333863462) - ตอนนี้เมื่อแทรกอินพุตจากเมาส์ระหว่างการทดสอบ
MouseInjectionScope.click()
,MouseInjectionScope.doubleClick()
,MouseInjectionScope.tripleClick()
,MouseInjectionScope.longClick()
จะยอมรับพารามิเตอร์button: MouseButton
เพื่อให้ใช้ได้อย่างทั่วถึงมากขึ้น ค่าเริ่มต้นคือMouseButton.Primary
สําหรับทุกเมธอด (I31a23, b/190493367, b/261439695) - เปลี่ยนชื่อ
onClicked
เป็นonClick
ภายในLinkInteractionListener
แล้ว (Iaa35c) - เปลี่ยนชื่อ
TextInclusionStrategy.isInside
เป็นisIncluded
ทำให้ประเภทผลลัพธ์Paragraph/MultiParagraph#getRangeForRect()
เป็นค่าว่างไม่ได้ (I51F26)
แก้ไขข้อบกพร่อง
- แก้ไขการจับภาพหน้าจอแบบยาวสำหรับคอนเทนเนอร์แบบเลื่อนด้วย
reverseScrolling=true
(I7c59C)
การสนับสนุนภายนอก
- เพิ่มการรองรับสำหรับการดึงข้อมูลรายการล่วงหน้าใน
LazyLists
ที่ฝังไว้ (เช่นLazyColumn
ที่แสดงผลLazyRows
ที่ฝัง) การเปลี่ยนแปลงนี้คาดว่าจะช่วยลดการลดลงของเฟรมระหว่างการเลื่อนสำหรับLazyLists
เหล่านี้ ค่าเริ่มต้นของการใช้งานคือให้ดึงข้อมูลรายการที่ฝัง 2 รายการแรกไว้ล่วงหน้า อย่างไรก็ตาม API ของLazyLayoutPrefetchStrategy(nestedPrefetchItemCount)
และLazyListPrefetchStrategy#onNestedPrefetch
ใหม่จะควบคุมลักษณะการทำงานนี้ได้ (I51952)
เวอร์ชัน 1.7.0-alpha07
17 เมษายน 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha07
แล้ว เวอร์ชัน 1.7.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ทำเครื่องหมาย
ClickableText
ว่าเลิกใช้งานแล้ว หากต้องการเพิ่มลิงก์ไปยังข้อความ ให้สร้างAnnotatedString
ที่มีLinkAnnotation
ที่สอดคล้องกับลิงก์ของคุณ แล้วส่งAnnotatedString
นี้ไปยัง Text Composable (I34d4b, b/323346994) - แนะนำ
ViewConfiguration.HandwritingGestureLineMargin
สำหรับท่าทางสัมผัสการเขียนด้วยลายมือ รองรับท่าทางสัมผัสJoinOrSplit
สำหรับBasicTextField
(Ie6e13, b/325660505) FocusProperties.enter
และFocusProperties.exit
ไม่ใช่เวอร์ชันทดลองอีกต่อไปFocusDirection.Enter
และFocusDirection.Exit
ไม่ใช่เวอร์ชันทดลองอีกต่อไปFocusRequester.Cancel
ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I461a1, b/261564106)- เมื่อค้นหาพิกัดของเลย์เอาต์ ตอนนี้คุณสามารถใช้อาร์กิวเมนต์
excludeDirectManipulationOffset
เพื่อยกเว้นออฟเซ็ตที่เลย์เอาต์ระดับบนสุดซึ่งวางองค์ประกอบระดับล่างโดยใช้Placeable.PlacementScope.withDirectManipulationPlacement
ได้แล้ว ในทำนองเดียวกัน เลย์เอาต์ที่เปลี่ยนตำแหน่งรายการย่อยบ่อยๆ อาจวางเลย์เอาต์โดยใช้withDirectManipulationPlacement
(เช่น เลื่อน ซึ่งมีการใช้งานโดยค่าเริ่มต้น) วิธีนี้จะช่วยให้ภาพเคลื่อนไหวที่อิงตามapproachLayout
ใช้งานง่ายขึ้น ทำให้มีโอกาสแยกความแตกต่างของออฟเซ็ตที่จะสร้างภาพเคลื่อนไหว และสิ่งที่จะนำไปใช้โดยตรงเมื่อตัดสินใจเลือกภาพเคลื่อนไหว (I60ec7) - มีการนำแฟล็กฟีเจอร์สำหรับภาพหน้าจอแบบยาวออก (I28648, b/329128246)
- ตอนนี้
LazyColumn
จะแสดงส่วนหัวแบบติดหนึบอย่างถูกต้องในภาพหน้าจอขนาดยาว (I8d239, b/329296635) UserInput
และSideEffect
จะมาแทนที่แหล่งที่มาการลากและวางNestedScroll
เพื่อรองรับคำจำกัดความแบบขยายของแหล่งที่มาเหล่านี้ ซึ่งตอนนี้จะมีภาพเคลื่อนไหว (เอฟเฟกต์ด้านข้าง) และล้อเลื่อนของเมาส์ (UserInput
) (I40579)- ขณะนี้
ApproachLayoutModifierNode
และModifier.approachLayout
มีความเสถียรแล้ว โดยisMeasurementApproachInProgress()
ใหม่และisPlacementApproachInProgress()
จะแทนที่isMeasurementApproachComplete()
เก่าและisPlacementApproachComplete()
ตามลำดับ - นำตัวแก้ไข
intermediateLayout
ที่เลิกใช้งานแล้วออก (I3e91C) - เปลี่ยนชื่อ
GraphicsLayer#buildLayer
เพื่อบันทึกวิธีการเริ่มต้น/สิ้นสุดการบันทึกของ API ที่สำรองไว้ในรายการ Display เช่นRenderNode
และ Picture - อัปเดต
rememberGraphicsLayer
เพื่อใช้ประโยชน์จากrememberObserver
(I312c1, b/288494724, b/330758155) UrlAnnotation
เลิกใช้งานแล้ว โปรดใช้LinkAnnotation.Url
แทน หากคุณใช้ธีม Material ให้ใช้ออบเจ็กต์TextDefaults
เพื่อสร้างคำอธิบายประกอบที่มีการใช้ธีม Material (I8d180, b/323346545)- ลิงก์ข้อความได้รับตัวเลือกการจัดรูปแบบสถานะการกดนอกเหนือจากการจัดรูปแบบปกติ การวางเมาส์เหนือ และโฟกัส (I5f864, b/139312671)
String.parseAsHtml
เปลี่ยนชื่อเป็นAnnotatedString.Companion.fromHtml
(I43dcd)- เพิ่มอาร์กิวเมนต์การจัดรูปแบบ (
linkStyle
,focusedLinkStyle
,hoveredLinkStyle
) และ Listener การโต้ตอบลิงก์ให้กับเมธอดparseAsHtml
เมื่อแยกวิเคราะห์สตริงที่ติดแท็ก HTML ด้วยแท็ก<a>
เมธอดจะสร้างLinkAnnotation.Url
สำหรับแท็กดังกล่าวแต่ละแท็ก และส่งออบเจ็กต์การจัดรูปแบบและ Listener การโต้ตอบลิงก์ไปยังคำอธิบายประกอบแต่ละรายการ (I7c977) - ตอนนี้
LinkAnnotation
จะใช้อาร์กิวเมนต์การจัดรูปแบบตามสถานะและLinkInteractionListener
เพิ่มคำอธิบายประกอบนี้ในAnnotatedString
เพื่อรับไฮเปอร์ลิงก์ เมื่อส่งผ่านfocusedState
และ/หรือhoveredState
คุณจะสามารถกำหนดconfiguration
ภาพสำหรับลิงก์เมื่อลิงก์ถูกโฟกัสและ/หรือวางเมาส์เหนือ (I81ce4, b/139312671) ImeOptions.hintLocales
เป็นค่าว่างไม่ได้แล้ว หากคุณต้องการส่งรายการภาษาที่ว่างเปล่า โปรดใช้LocaleList.Empty
(Ic5bc4)
แก้ไขข้อบกพร่อง
- จัดการข้อมูลเหตุการณ์ป้อนข้อมูลที่ผ่านมาที่ไม่ดี/เสียหายอย่างสวยงาม (ละเว้นข้อมูลออฟเซ็ตที่ไม่ถูกต้อง)
- แก้ไขเหตุการณ์ของตัวชี้ที่ไม่คาดคิดเมื่อมีการเพิ่มตัวแก้ไขอินพุตของตัวชี้แบบไดนามิกก่อนตัวปรับแต่งอินพุตตัวชี้อีกตัวหนึ่งในระหว่างสตรีมเหตุการณ์อินพุตตัวชี้ที่ใช้งานอยู่ (เช่น ระหว่างการป้อนเมื่อวางเมาส์และการออกจากการวางเมาส์เหนือ [เมาส์/สไตลัส])
เวอร์ชัน 1.7.0-alpha06
3 เมษายน 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha06
แล้ว เวอร์ชัน 1.7.0-alpha06 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มเมธอด
parseAsHtml
สำหรับสตริงที่มีการจัดรูปแบบ: ช่วยให้แปลงสตริงที่มีเครื่องหมายแท็ก HTML เป็นAnnotatedString
ได้ โปรดทราบว่าระบบยังไม่รองรับแท็กบางรายการ เช่น คุณจะยังแสดงรายการหัวข้อย่อยไม่ได้ (I84d3d, I30626, b/139326648) - รองรับเวอร์ชันทดลองสำหรับภาพหน้าจอแบบยาวในคอนเทนเนอร์ Compose ของคอนเทนเนอร์โดยใช้ Android API อย่างเป็นทางการ (
ScrollCaptureCallback
) ฟีเจอร์นี้ยังอยู่ระหว่างการทดสอบและอาจไม่สามารถจัดการได้ในทุกกรณีอย่างถูกต้อง ด้วยเหตุนี้ ระบบจึงปิดใช้ฟีเจอร์นี้โดยค่าเริ่มต้น หากต้องการเลือกใช้ ให้ตั้งค่าแฟล็กComposeFeatureFlag_LongScreenshotsEnabled
เป็น "จริง" (I2b055, b/329296471)
การเปลี่ยนแปลง API
fun ClipEntry.getMetadata()
เปลี่ยนเป็นval ClipEntry.clipMetadata
(I50155)- นำฟังก์ชัน
ClipboardManager.getClipMetadata
และClipboardManager.hasClip
ออกแล้ว โปรดใช้clipEntry.getMetadata()
เพื่ออ่านข้อมูลเมตาของรายการคลิปปัจจุบัน นอกจากนี้ โปรดตรวจสอบผลลัพธ์ของClipboardManager.getClip
ว่าเป็นค่าว่างหรือไม่ เพื่อดูว่าคลิปบอร์ดมีคลิปปัจจุบันหรือไม่ (I50498) - ตอนนี้คุณสามารถส่งออบเจ็กต์
GraphicsLayer
รายการไปยังฟังก์ชันplaceable.placeWithLayer()
(I1b22f) ได้แล้ว ClipboardManager.setClip
ยอมรับค่า Null เพื่อล้างคลิปบอร์ดแล้ว (I7d2e9)- เพิ่มรหัสทรัพยากรเพื่อช่วยในการซ่อนข้อมูลพร็อพเพอร์ตี้ที่ใช้เป็นรายละเอียดการติดตั้งใช้งานภายในเครื่องมือสร้างบิลด์ (I99531)
- เพิ่มวิธีระงับ
GraphicsLayer#toImageBitmap
เพื่อรองรับการแสดงผลเนื้อหาของบิตแมปในGraphicsLayer
ซึ่งเป็นการดำเนินการแสดงผลที่มีการเร่งฮาร์ดแวร์ใน API ระดับ 22 ขึ้นไป (รวม) ซึ่งรองรับกว่า 99% ของอุปกรณ์ Android ทั้งหมด ใน Android API ระดับ 21 การดำเนินการนี้จะกลับไปใช้การแสดงผลของซอฟต์แวร์ (I9e114) - วิธีการของตัวช่วยในการแปลง Android
RectF
เป็นComposeRect
(I39925, b/325660505) - ตอนนี้พารามิเตอร์
KeyboardOptions
ทั้งหมดจะมีค่าที่ไม่ระบุโดยค่าเริ่มต้น เพิ่มKeyboardOptions.merge
วิธีแล้ว - เปลี่ยนชื่อ
KeyboardOptions.autoCorrect
เป็นautoCorrectEnabled
และทำให้เป็นค่าว่างได้ โดยค่า Null บ่งบอกว่าไม่ได้ระบุค่าใดๆ (Ia8ba0, b/295951492) - ขณะนี้ตัวแปร
BasicTextField(state)
และBasicSecureTextField
ใช้KeyboardActionHandler
แทนKeyboardActions
ในการประมวลผลการดำเนินการที่ทำโดยซอฟต์แวร์แป้นพิมพ์ (I58dda)
เวอร์ชัน 1.7.0-alpha05
20 มีนาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha05
แล้ว เวอร์ชัน 1.7.0-alpha05 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แนะนำ API ใหม่ของ
GraphicsLayer
เพื่อบันทึกคำสั่งวาดในรายการแสดงผล รวมถึงพร็อพเพอร์ตี้เพิ่มเติมที่ส่งผลต่อการแสดงผลของรายการที่แสดง วิธีนี้จะเป็นการแบ่งขอบเขตสำหรับแบ่งฉากที่ซับซ้อนออกเป็นส่วนย่อยๆ ที่จะอัปเดตแยกจากกันโดยไม่ต้องสร้างฉากทั้งหมดใหม่ คุณเปลี่ยนรูปแบบเป็นGraphicsLayer
ได้โดยไม่ต้องบันทึกรายการที่แสดงอีกครั้งGraphicsLayer
ต่างจากModifier.graphicsLayer
ตรงที่ช่วยให้แสดงผลเนื้อหาที่เขียนได้ในตำแหน่งอื่น และมีประโยชน์ในกรณีการใช้งานแบบภาพเคลื่อนไหวซึ่งคาดว่าจะมีการแสดงผลเนื้อหาในฉากต่างๆ
การเปลี่ยนแปลง API
GraphicsLayer.draw(Canvas)
ไม่ใช่ API สาธารณะอีกต่อไป โปรดใช้ฟังก์ชันส่วนขยายDrawScope.drawLayer(GraphicsLayer)
แทนเพื่อวาดเลเยอร์ (I7a7c0)- แยก
restrictedConstraints()
เป็น 2 วิธี:fitPrioritizingWidth()
และfitPrioritizingHeight()
(I6d7fd) - เปิดตัวสตับ
HardwareCanvas
สำหรับการใช้งาน Android L (I1c3b5, b/288494724) - อัปเดตเฟรมเวิร์กการเขียนเพื่อแสดงการเรียบเรียง
GraphicsContext
ในเครื่องควบคู่ไปกับการอัปเดตการใช้งานเจ้าของ,DelegateableNode
และdrawWithCache
เพื่อแสดงการเข้าถึงGraphicsContext
สำหรับการเข้าถึงที่กำหนดขอบเขต ซึ่งจะล้างอินสแตนซ์GraphicsLayer
โดยอัตโนมัติเมื่อตัวปรับแต่งถูกแยกออก (I64a2f, b/288494724) - เปิดตัว
InterceptPlatformTextInput
เพื่อช่วยเขียนการทดสอบที่เกี่ยวข้องกับ IME ระดับต่ำและกรณีการใช้งาน IME ระดับต่ำอื่นๆPlatformTextInputTestOverride
เลิกใช้งานแล้ว (I862ed, b/322680547) - เพิ่มฟังก์ชันของส่วนขยาย
GraphicsLayer.setOutline(Outline)
แล้ว (Ib81f4) - แนะนำเครื่องมือสร้างฟังก์ชัน
GraphicsContext
เพื่อสร้างโรงงานเพื่อสร้างGraphicsLayer
อินสแตนซ์ (Ib98d6, b/288494724) - เปิดเผย
GraphicsLayer
API เพื่อให้นักพัฒนาซอฟต์แวร์มีความยืดหยุ่นในการจับภาพคำสั่งวาดที่สามารถใช้วาดที่อื่นและยังนำเอฟเฟกต์ภาพต่างๆ ไปใช้กับผลลัพธ์สุดท้ายได้ด้วย (I80245, b/288494724) - แนะนำ
Paragraph#getRangeForRect
ซึ่งจะแสดงช่วงข้อความที่ครอบคลุมโดยพื้นที่สี่เหลี่ยมผืนผ้าที่กำหนด (Iee516, b/325660505) - นำการลบล้างทดสอบของ
BasicText
ที่มีอาร์กิวเมนต์onLinkClicked
ออกแล้ว API ทดแทนสำหรับการสนับสนุนไฮเปอร์ลิงก์ในอนาคตจะตามมาในอนาคต (I107d5)
แก้ไขข้อบกพร่อง
- เพิ่มคำจำกัดความของ API ที่คาดหวัง/ตามจริงของ
GraphicsLayer
เพื่อรองรับการจับภาพและเล่นคำสั่งวาดซ้ำ พร้อมการประกอบเอฟเฟกต์ภาพและการเปลี่ยนรูปแบบที่ไม่บังคับ แนะนำอินเทอร์เฟซGraphicsContext
เพื่อรองรับทรัพยากร Dependency ของกราฟิก รวมถึงการสร้างและจัดการอินสแตนซ์GraphicsLayer
(I4a8d6, b/288494724) - แก้ไขปัญหาการทำงานร่วมกันของการค้นหาโฟกัส 1 มิติ ซึ่งโฟกัสจะติดอยู่ใน
ComposeView
ที่ฝังอยู่ในมุมมองอื่นๆ (I08fd4)
การสนับสนุนภายนอก
LocalLifecycleOwner
ย้ายจาก UI ของ Compose ไปยังlifecycle-runtime-compose
แล้วเพื่อให้ API ตัวช่วยที่ใช้ Compose สามารถใช้ภายนอก UI ของ Compose ได้ ขอขอบคุณ Jake Wharton ที่ร่วมให้ข้อมูล (I6c41b, b/328263448)- แสดงคุณสมบัติการลอยตัวของอคติอย่างต่อเนื่องในประเภทย่อยของการปรับตามการให้น้ำหนักตามการให้น้ำหนักพิเศษทั้งหมด (I69f0f, b/328088992)
เวอร์ชัน 1.7.0-alpha04
6 มีนาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha04
แล้ว เวอร์ชัน 1.7.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- รองรับฟีเจอร์การเขียนด้วยลายมือโดยใช้สไตลัสสำหรับ BasicTextField2 ในอุปกรณ์หลังจาก Android U (I002e4)
- ใน CL นี้ เราจะเพิ่มการทำงานเชิงความหมาย
GetScrollViewportLength
เพื่อให้เราสามารถเชื่อมโยงข้อมูลเกี่ยวกับคอมโพเนนต์ที่กำลังเลื่อนในการเขียนไปยังระบบ a11y ได้ CL นี้ยังนำการใช้งานพร็อพเพอร์ตี้ดังกล่าวในรายการแบบเลื่อนได้ของพื้นฐานไปใช้ด้วย (Ic5fa2) FocusRequester.createRefs
มีความเสถียรแล้ว (I4d92c, b/261436820)- เปิดตัว
DelegatableNode.requireView()
เพื่อให้โหนดตัวแก้ไขรับView
ของ Android ในปัจจุบันได้โดยไม่ต้องอ่านการเรียบเรียงเพลงในเครื่อง (I40768) - API ใหม่
Path.reverse()
ที่จะกลับทิศทางของเส้นทาง (I36348) - เพิ่ม
hintLocales
ในKeyboardOptions
เพื่อให้TextFields
มีความสามารถในการแนะนำ IME กับภาษาเฉพาะเพื่อตั้งค่าภาษาที่เลือกไว้ล่วงหน้า - แสดงพร็อพเพอร์ตี้
platformLocale
จากLocale
ที่ส่งคืนออบเจ็กต์แพลตฟอร์มที่สำคัญ เช่นjava.util.Locale
(I921c6)
เวอร์ชัน 1.7.0-alpha03
21 กุมภาพันธ์ 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha03
แล้ว เวอร์ชัน 1.7.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ขอแนะนำ
ContextualFlowRow
และFlowRow
/Column
ที่ปรับปรุงแล้วซึ่งมี MaxLines และ Overflow เรามีความยินดีที่จะประกาศเกี่ยวกับการปรับปรุงFlowRow
และFlowColumn
รุ่นทดลอง โดยตอนนี้มี maxLines และการสนับสนุนเพิ่มเติม ควบคู่กับการเปิดตัวContextualFlowRow
และContextualFlowColumn
การอัปเดตนี้ออกแบบมาเพื่อมอบองค์ประกอบที่มีประสิทธิภาพสูงสุด ซึ่งContextualFlow*
เหมาะอย่างยิ่งกับสินค้าจำนวนมากที่ใช้การกำหนดค่าmaxLines
ขนาดเล็กและปุ่ม +N แบบไดนามิกเพื่อดูปุ่มได้มากขึ้น นอกจากนี้FlowRow
และFlowColumn
ยังเหมาะสำหรับรายการที่มีจำนวนไม่มากแต่น้อยกว่า 100 รายการ สำคัญ: หากต้องการคงลักษณะการทำงานที่มีอยู่ในFlowRow
หรือFlowColumn
ซึ่งมีการเขียนข้อความทั้งหมด ไม่ว่ารายการเหล่านั้นจะพอดีกับค่าสูงสุดของแกนไขว้ ให้ตั้งค่าoverflow
เป็นFlowRowOverflow.Visible
หรือFlowColumnOverflow.Visible
ระหว่างการเริ่มต้น สำรวจContextualFlowRowSample
และFlowRowSample
เพื่อดูตัวอย่างการใช้งานฟีเจอร์ใหม่เหล่านี้ (Ib9135, b/293577082) - เพิ่มพร็อพเพอร์ตี้ความหมาย
maxTextLength
ที่ควรตั้งค่าในช่องข้อความที่กรองอักขระสูงสุดที่อนุญาต (I24d9f, b/170648072) - เลิกใช้งาน Wrapper
Modifier.inspectable
แล้ว API นี้จะทําให้ตัวแก้ไขของคุณเป็นโมฆะมากเกินกว่าที่จำเป็น จึงไม่แนะนำให้ใช้ในขณะนี้ ขอแนะนำให้นักพัฒนาซอฟต์แวร์ใช้เมธอดinspectableProperties()
ในModifierNodeElement
หากต้องการแสดงพร็อพเพอร์ตี้ของตัวปรับแต่งในเครื่องมือ (Ib3236) - เครื่องมือสร้างใหม่สำหรับ
PopupProperties
ซึ่งช่วยให้ควบคุมแฟล็กWindowManager.LayoutParams
ได้อย่างสมบูรณ์ (Ibb33e, b/312485503) - แนะนำ
DelegatableNode.requireLayoutCoordinates()
เพื่อเป็นวิธีรับLayoutCoordinates
ปัจจุบันของModifier.Node
โดยไม่ต้องลบล้างonPlaced
และจัดเก็บพิกัดในพร็อพเพอร์ตี้ด้วยตนเอง (Ia8657) - แนะนำ
DelegatableNode.currentLayoutCoordinates
เพื่อเป็นวิธีรับLayoutCoordinates
ปัจจุบันของModifier.Node
โดยไม่ต้องลบล้างonPlaced
และจัดเก็บพิกัดในพร็อพเพอร์ตี้ด้วยตนเอง (Iaebaa) - ย้าย
BasicTextField2
และ API ที่เกี่ยวข้องภายใต้แพ็กเกจandroidx.compose.foundation.text2
ไปยังandroidx.compose.foundation.text
แล้ว (I9F635) - เพิ่ม
ApproachLayoutModifierNode
API ใหม่เพื่อรองรับการสร้างตรรกะวิธีการที่กำหนดเองในโหนดตัวปรับแต่ง Explicit และเพิ่ม API แบบDeferredTargetAnimation
รุ่นทดลองใหม่สำหรับภาพเคลื่อนไหวที่ไม่ทราบเป้าหมายในการสร้างอินสแตนซ์ (I60745) - API ของ
Path
ใหม่เพื่อค้นหาทิศทางของเส้นทางและดึงเส้นขอบจากPath
(I63d04) - เพิ่ม
PathHitTest
และPath.contains(Offset)
เพื่อตรวจสอบว่าPath
มีจุดที่เจาะจงหรือไม่ (I3B218) - ตอนนี้
TextLayoutResult
จะแสดงเมธอดgetLineBaseline(lineIndex)
สิทธิ์นี้ทำให้อ่านบรรทัดฐานของข้อความได้ตามต้องการ นอกเหนือจากคุณสมบัติด้านอำนวยความสะดวกfirstBaseline
และlastBaseline
ที่มีอยู่ (Ide4e8, b/237428541) - เพิ่มวิธีการเปรียบเทียบเฉพาะคำอธิบายประกอบของ
AnnotatedStrings
2 รายการ (I32659)
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาความเข้ากันได้แบบย้อนหลังกับ
SemanticsPropertyReceiver.performImeAction
และSemanticsActions.PerformImeAction
(Id0528, b/322269946)
เวอร์ชัน 1.7.0-alpha02
7 กุมภาพันธ์ 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha02
แล้ว เวอร์ชัน 1.7.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขปัญหาความเข้ากันได้ของไบนารีกับ
SemanticsPropertyReceiver.performImeAction
(I65865, b/322269946) - ตัวสร้าง
PopupProperties
ที่ใช้พารามิเตอร์usePlatformDefaultWidth
ไม่ใช่การทดลองอีกต่อไป (I8f8d2) - เพิ่ม
ComposeTestRule.waitUntil
มากเกินไปที่ใช้คำอธิบายสตริงของเงื่อนไขเพื่อรวมไว้ในข้อความระยะหมดเวลา (I9413e) - API ความหมายใหม่
unset()
เพื่อนําพร็อพเพอร์ตี้ความหมายซึ่งเพิ่มลงในเชนตัวปรับแต่งเดียวกันออก พร็อพเพอร์ตี้ความหมายใหม่isOpaque
(I8c583, b/317966058, b/246056649) - นำ
originalEventPosition
ออกจากวิธีการคัดลอกใน API สาธารณะของPointerInputChange
แล้ว (I7bead)
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่อง A11y ที่ทำให้ตัวเลือกที่ไม่ใช่แท็บและไม่ใช่ปุ่มตัวเลือกสามารถคลิกได้ (I2181C)
- ตอนนี้
VelocityTracker
จะเปิดการแก้ไขการเพิ่มจุดไว้โดยค่าเริ่มต้น ทั้งนี้คุณสามารถปิดการแก้ไขได้โดยตั้งค่าVelocityTrackerAddPointsFix
เป็น "เท็จ" หากมีปัญหา (Ib3877, b/269487059) - แก้ไขความไม่เข้ากันของไบนารีใน
TextStyle
และParagraphStyle
(I179f0, b/320819734)
การสนับสนุนภายนอก
- เพิ่มตัวสร้าง
DialogProperties
ใหม่ที่ไม่มีพารามิเตอร์เฉพาะแพลตฟอร์ม (I45829) - เพิ่มตัวสร้าง
PopupProperties
ใหม่ที่ไม่มีพารามิเตอร์เฉพาะแพลตฟอร์ม (I9a038)
เวอร์ชัน 1.7.0-alpha01
24 มกราคม 2024
ปล่อย androidx.compose.ui:ui-*:1.7.0-alpha01
แล้ว เวอร์ชัน 1.7.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ขยาย
ClipboardManager
ด้วยการเพิ่มClipEntry
และClipMetadata
เพื่อรองรับเนื้อหาที่กำหนดเอง เช่น รูปภาพ - เพิ่ม
DeviceConfigurationOverride
API ไปยังui-test
เพื่ออนุญาตภายในเครื่อง ลบล้างลักษณะการทำงานของเนื้อหาที่อยู่ระหว่างทดสอบ เช่น เพื่อระบุ ขนาด ภาษา ทิศทางการจัดวาง ขนาดตัวอักษร หรือธีม
เวอร์ชัน 1.6
เวอร์ชัน 1.6.8
12 มิถุนายน 2024
ปล่อย androidx.compose.ui:ui-*:1.6.8
แล้ว เวอร์ชัน 1.6.8 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขความไม่สอดคล้องกันในการปรับขนาดแบบอักษรเมื่อขนาดแบบอักษรน้อยกว่าตารางต่ำสุดที่กำหนด ในกรณีนี้ เราจะหาค่าประมาณของระหว่างสเกลเชิงเส้น 1x และตารางที่กำหนดต่ำสุด เพื่อให้ขนาดแบบอักษรเพิ่มขึ้นทีละน้อยเมื่อสเกลเพิ่มขึ้น (Icbae3)
เวอร์ชัน 1.6.7
1 พฤษภาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.6.7
แล้ว เวอร์ชัน 1.6.7 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.6
17 เมษายน 2024
ปล่อย androidx.compose.ui:ui-*:1.6.6
แล้ว เวอร์ชัน 1.6.6 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องที่พบไม่บ่อยของ
BasicTextField
เวอร์ชัน 1.6.5
3 เมษายน 2024
ปล่อย androidx.compose.ui:ui-*:1.6.5
แล้ว เวอร์ชัน 1.6.5 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.4
20 มีนาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.6.4
แล้ว เวอร์ชัน 1.6.4 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.3
6 มีนาคม 2024
ปล่อย androidx.compose.ui:ui-*:1.6.3
แล้ว เวอร์ชัน 1.6.3 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.2
21 กุมภาพันธ์ 2024
ปล่อย androidx.compose.ui:ui-*:1.6.2
แล้ว เวอร์ชัน 1.6.2 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.1
7 กุมภาพันธ์ 2024
ปล่อย androidx.compose.ui:ui-*:1.6.1
แล้ว เวอร์ชัน 1.6.1 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาความเข้ากันได้แบบย้อนหลังกับ
SemanticsPropertyReceiver.performImeAction
และSemanticsActions.PerformImeAction
(Ie0bb2, b/322269946) - ตอนนี้เลย์เอาต์จะแสดงข้อผิดพลาดขณะวัดเมื่อมีขนาดที่ใหญ่ผิดปกติ ข้อผิดพลาดประเภทนี้มักเกิดขึ้นเมื่อการวัดใช้ข้อจํากัดสูงสุดโดยตรงโดยไม่ต้องตรวจสอบ
Constraints.Infinity
การตรวจสอบนี้จะช่วยให้นักพัฒนาซอฟต์แวร์พบปัญหาเกี่ยวกับเลย์เอาต์ที่มีขนาดไม่ถูกต้อง แทนที่จะพบปัญหาในเลย์เอาต์ที่มีเลย์เอาต์นั้น (I339a9)
เวอร์ชัน 1.6.0
24 มกราคม 2024
ปล่อย androidx.compose.ui:ui-*:1.6.0
แล้ว เวอร์ชัน 1.6.0 มีคอมมิตเหล่านี้
เวอร์ชัน 1.6.0-rc01
10 มกราคม 2024
ปล่อย androidx.compose.ui:ui-*:1.6.0-rc01
แล้ว เวอร์ชัน 1.6.0-rc01 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- เพิ่มประสิทธิภาพการใช้งานกราฟิกเวกเตอร์เพื่อปรับปรุงประสิทธิภาพโดยการลดการจัดองค์ประกอบเพิ่มเติมใหม่
เวอร์ชัน 1.6.0-beta03
13 ธันวาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-beta03
แล้ว เวอร์ชัน 1.6.0-beta03 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้คุณสามารถปลด
LayoutCoordinates
ออกได้โดยไม่ต้องตัดโหนดออก ป้องกันไม่ให้เกิดกรณีดังกล่าวในเครื่องมือตรวจสอบเลย์เอาต์การเขียน (If693)
แก้ไขข้อบกพร่อง
- ขณะนี้
PlatformImeOptions
เป็นคลาสที่เป็นรูปธรรมแทนที่จะเป็นอินเทอร์เฟซ (If40a4) - แก้ไขการจัดองค์ประกอบใหม่ดาวน์สตรีมเพิ่มเติมที่เกิดจาก
LocalSoftwareKeyboardController
และLocalTextInputService
ที่ระบุค่าใหม่ทุกครั้งที่รูทใหม่ (I42190, b/310510985)
เวอร์ชัน 1.6.0-beta02
29 พฤศจิกายน 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-beta02
แล้ว เวอร์ชัน 1.6.0-beta02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.6.0-beta01
15 พฤศจิกายน 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-beta01
แล้ว เวอร์ชัน 1.6.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ตัวแก้ไข
DragAndDropTarget
จะรับDragAndDropTarget
อย่างชัดเจนและมี lambda สำหรับเลือกใช้เซสชันลากและวาง ตอนนี้DragAndDropModifierNode
มีฟังก์ชันจากโรงงาน 2 ฟังก์ชัน ช่องหนึ่งสำหรับรับการโอนข้อมูลและอีกช่องสำหรับโอนข้อมูล (I69481) - อัปเดต
maximumFlingVelocity
ให้แสดงเป็น "ลอย" แล้ว ปรับปรุงเอกสารประกอบเพื่อให้เข้าใจความเป็นเอกภาพของmaximumFlingVelocity
ชัดเจนยิ่งขึ้น (I8adc7) onDragAndDropStart
ในโรงงานDragAndDropModifierNode
ได้เปลี่ยนชื่อเป็นacceptDragAndDropTransfer
เพิ่มacceptsDragAndDropTransfer
ลงในตัวปรับแต่งdragAndDropTarget
เพื่อยอมรับจากเซสชันการลากและวาง lambda นี้จะแสดงDragAndDropTarget
ที่ใช้งานได้หากสนใจเซสชันลากและวาง มีการใช้พารามิเตอร์นี้แทน lambda อื่นๆ สำหรับการประมวลผลเหตุการณ์การลากแล้ว เพิ่มฟังก์ชันเริ่มต้นDragAndDropTarget
เพื่อรับจากเซสชันการลากและวาง (Iebf3a)นำ
DragAndDropInfo
ที่เป็นประเภทDragAndDropModifierNode.drag
ออกแล้วตอนนี้จะใช้พารามิเตอร์สำหรับtransferData
, ขนาดการตกแต่ง และการตกแต่งแบบลากDrawScope
lambda ได้แล้วDragAndDropTarget
มีวิธีสําหรับเหตุการณ์ลากและวางบางอย่างแทนที่จะใช้วิธีนามธรรมวิธีเดียวonDragAndDropEvent
ในฟังก์ชันเริ่มต้นสำหรับDragAndDropModifierNode
ได้เปลี่ยนชื่อเป็นonDragAndDropStart
เพื่อให้สื่อสารได้ดียิ่งขึ้นว่าDragAndDropTarget
ที่ระบุใช้ได้สำหรับเซสชันการลากและวางที่ระบุเท่านั้นนำ
DragAndDropEventType
ออกแล้ว (I645b1)เปลี่ยนชื่อ
PlatformTextInputModifierNode.runTextInputSession
เป็นestablishTextInputSession
แล้ว (I03cd0)ปรับปรุงชื่อ API โหนดที่ข้ามผ่านได้เพื่อให้เข้าใจชื่อได้ง่ายขึ้น (Ia4474)
แทนที่
OriginalText
ด้วยTextSubstitution
(Ifa5a8)เปลี่ยนชื่อ
PlatformTextInputModifierNode.textInputSession
เป็นrunTextInputSession
แล้ว (Ie9c6b)องค์ประกอบย่อยของ
SubcomposeLayout
(และเลย์เอาต์ เช่นLazyColumn
ที่ขึ้นอยู่กับรายการนี้) ที่เก็บรักษาไว้เพื่อนำมาใช้ซ้ำในอนาคตจะถือว่าปิดใช้งานแล้ว มีการใช้ API ทดสอบassertIsDeactivated()
ใหม่เพื่อทดสอบโหนดดังกล่าว ส่วนที่เหลือของ API การทดสอบจะกรองโหนดที่ปิดใช้งานออกโดยค่าเริ่มต้น (I2ef84, b/187188981)นำ
FocusDirection.In
และFocusDirection.Out
ออกแล้วใช้FocusDirection.Enter
และFocusDirection.Exit
แทน (I2f660)ตอนนี้ Material
SwipeToReveal
API (สำหรับการ์ดและชิป) ใช้ API ตามสล็อต (ตามที่ Compose แนะนำ) แทนอินสแตนซ์ที่อิงตามคลาสข้อมูลเพื่อสร้างสล็อตแล้ว การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ โปรดดูการสาธิตและโค้ดตัวอย่างเพื่อดูตัวอย่างวิธีใช้ API ใหม่ (Ia8943)ตัวสร้าง
FontStyle(int)
เลิกใช้งานแล้ว โปรดใช้FontStyle.Normal
หรือFontStyle.Italic
แทน (I66610)เปลี่ยนชื่ออินเทอร์เฟซ
FontScalable
เป็นFontScaling
(Ie804a) แล้ว
แก้ไขข้อบกพร่อง
SoftwareKeyboardController.show()
จะไม่แสดงแป้นพิมพ์ซอฟต์แวร์อีกหากไม่ได้โฟกัสเครื่องมือแก้ไขข้อความอยู่ (I2165a, b/301477279)- ตอนนี้ระบบจะไม่สนใจเหตุการณ์คีย์ฮาร์ดแวร์สำหรับคีย์ที่ไม่ได้รับเหตุการณ์ดาวน์ในมุมมองเขียนเดียวกัน (Ib37b4, b/305518328)
- เพิ่มการรองรับตัวแสดงผลสำหรับการไล่ระดับสีกวาดใน
ArcLine
(I4d5bb) - ใช้เท่ากับและแฮชโค้ดสำหรับ
PageSize.Fixed
(Ie3ede, b/300134276) - แก้ไขปัญหาความเข้ากันได้ของไบนารีที่มีการเปลี่ยนแปลง Window Inset (Iee695)
- นำเลเยอร์หลักของวัสดุสำหรับชิป/ปุ่ม Material3 ออก เนื่องจากการเปรียบเทียบย่อยจะแสดงประสิทธิภาพที่ดีกว่าหากไม่มีข้อมูลเหล่านี้ (I55555)
- ระบบจะใช้
TestDispatcher
ที่ผ่านการทดสอบeffectContext
ไปยัง Compose เพื่อสร้างนาฬิกาทดสอบและจัดเฟรมนาฬิกา (Ia7178)
เวอร์ชัน 1.6.0-alpha08
18 ตุลาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha08
แล้ว เวอร์ชัน 1.6.0-alpha08 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
Modifier.dragAndDrawSource
ได้เปลี่ยนชื่อ lambda ของonDrawDragShadow
เป็นdrawDragDecoration
และDragAndDropInfo
ได้เปลี่ยนชื่อพารามิเตอร์ขนาดเป็นdragDecorationSize
(Id0e30, b/303904810)- แนะนำ
SemanticsNodeInteraction.isDisplayed()
และSemanticsNodeInteraction.isNotDisplayed()
เพื่อตรวจสอบว่าโหนดที่ตรงกันปรากฏให้เห็นหรือไม่ โดยไม่ต้องยืนยันโหนดนั้น (I2c196, b/302100809) - แนะนำค่า
Unspecified
พิเศษสำหรับช่องTextAlign
,TextDirection
,Hyphens
และLineBreak
ของParagraphTextStyle
เพื่อแทนที่null
เนื่องจากคลาสเหล่านี้เป็นคลาสแบบอินไลน์ การแทนที่ค่า Nullable ด้วย "Unidentifier" ทำให้เราหลีกเลี่ยงการมวยประเภทพื้นฐานได้ ระบบได้อัปเดตเครื่องมือสร้าง, Getter และเมธอดอื่นๆ ในTextStyle
และรูปแบบย่อหน้าให้ยอมรับพารามิเตอร์ที่กล่าวถึงเป็นประเภทที่ไม่ใช่ Null (I4197e, b/299490814) - เพิ่ม
GoogleFont
มากเกินไปสำหรับการอ่านGoogleFont
จาก XML (If8f59) - กำหนดให้
LoremIpsum
PreviewParameterProvider
เป็นชั้นเรียนแบบเปิด (I41bf5, b/266918816, b/300116360)
แก้ไขข้อบกพร่อง
- ขณะนี้
FontFamilyResolver
ใช้Dispatchers.Main
สำหรับโครูทีนการจัดการแคช (Ie8dd9) - ตอนนี้
AndroidViewBinding
จะนำอินสแตนซ์Fragment
รายการที่สูงเกินจริงออกโดยใส่FragmentContainerView
ไว้ในเลย์เอาต์เป็นส่วนหนึ่งของonRelease
โดยใช้commitNow
(แทนcommit
ที่ใช้ก่อนหน้านี้) จึงแก้ปัญหาด้วยวิธีของการแก้ไขสดโดยแทนที่การเรียบเรียงเมื่อมีการเปลี่ยนแปลง (I58fbf)
เวอร์ชัน 1.6.0-alpha07
4 ตุลาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha07
แล้ว เวอร์ชัน 1.6.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แนะนำ
PlatformTextInputMethodTestOverride
สำหรับการทดสอบการเขียนสำหรับเครื่องมือแก้ไขข้อความที่กำหนดเอง (Id159b) - เพิ่ม
dragAndDropSource
Modifier สำหรับการเริ่มเซสชันลากและวาง และdragAndDropTarget
Modifier สำหรับรับจากเซสชันลากและวาง (Ib7828, b/286038936) - เพิ่มคอลเล็กชัน
ColorList
และColorSet
ที่หลีกเลี่ยงการจัดสรร (I744bd) - เพิ่ม Flag ชั่วคราว
DisableNonLinearFontScalingInCompose
เพื่อปิดใช้การปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้น ตั้งค่าDisableNonLinearFontScalingInCompose = true
ในการทดสอบหากต้องการเวลาทำความสะอาด ระบบจะนำธงนี้ออกใน Compose 1.6.0-beta01 (Ic9486)
แก้ไขข้อบกพร่อง
- การแยกวิเคราะห์เวกเตอร์ XML ที่เพิ่มประสิทธิภาพซึ่งถอนออกได้ (Ibb015)
เวอร์ชัน 1.6.0-alpha06
20 กันยายน 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha06
แล้ว เวอร์ชัน 1.6.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การเพิ่มประสิทธิภาพเพิ่มเติมให้กับไอคอน Material (I3e08d)
- เพิ่มความสามารถในการข้ามผ่านต้นไม้ของตัวแก้ไขขึ้น/ลงเพื่อค้นหาโหนดที่คล้ายกัน (I2d234)
- เพิ่ม Callback
onRestoreFailed()
ในตัวแก้ไขfocusRestorer()
(Ie1d43) แล้ว - เพิ่มคำอธิบายประกอบ androidx ใน API กราฟิกต่างๆ เพื่อระบุ
ColorInt
,FloatRange
,IntRange
,Size
และอื่นๆ (Id65c8, b/290950582) - เพิ่มคำจำกัดความ
showSystemUi=true
เป็นPreviewScreenSizes
(Ib61d3)
การเปลี่ยนแปลงลักษณะการทำงาน
- ตอนนี้การเขียนใช้การปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้นเพื่อให้อ่านและช่วยเหลือพิเศษได้ง่ายขึ้น เมื่อปรับขนาดแบบอักษร > 100% ในการตั้งค่าระบบ ข้อความขนาดเล็กจะมีขนาดเพิ่มขึ้นตามปกติ แต่ข้อความขนาดใหญ่อยู่แล้วจะเพิ่มขนาดเพิ่มขึ้นเล็กน้อยเท่านั้น นอกจากนี้ ความสูงของบรรทัดที่กำหนดไว้ใน SP จะปรับโดยอัตโนมัติเพื่อให้เป็นสัดส่วนกับความสูงที่ต้องการมาตราส่วน 100% ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำในการปรับขนาดแบบอักษร (I11518)
เวอร์ชัน 1.6.0-alpha05
6 กันยายน 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha05
แล้ว เวอร์ชัน 1.6.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดใช้การบันทึกเนื้อหาใน
AndroidComposeViewAccessibilityDelegateCompat
(Ib2969) - ความเร็วการลอยในคอมโพเนนต์ View เช่น
ScrollView
และRecyclerView
จำกัดอยู่ที่ViewConfiguration.ScaledMaximumFlingVelocity
การเขียนมีmaximumFlingVelocity
เวอร์ชันของตนเองซึ่งตอนนี้มีผลกับDraggable
(Ibf974) - เพิ่มโครงข่ายเริ่มต้นเพื่อรองรับ API การลากและวางของแพลตฟอร์ม (If84ce)
- เพิ่ม
deviceId
ลงในRotaryScrollEvent
(Iba3bf) - อัปเดต
ui-tooling
Device API ให้รวมอุปกรณ์ที่ใหม่กว่า (Ib25b4)
เวอร์ชัน 1.6.0-alpha04
23 สิงหาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha04
แล้ว เวอร์ชัน 1.6.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มวิธีการปิดใช้งาน
ReusableComposition
โดยนำการสังเกตการณ์ออก แต่เก็บโหนดไว้ เปิดใช้งานการเรียบเรียงที่ปิดใช้งานอีกครั้งได้โดยโทรหาsetContent
(Ib7f31) - เพิ่มอินเทอร์เฟซ
ReusableComposition
เพื่อจัดการวงจรและการใช้องค์ประกอบย่อยซ้ำ (I812d1, b/252846775) Modifier.focusGroup
ได้รับการโปรโมตเป็น API ที่เสถียรแล้ว (I7ffa3)- เพิ่มคำอธิบายประกอบ androidx ใน API กราฟิกต่างๆ เพื่อระบุ
ColorInt
,FloatRange
,IntRange
,Size
และอื่นๆ (I70487, b/290950582) - อัปเดต
ColorFilter
API ให้มีประเภทคลาสย่อยที่เป็นรูปธรรมเพื่อให้ตรวจสอบพารามิเตอร์ได้ดีขึ้น (I5fe29) - แนะนำไลบรารี wear-tooling-preview เพื่อแสดงอุปกรณ์ Wear ที่ถูกต้องซึ่งสามารถใช้ในการแสดงตัวอย่าง UI (Ib036e)
- สร้างอินเทอร์เฟซ
FontScalable
เพื่อจัดการส่วนการปรับขนาดแบบอักษรของอินเทอร์เฟซความหนาแน่น (I2cf3f)
เวอร์ชัน 1.6.0-alpha03
9 สิงหาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha03
แล้ว เวอร์ชัน 1.6.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การเปลี่ยนโหมดเข้า/ออกแบบใหม่ที่ปรับขนาดเนื้อหาตามขนาดของคอนเทนเนอร์ที่เคลื่อนไหวขณะเข้าและออก ออกจากภาพเคลื่อนไหว
LookaheadScope
การเขียนอย่างสนุกสนานและอินเทอร์เฟซมีความเสถียรแล้วตอนนี้ (Ifb2ce) - เพิ่มการรองรับการกำหนดค่า
privateImeOptions
(Idb772)
แก้ไขข้อบกพร่อง
- ตอนนี้
PopupPositionProvider.calculatePosition
จะอัปเดตตำแหน่งของป๊อปอัปโดยอัตโนมัติเมื่อสถานะการอ่านในการคำนวณมีการเปลี่ยนแปลง (I676a1, b/292257547) - ช่องข้อความที่แก้ไขแล้วที่แสดงแป้นพิมพ์และจะแก้ไขได้เมื่อ
readOnly
เป็นจริง รวมทั้งแก้ไขแป้นพิมพ์ไม่แสดงเมื่อเปลี่ยนreadOnly
จาก true เป็น false ขณะโฟกัสอยู่ (I34a19, b/246909589) - ขยายการใช้งานการยืนยันของ UI ทั่วโลกในการทดสอบ UI (I1F90D)
เวอร์ชัน 1.6.0-alpha02
26 กรกฎาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha02
แล้ว เวอร์ชัน 1.6.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มอินเทอร์เฟซตัวระบุตำแหน่งบริการซึ่งสามารถนำไปใช้โดยผู้ติดตั้งใช้งานการเรียบเรียง ซึ่งอนุญาตให้มีการใช้งานการเรียบเรียงที่มอบสิทธิ์ในการค้นหาบริการมอบสิทธิ์การเรียบเรียงเพลงอื่นไปยังการเรียบเรียงต้นฉบับ ไม่ควรเรียกว่า Directy และใช้เพื่อเปิดใช้การสร้าง API ทดลองในรันไทม์ ซึ่งพบได้จากโปรแกรมแต่งเพลงเวอร์ชันการรวม เช่น โมดูล UI มี (I296b9)
- ออกแบบ API ของ
PlatformTextInput*
ใหม่ทั้งหมด (I6c93a, b/274661182, b/267235947, b/277380808) SoftwareKeyboardController
และLocalSoftwareKeyboardController
ไม่ใช่เวอร์ชันทดลองอีกต่อไป ตอนนี้LocalSoftwareKeyboardController
เป็นCompositionLocal
ที่เหมาะสมแล้ว (I4c364)- เราเลิกใช้งาน
LookaheadLayout
และLookaheadLayoutScope
ไปแล้ว 2-3 รุ่น และตอนนี้ได้ถูกนำออกแล้ว API ทดแทนคือLookaheadScope
ซึ่งใช้งานได้กับเลย์เอาต์ทุกรูปแบบ (I12ac3) - เพิ่ม
SemanticsNodeInteraction.requestFocus
เพื่อให้การมุ่งเน้นในการทดสอบที่สะดวกและค้นพบได้มากขึ้น (Ie8722) - เพิ่ม API เวอร์ชันทดลองสำหรับการลงทะเบียนการยืนยันทั่วโลกสำหรับใช้โดยเฟรมเวิร์กการทดสอบในอนาคต (I12d77)
แก้ไขข้อบกพร่อง
- ตอนนี้การเรียกกลับ
update
ของAndroidView
จะถูกเลื่อนเวลาออกไปจนกว่าจะมีการแนบมุมมอง แทนที่จะทำงานเมื่อมีการใช้องค์ประกอบที่แนะนำAndroidView
การดำเนินการนี้แก้ไขข้อบกพร่องที่ Callbackupdate
จะไม่เป็นโมฆะหากสถานะที่อ่านถูกเปลี่ยนแปลงทันทีด้วยผลที่เกิดขึ้น (Ie9438, b/291094055)
เวอร์ชัน 1.6.0-alpha01
21 มิถุนายน 2023
ปล่อย androidx.compose.ui:ui-*:1.6.0-alpha01
แล้ว เวอร์ชัน 1.6.0-alpha01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รองรับ Lookahead ใน
LazyList
วิธีนี้ช่วยให้LazyList
ใน Lookahead Pass ข้ามภาพเคลื่อนไหวทั้งหมด (เช่น ภาพเคลื่อนไหวของตำแหน่งของรายการ,AnimatedVisibility
ฯลฯ) และคำนวณขนาดและตำแหน่งของ Lookahead สำหรับเด็กทุกคนได้ หลังจากผ่าน Lookahead Pass แล้ว เด็กของLazyList
จะเคลื่อนไหวได้อย่างอิสระตามความเป็นจริงดังที่เห็นใน Lookahead Pass
การเปลี่ยนแปลงลักษณะการทำงาน: includeFontPadding จะตั้งเป็น false โดยค่าเริ่มต้นใน Compose
ตอนนี้ includeFontPadding
จะตั้งค่าเป็น "เท็จ" โดยค่าเริ่มต้น (21d806) ในการเขียน
includeFontPadding
เป็นแอตทริบิวต์เดิมที่ควบคุมว่าจะเพิ่มระยะห่างจากขอบเพิ่มเติมที่ด้านบนของบรรทัดแรกและบรรทัดแรกของข้อความหรือไม่ เพื่อรองรับอักขระใดๆ ที่อาจขยายสูงกว่าหรือต่ำกว่าเกณฑ์พื้นฐาน
การอัปเดตเวอร์ชัน Compose นี้จะปรับเปลี่ยนวิธีแสดงผลข้อความทั้งหมดใน UI โดยการนำระยะห่างจากขอบที่เหลือออกจากบรรทัดแรกและบรรทัดสุดท้ายของทุกข้อความที่แสดง
คุณควรเปลี่ยนแปลงเพียงเล็กน้อย ทั้งนี้ขึ้นอยู่กับข้อกำหนด UI และเมตริกแบบอักษรที่คุณใช้ แต่คุณอาจพบอุปสรรคต่อไปนี้ - การทดสอบภาพหน้าจอที่เสียหาย แก้ไข UI หากจำเป็น และสร้างรูปภาพสีทองใหม่ - ข้อความวางไม่ตรงแนวเล็กน้อย นำระยะห่างจากขอบเชิงลบที่กำหนดเองออกหรือเพิ่มระยะห่างจากขอบ หากจำเป็น
คุณเลือกใช้ includeFontPadding
ได้โดยใช้ PlatformTextStyle
สำหรับแต่ละข้อความ
Text(
text = myText,
style = TextStyle(
lineHeight = 2.5.em,
platformStyle = PlatformTextStyle(
includeFontPadding = true/false
)
/* … */
)
)
คุณเลือกใช้ includeFontPadding
สําหรับข้อความทั้งหมดได้โดยกำหนดค่ารูปแบบวัสดุ โปรดทราบว่าชื่อพารามิเตอร์จะแตกต่างกันระหว่าง M2 และ M3
val Typography = Typography(
body1 = TextStyle(
fontFamily = /* … */,
fontSize = /* … */,
platformStyle = PlatformTextStyle(
includeFontPadding = false
)
/* … */
)
)
MaterialTheme(
typography = Typography,
/* … */
)
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเขียน includeFontPadding
ได้ในเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์และบล็อกโพสต์นี้
หากพบปัญหา/ข้อบกพร่องที่เชื่อมโยงกับการเปลี่ยนแปลงนี้ ให้รายงานข้อบกพร่องโดยใช้เครื่องมือติดตามปัญหา
การเปลี่ยนแปลง API
- สนับสนุน
InputConnection#requestCursorUpdates
(I0c69b) - เพิ่ม
FocusRequester.saveFocusedChild
และFocusRequester.restoreFocusedChild
(Ic557e, b/272302679, b/275157318) แล้ว - เพิ่มประเภท
ResourceResolutionException
เพื่อรวมเนื้อหาที่ส่งได้เมื่อพยายามโหลดเนื้อหาบิตแมปที่มีคําอธิบายเส้นทางของเนื้อหาที่โหลดไม่สําเร็จ (I19f44, b/230166331, b/278424788) - การช่วยเหลือพิเศษที่เพิ่มประสิทธิภาพเพื่อประสิทธิภาพและการจัดสรรหน่วยความจำ (Iede48)
- เพิ่มพร็อพเพอร์ตี้และการดำเนินการด้านอรรถศาสตร์เพื่อรองรับการแปลข้อความ (I4a6bc)
- พร็อพเพอร์ตี้ใหม่ใน
IntrinsincMeasureScope
และการใช้งาน (เช่นMeasureScope
) เพื่อระบุว่าบัตรผ่าน Measurement Pass ในปัจจุบันเป็นบัตรผ่าน Lookahead หรือไม่ (I7a812) - อัปเดต
DrawScope
API เพื่อเพิ่มความสามารถในการกำหนดเป้าหมายการแสดงผลไปยังผืนผ้าใบอื่นๆ ที่มีความหนาแน่น/ทิศทางและรูปแบบทางเลือก - อัปเดต
DrawContext
เพื่อรองรับการกำหนดค่าความหนาแน่นและทิศทางของเลย์เอาต์ รวมถึงทำให้สามารถกำหนดค่า Canvas ได้ (Ie1f9b, b/225408150) - เพิ่ม
Paragraph#fillBoundingBoxes
เพื่อคำนวณกรอบล้อมรอบอักขระ (If30ee) - เพิ่มชุด
MultiPreviews
ทั่วไป (Ia5a27)
แก้ไขข้อบกพร่อง
- เพิ่มอินเทอร์เฟซ
FocusTargetModifierNode
ที่สามารถใช้สร้างFocusTarget
ที่กำหนดเอง (I9790e) - เปลี่ยนชื่อพารามิเตอร์
fallback*
ในตัวสร้างTextMeasurer
เป็นdefault*
แล้ว (I940a5) - เปลี่ยนชื่อ
SemanticsPropertyReceiver.performImeAction
เป็นonImeAction
และSemanticsActions.PerformImeAction
เป็นOnImeAction
แล้ว (I8e841) - เพิ่มวงล้อเพื่อแยกความแตกต่างของการเลื่อนเมาส์จากการลากในการเลื่อนที่ซ้อนกัน (โดยเฉพาะใน
NestedScrollConnection
) (Ie57e4) - เพิ่ม
asComposePaint
API เพื่อแทนที่toComposePaint
เนื่องจากออบเจ็กต์ที่แสดงผลครอบคลุมandroid.graphics.Paint
เดิม (I22b4c) - เลิกใช้งาน
SemanticsProperties.imeAction
และแทนที่ด้วยพารามิเตอร์ใหม่เป็นSemanticsActions.performImeAction
(I4a587) - เพิ่มการสนับสนุนสำหรับการเลือกด้วยเมาส์ การเลือกตามการแตะจะขยายทีละคำและย่อลงอักขระ (Ic0c6c, b/180639271)
- ตอนนี้เมธอด
Paragraph
ที่เคยโยนAssertionError
สำหรับออฟเซ็ตที่อยู่นอกขอบเขตจะแสดงIllegalArgumentException
เหมือนกับMultiParagraph
(I549d3, b/243338896)
รุ่น 1.5
เวอร์ชัน 1.5.4
18 ตุลาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.4
แล้ว เวอร์ชัน 1.5.4 มีคอมมิตเหล่านี้
เวอร์ชัน 1.5.3
4 ตุลาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.3
แล้ว เวอร์ชัน 1.5.3 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- (b/301209788) บางครั้ง
TextField
จะใช้คำสั่งก่อนหน้าอย่างไม่ถูกต้องเมื่อโฟกัสและป้อนข้อมูลภาษาเกาหลี ซึ่งทำให้อักขระหายไป
รุ่น 1.5.2
27 กันยายน 2023
ปล่อย androidx.compose.ui:ui-*:1.5.2
แล้ว เวอร์ชัน 1.5.2 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- เพิ่มวิธีแก้ปัญหาสำหรับข้อขัดข้องเมื่อมีการเข้าถึง API การเลื่อนการช่วยเหลือพิเศษจากเทรดเบื้องหลัง
- แก้ไขการเพิ่มโหนดที่ไม่ได้แนบไปยังแผนผังความหมาย
รุ่น 1.5.1
6 กันยายน 2023
ปล่อย androidx.compose.ui:ui-*:1.5.1
แล้ว เวอร์ชัน 1.5.1 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ช่องข้อความที่แก้ไขแล้วที่แสดงแป้นพิมพ์และจะแก้ไขได้เมื่อ
readOnly
เป็นจริง รวมทั้งแก้ไขแป้นพิมพ์ไม่แสดงเมื่อเปลี่ยนreadOnly
จาก true เป็น false ขณะโฟกัสอยู่ (I34a19, b/246909589)
เวอร์ชัน 1.5.0
9 สิงหาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0
แล้ว เวอร์ชัน 1.5.0 มีคอมมิตเหล่านี้
เวอร์ชัน 1.5.0-rc01
26 กรกฎาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-rc01
แล้ว เวอร์ชัน 1.5.0-rc01 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อใช้
SubcomposeLayout
ภายในmovableContentOf()
เวอร์ชัน 1.5.0-beta03
28 มิถุนายน 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-beta03
แล้ว เวอร์ชัน 1.5.0-beta03 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- เพิ่มอินเทอร์เฟซ FocusTargetModifierNode ที่ใช้สร้าง FocusTarget ที่กำหนดเอง (Ifb1d6)
- แก้ไขปัญหาคอมโพเนนต์ของ Composable ของกล่องโต้ตอบและป๊อปอัปที่อาจส่งผลให้หน้าต่างย่อยไม่ปรับขนาดตามที่คาดไว้เมื่อ
usePlatformDefaultWidth=true
(I112ee)
เวอร์ชัน 1.5.0-beta02
7 มิถุนายน 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-beta02
แล้ว เวอร์ชัน 1.5.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
asComposePaint
API เพื่อเปิดใช้การใช้งานอินสแตนซ์android.graphics.Paint
เพื่อนำไปใช้ใน Compose
แก้ไขข้อบกพร่อง
- เพิ่ม
asComposePaint
API เพื่อแทนที่toComposePaint
เนื่องจากออบเจ็กต์ที่แสดงผลครอบคลุมandroid.graphics.Paint
เดิม (I22b4c)
เวอร์ชัน 1.5.0-beta01
24 พฤษภาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-beta01
แล้ว เวอร์ชัน 1.5.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำการจัดสรรในการจัดองค์ประกอบใหม่ ภาพเคลื่อนไหวสี และ
AndroidComposeView
(Ib2bfa) ออก - เพิ่มความสนุก
CacheDrawModifierNode()
เพื่อให้มอบสิทธิ์ได้ (Icf8f9) - ขอแนะนำพร็อพเพอร์ตี้
isLookingAhead
ซึ่งเข้าถึงได้จากMeasureScope
เพื่อดูผลลัพธ์ในอนาคตและส่งผลต่อบัตรหลัก หากต้องการ (Ibf4c3) - พร็อพเพอร์ตี้ความหมายใหม่
traversalIndex
เป็นเลขทศนิยมที่ใช้จัดเรียงโหนดใหม่ในการส่งผ่านTalkBack
(ค่าที่ต่ำกว่ามาก่อน) (I9a81b, b/186443263) - การเปลี่ยนชื่อพร็อพเพอร์ตี้ความหมาย
isContainer
เป็นisTraversalGroup
(I121f6) - ตอนนี้
ColorProducer
มีoperator fun invoke
แทนproduce
(I4a9a2) - เพิ่ม
Path
Transform API เพื่อใช้การแปลง Translation/Scale/การหมุนเวียนกับออบเจ็กต์เส้นทาง (I23434, b/233772232) - เมธอดของ
ColorProducer
เรียกว่าproduce
(I78bde) - เปลี่ยนชื่อ
toFrameworkColorSpace
เป็นtoAndroidColorSpace
(I4f547) - เปลี่ยนชื่อ
ColorLambda
เป็นColorProducer
(I73b1a) - แนะนำ API เพื่อแปลงพื้นที่สีประเภทต่างๆ ของ Android และ Compose (Ie7db4, b/279979665)
- เพิ่มพารามิเตอร์สีใน
BasicText
เพื่อให้สร้างภาพเคลื่อนไหวหรือตั้งค่าสีข้อความได้อย่างมีประสิทธิภาพ (Iffd88, b/246961787) - เปลี่ยนชื่อ
TextRange.constrain
เป็นTextRange.coerceIn
แล้ว (I31be2) - เพิ่ม
TextStyle.merge(...)
ที่เพิ่มประสิทธิภาพแล้วซึ่งมีรายการพารามิเตอร์ทั้งหมด (Iad234, b/246961787) - ลดการสั่นไหวของ Text API หลายรายการ ซึ่งรวมถึง
Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
(I2f740, b/261581564, b/261581931, b/261561245) - เลิกใช้งาน
PlatformTextStyle.includeFontPadding
แล้ว เดิมเราตั้งใจจะนำช่องนี้ออก แต่ความคิดเห็นแสดงให้เห็นว่านักพัฒนาแอปต้องใช้ตัวเลือกการกำหนดค่านี้ ดังนั้นจึงเป็นการนำการเลิกใช้งานออกจากช่อง (I98e96, b/277703184) - เพิ่มเมธอด
TextRange.constrain
สาธารณะแล้ว (I97912) - ตอนนี้
UrlAnnotation
ในAnnotatedString
จะเปิดผ่านบริการการช่วยเหลือพิเศษอย่างเช่นTalkBack
ได้แล้ว (If4d82, b/253292081) - เพิ่มการดำเนินการอรรถศาสตร์
InsertTextAtCursor
สำหรับช่องข้อความแล้ว (I11ed5) - เครื่องมือสร้าง
LineHeightStyle.Alignment(topRatio)
ได้รับการโปรโมตเป็น API ที่เสถียร (I79c32, b/261565383) TextMeasurer
และ API ที่เกี่ยวข้องไม่ใช่เวอร์ชันทดลองอีกต่อไป (I74647, b/261581753)- เพิ่มการดำเนินการด้านความหมาย
PerformImeAction
เพื่อเรียกใช้การดำเนินการ IME บนโหนดเครื่องมือแก้ไขข้อความ (Ic606f, b/269633506) PlatformTextInput
API ไม่ได้เป็นการทดลองสำหรับ Android อีกต่อไป (I668eb)- เปลี่ยนชื่อพารามิเตอร์ค่าของ
Enum.valueOf
แล้ว (Ia9b89) - ข้อยกเว้นอื่นๆ จากค่า enum (I818fe)
- เปิดตัว API ใหม่ระดับต่ำของ
PlatformTextInputAdapter
เพื่อสร้างการใช้งานการป้อนข้อความที่กำหนดเองซึ่งสื่อสารกับ API ของแพลตฟอร์มโดยตรง (I58df4) - เพิ่มพารามิเตอร์
BlendMode
ในเมธอดDrawScope.drawText
,Paragraph.paint
และMultiParagraph.paint
เพื่อรองรับอัลกอริทึมการผสานต่างๆ เมื่อวาดข้อความบน Canvas (I57508) - เปลี่ยนชื่อ
Font.MaximumAsyncTimeout
เป็นFont.MaximumAsyncTimeoutMillis
เปลี่ยนชื่อเท่านั้น (I07af5) - ค่า DPI ที่อัปเดตของอุปกรณ์อ้างอิง
@Preview
รายการ (Id6151, b/254528382) - เพิ่มพารามิเตอร์
brush
,alpha
ไปยังBasicText
เพื่อให้สร้างภาพเคลื่อนไหวหรือตั้งค่าแปรงข้อความได้อย่างมีประสิทธิภาพ - กำหนดประเภทแลมบ์ดาที่ไม่มีกล่องสำหรับ Float, Double, Long, Int, Shorts ใน :ui:ui-unit (I6f18d, b/246961787)
แก้ไขข้อบกพร่อง
- นำการจัดสรรหลายรายการในการติดตามอัตราความเร็วตัวชี้ (I26bae) ออก
- ลดการจัดสรรการจัดการอินพุตเลย์เอาต์และตัวชี้ (I5333a)
- เพิ่มประสิทธิภาพการใช้หน่วยความจำเวกเตอร์และการแสดงผลของเฟรมแรก (I2f3c6)
- นำการจัดสรรออกเมื่อวาดเส้นและจุดด้วย Canvas (I9f535)
- เพิ่มเอกสารสำหรับ
AndroidFont.fontVariationSettings
(I7d9e2)
การสนับสนุนภายนอก
- ปรับปรุงประสิทธิภาพและลดการจัดสรรใน Vector API (I906cb)
เวอร์ชัน 1.5.0-alpha04
10 พฤษภาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-alpha04
แล้ว เวอร์ชัน 1.5.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การปรับปรุงการมอบสิทธิ์
Modifier.Node
เพิ่มความสามารถในการมอบสิทธิ์ให้กับอินสแตนซ์Modifier.Node
อื่นๆ จากDelegatingNode
แล้ว ซึ่งทำได้ด้วย API ของdelegate
และundelegate
ก่อนการเปลี่ยนแปลงนี้ API ทุกรายการจากโหนดที่มอบสิทธิ์จะต้องได้รับมอบสิทธิ์อย่างชัดเจนให้กับโหนดที่มอบสิทธิ์ หลังจากการเปลี่ยนแปลงนี้ อินเทอร์เฟซโหนดจะได้รับการมอบสิทธิ์โดยปริยาย เว้นแต่DelegatingNode
จะลบล้างการโต้ตอบเหล่านั้นอย่างชัดเจน (67352bc)
การเปลี่ยนแปลง API
- แนะนำ
NestedScrollModifierNode
ซึ่งเป็นNestedScroll Modifier.Node
ที่รับมอบสิทธิ์ได้ (I69513) - เพิ่มพารามิเตอร์
onReset
และonRelease
ใน ComposableAndroidViewBinding
ซึ่งมิเรอร์AndroidView
Composable และเปิดใช้การรองรับการใช้ View ซ้ำด้วยViewBinding
(I00b1e, b/276802519) - Compose Path API ใหม่เพื่อรองรับการดำเนินการกรอกลับเพื่อรองรับกรณีการใช้การจัดการเส้นทางที่ใช้บ่อยโดยใช้งานซ้ำได้เร็วขึ้น (I7b797)
- เพิ่ม
TextStyle.merge(...)
ที่เพิ่มประสิทธิภาพแล้วซึ่งมีรายการพารามิเตอร์ทั้งหมด (Iad234, b/246961787) - ลดการสั่นไหวของ Text API หลายรายการ ซึ่งรวมถึง
Brush
,DrawStyle
,TextMotion
,DrawScope.drawText
,Paragraph.paint(Brush)
,MultiParagraph.paint(Brush)
(I2f740, b/261581564, b/261581931, b/261561245) - เลิกใช้งาน
PlatformTextStyle.includeFontPadding
แล้ว เดิมเราตั้งใจจะนำช่องนี้ออก แต่ความคิดเห็นแสดงให้เห็นว่านักพัฒนาแอปต้องใช้ตัวเลือกการกำหนดค่านี้ ดังนั้นจึงเป็นการนำการเลิกใช้งานออกจากช่อง (I98e96, b/277703184)
แก้ไขข้อบกพร่อง
- แก้ไขการถดถอยที่แป้นพิมพ์ไม่แสดงสำหรับช่องข้อความภายในกล่องโต้ตอบที่ไม่ได้สร้างโดย Composable
Dialog
(I82551, b/262140644)
เวอร์ชัน 1.5.0-alpha03
19 เมษายน 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-alpha03
แล้ว เวอร์ชัน 1.5.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ลักษณะการทำงานเริ่มต้นแบบใหม่สำหรับ
SubcomposeLayout
ในLookaheadScope
:SubcomposeLayouts
ที่ไม่มีช่องโฆษณาแบบมีเงื่อนไข (เช่นTabRow
,Scaffold
,BoxWithConstraints
ฯลฯ) ทำงานได้ดีกับภาพเคลื่อนไหวแบบมองด้านหน้าแล้ว
การเปลี่ยนแปลง API
intermediateMeasurePolicy
เริ่มต้นแบบใหม่ที่นำนโยบายการวัดจาก Lookahead Pass มาใช้ซ้ำจะอนุญาตให้ประเภทย่อยSubcomposeLayout
ที่ไม่มีสล็อตแบบมีเงื่อนไข เช่นScaffold
,TabRow
และBoxWithConstraints
ทำงานร่วมกับ Lookahead ได้โดยค่าเริ่มต้น (Id84c8)- ตอนนี้รีคอมโพสเซอร์ที่สร้างขึ้นสำหรับหน้าต่าง Android จะบล็อกเฉพาะการเรียกไปยัง
withFrameNanos
แทนการเขียนองค์ประกอบทั้งหมดเมื่อได้รับการแจ้งเตือนจากON_STOP
ซึ่งหมายความว่าหน้าต่างที่เชื่อมโยงกับกิจกรรมที่หยุดแล้วจะยังคงปรับแต่งใหม่สำหรับการเปลี่ยนแปลงข้อมูล แต่ภาพเคลื่อนไหวหรือผู้โทรรายอื่นๆ ของwithFrameNanos
จะบล็อก (Id9e7f, b/240975572) - เปลี่ยน
motionEventSpy
เป็นเสถียร (Ic5ec4, b/261560988) - เพิ่มเมธอด
TextRange.constrain
สาธารณะแล้ว (I97912) PlatformTextStyle.includeFontPadding
ไม่ได้รับการสนับสนุนอีกต่อไปเพื่อส่งเสริมให้นักพัฒนาแอปใช้ API ความเข้ากันได้นี้เพื่อเปลี่ยนและทดสอบการตั้งค่าincludeFontPadding
เท็จ (I98e96, b/277703184)
เวอร์ชัน 1.5.0-alpha02
5 เมษายน 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-alpha02
แล้ว เวอร์ชัน 1.5.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
SubcomposeLayout
API ใหม่ที่ใช้นโยบายการวัดระดับกลางเพิ่มเติมสำหรับการจัดการตรรกะการวัด/เลย์เอาต์ระหว่างภาพเคลื่อนไหวที่อิงตาม Lookahead (I017d3)- PointerInput ใช้งานแบบ Lazy Loading แล้วในตอนนี้และใช้ Modifier.Node เพื่อประสิทธิภาพที่ดีขึ้น (อ่านข้อมูลเกี่ยวกับการเปลี่ยนแปลงลักษณะการทำงานเล็กน้อย) (15dab9)
- เปลี่ยน API เวอร์ชันทดลองให้เสถียรเมื่อมีเหตุการณ์สำคัญ (I9c7d8, b/261566839, b/261567368)
- เปลี่ยน API ทดลองเป็น API แบบเสถียรใน
PointerInputChange
(I1b543, b/261560988, b/261565762, b/261565749) - เพิ่มวิธีการสร้างอินสแตนซ์
SuspendingPointerInputModifierNode
สำหรับการใช้งานModifier.Node
ที่ซับซ้อนยิ่งขึ้น (Ic4933) - ตอนนี้
UrlAnnotation
ในAnnotatedString
จะเปิดผ่านบริการการช่วยเหลือพิเศษอย่างเช่นTalkBack
ได้แล้ว (If4d82, b/253292081) - เพิ่ม API เพื่อสกัดกั้นคีย์ฮาร์ดแวร์ก่อนที่จะส่งไปยังแป้นพิมพ์เสมือน (I4f4c6, b/186800395)
- เพิ่มการดำเนินการอรรถศาสตร์
InsertTextAtCursor
สำหรับช่องข้อความแล้ว (I11ed5) - ตอนนี้การดำเนินการทดสอบที่เกี่ยวข้องกับข้อความ (เช่น
performTextInput
) จะขอโฟกัสโดยตรง โดยใช้การดำเนินการอรรถศาสตร์แทนการคลิกที่ช่อง (I6ed05)
แก้ไขข้อบกพร่อง
- ตอนนี้การดำเนินการทดสอบข้อความกำหนดให้ต้องเปิดใช้ช่องข้อความ (Iab328)
เวอร์ชัน 1.5.0-alpha01
22 มีนาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.5.0-alpha01
แล้ว เวอร์ชัน 1.5.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ Modifier.intermediateLayout ไม่ต้องใช้ LookaheadScope อย่างชัดแจ้ง บล็อก Measure ใน InintermediateLayout มี IntermediateMeasureScope เป็นตัวรับ ซึ่งมอบ CoroutineScope, LookaheadScope และ MeasureScope ที่สะดวก (Ibe2e5)
- LookaheadLayout ได้รับการแทนที่ด้วย LookaheadScope ซึ่งไม่ได้เป็นเค้าโครงอีกต่อไป การดำเนินการนี้ช่วยให้ MeasurePolicy ของระดับบนสุดควบคุมเนื้อหา Chid ใน LookaheadScope ได้โดยตรง (Ibe2e5)
- เพิ่ม
Modifier.Node#coroutineScope
เพื่ออนุญาตให้ Modifier.Nodes เปิดใช้โครูทีน (I76ef9) - อนุญาตให้ Modifier.Nodes อ่าน CompositionLocals ด้วยการใช้อินเทอร์เฟซ CompositionLocalconsumerModifierNode (Ib44df)
- การเผยแพร่คลาส @เลิกใช้งานไปยังพร็อพเพอร์ตี้ (I882d1)
เวอร์ชัน 1.4
เวอร์ชัน 1.4.3
3 พฤษภาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.4.3
แล้ว เวอร์ชัน 1.4.3 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
AndroidView
จัดวางไม่ถูกต้องเมื่อใช้กับตัวปรับแต่งบางรายการ (I4dc77, b/274797771) - แก้ไขข้อบกพร่องในการค้นหาแบบ 2D Focus ที่มีผลต่อเมนู
DropDown
(b/276811828) - แก้ไขข้อบกพร่องในพร็อพเพอร์ตี้การป้อน/ออกของโฟกัสที่กำหนดเองซึ่งเรียกใช้เฉพาะบล็อกเข้า/ออกเมื่อเรียกใช้ lambda ครั้งแรก (b/277234245)
- แก้ไขการถดถอยในระบบโฟกัสที่ทำให้เกิดข้อขัดข้องขณะอ่าน
focusProperties
(b/271324781, b/274897776)
เวอร์ชัน 1.4.2
19 เมษายน 2023
ปล่อย androidx.compose.ui:ui-*:1.4.2
แล้ว เวอร์ชัน 1.4.2 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
AndroidView
ไม่ใช้ตัวแก้ไขซ้ำอย่างถูกต้อง ซึ่งอาจทำให้เกิดลักษณะการทำงานที่ไม่คาดคิดและข้อขัดข้อง (Ib67ee, b/275919849) - แก้ไขการถดถอยที่แป้นพิมพ์ไม่แสดงสำหรับช่องข้อความภายในกล่องโต้ตอบที่ไม่ได้สร้างโดย Composable ของ
Dialog
(I82551, b/262140644)
เวอร์ชัน 1.4.1
5 เมษายน 2023
ปล่อย androidx.compose.ui:ui-*:1.4.1
แล้ว เวอร์ชัน 1.4.1 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาเกี่ยวกับ
ParentDataModifier
ที่ไม่ส่งผลต่อAndroidView
(b/274797771)
เวอร์ชัน 1.4.0
22 มีนาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.4.0
แล้ว เวอร์ชัน 1.4.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.3.0
- เพิ่ม API ใหม่ของ
PinnableContainer
ที่อนุญาตให้ปักหมุดรายการแบบ Lazy Loading ได้ เพื่อไม่ให้ระบบกำจัดทิ้งเมื่อเลื่อนออกนอกขอบเขต ตัวอย่างเช่นModifier.focusable()
ใช้กลไกนี้เพื่อปักหมุดรายการที่โฟกัสอยู่ในปัจจุบัน (Ib8881, b/259274257, b/195049010) - ระบบโฟกัสจะเขียนใหม่โดยใช้ API ของ
Modifier.Node
เวอร์ชันทดลองใหม่ - เพิ่มในพร็อพเพอร์ตี้ความหมาย
IsContainer
ใน Surfaces แล้ว ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการส่งผ่านตามความหมายเชิงอรรถศาสตร์ขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379) - เพิ่มบทบาทการช่วยเหลือพิเศษใหม่ชื่อ
DropdownList
แล้ว ซึ่งจะจำลองลักษณะการทำงานของTalkBack
เมื่อโฟกัสandroid.widget.Spinner
ได้ (I177e5, b/236159001) - ตอนนี้คุณใช้
PlatformTextStyle(emojiSupportMatch)
เพื่อเลือกว่าจะปิดใช้การประมวลผลการรองรับอีโมจิสำหรับย่อหน้าเดียวได้แล้ว (Ia7100, b/139326806) - ตอนนี้การทดสอบ UI ของ Compose ใน Android จะเรียกใช้การส่งเลย์เอาต์สำหรับแต่ละเฟรมเมื่อเรียกใช้เฟรมเพื่อเข้าสู่โหมดไม่มีการใช้งาน (เช่น ผ่าน
waitForIdle
) ซึ่งอาจส่งผลต่อการทดสอบที่ยืนยันในแต่ละเฟรมของภาพเคลื่อนไหวในเลย์เอาต์ (I8ea08, b/222093277) - เพิ่ม
TextMotion
แบบทดลองลงในTextStyle
เพื่อกำหนดข้อความเป็นStatic(default)
หรือเป็นภาพเคลื่อนไหว ใช้TextMotion.Animated
หากข้อความจะมีการปรับขนาด แปล หรือหมุนผ่านภาพเคลื่อนไหว (I24dd7)
เวอร์ชัน 1.4.0-rc01
8 มีนาคม 2023
ปล่อย androidx.compose.ui:ui-*:1.4.0-rc01
แล้ว เวอร์ชัน 1.4.0-rc01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มฟังก์ชันที่ประกอบกันได้
AndroidView
มากเกินไป ซึ่งยอมรับพารามิเตอร์onReset
โดยจะอนุญาตให้นำอินสแตนซ์ "ดู" มาใช้ซ้ำได้เมื่อมีการทิ้งโหนดในการเรียบเรียงเพลงและนำมาใช้ซ้ำในแบบที่เข้ากันได้ ซึ่งจะเป็นประโยชน์อย่างยิ่งสำหรับการดูLazyRows
และLazyColumns
(I3f10d, b/230099236) - เปิดตัว API ใหม่ระดับต่ำของ
PlatformTextInputAdapter
เพื่อสร้างการใช้งานการป้อนข้อความที่กำหนดเองซึ่งสื่อสารกับ API ของแพลตฟอร์มโดยตรง (I58df4)
แก้ไขข้อบกพร่อง
- ตอนนี้การดำเนินการความหมาย
SetText
ของBasicTextField
จะอัปเดตบัฟเฟอร์ข้อความโดยใช้เส้นทางโค้ดเดียวกันกับการอัปเดต IME และฟังก์ชันการทดสอบ (เช่นperformTextReplacement
) - ตอนนี้ฟังก์ชันการทดสอบข้อความ
performTextClearance
,performTextReplacement
และperformTextSelection
ใช้SemanticsActions
แล้ว (I0807d, b/269633168, b/269624358)
เวอร์ชัน 1.4.0-beta02
22 กุมภาพันธ์ 2023
ปล่อย androidx.compose.ui:ui-*:1.4.0-beta02
แล้ว เวอร์ชัน 1.4.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ
modifierElementOf()
API ออกแล้ว โปรดขยายเวลาจากModifierNodeElement
โดยตรงแทน (I2256B) - เพิ่ม Callback ของ
Modifier.Node.onReset()
ใหม่ซึ่งช่วยให้คุณรีเซ็ตสถานะในเครื่องบางสถานะเพื่อจัดการกับกรณีได้อย่างเหมาะสมเมื่อจะนำLayout
มาใช้ซ้ำ (เช่น เป็นรายการของLazyColumn
) แก้ไขFocusTargetModifierNode
เพื่อรีเซ็ตสถานะการโฟกัสอย่างถูกต้อง (I65495, b/265201972) - เพิ่มพารามิเตอร์
BlendMode
ในเมธอดDrawScope.drawText
,Paragraph.paint
และMultiParagraph.paint
เพื่อรองรับอัลกอริทึมการผสานต่างๆ เมื่อวาดข้อความบน Canvas (I57508)
แก้ไขข้อบกพร่อง
- มีการปรับปรุงอัลกอริทึมลำดับการช่วยเหลือพิเศษ เช่น แถบด้านบน/ด้านล่างมีการอ่านค่าก่อน/สุดท้ายมากกว่า (74e9c5)
เวอร์ชัน 1.4.0-beta01
8 กุมภาพันธ์ 2023
ปล่อย androidx.compose.ui:ui-*:1.4.0-beta01
แล้ว เวอร์ชัน 1.4.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
PinnableContainer.PinnedHandle.unpin()
เปลี่ยนชื่อเป็นrelease()
(I4667a)- เพิ่ม
waitUntilNodeCount
,waitUntilAtLeastOneExists
,waitUntilExactlyOneExists
และwaitUntilDoesNotExist
เป็น API ทดลองในComposeTestRule
ซึ่งจะเป็นการขยาย API ของwaitUntil
เพื่อยอมรับเครื่องมือจับคู่และจำนวนโหนด ดูเอกสารเพิ่มเติมได้ที่ComposeTestRule
(Ifa1b9, b/226934294) - เปลี่ยนชื่อ
Font.MaximumAsyncTimeout
เป็นFont.MaximumAsyncTimeoutMillis
(I07af5) - นํา
GoogleFont.Provider.AllFontsListUri
ออกแล้วลิงก์ใน ktdoc แทน (I16F29)
แก้ไขข้อบกพร่อง
- เพิ่มเอกสารสำหรับ
AndroidFont.fontVariationSettings
(I7d9e2)
เวอร์ชัน 1.4.0-alpha05
25 มกราคม 2023
ปล่อย androidx.compose.ui:ui-*:1.4.0-alpha05
แล้ว เวอร์ชัน 1.4.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดตัวโอเวอร์โหลดทดสอบใหม่สำหรับฟังก์ชัน
runComposeUiTest
และฟังก์ชันcreate*ComposeRule
ที่ยอมรับพารามิเตอร์CoroutineContext
บริบทจะใช้สำหรับการเรียบเรียงเพลงและการเรียกLaunchedEffect
และrememberCoroutineScope()
ในการแต่งเพลง (I10614, b/265177763) - เพิ่ม API ใหม่เพื่อติดตามความเร็วมิติ 1 (If5a82)
- ตอนนี้
FocusRequester
ถูกทำเครื่องหมายเป็น@Stable
(I580ee) - นำคำอธิบายประกอบทดลองออกจากตัวสร้าง
DialogProperties
ที่ใช้พารามิเตอร์usePlatformDefaultWidth
(Ic4048) - เพิ่มฟังก์ชันลงในตำแหน่งการคำนวณและแทนเจนต์ที่ระยะทางบนเส้นทาง ด้วย
PathMeasure.getPosition()
และPathMeasure.getTangent()
(I3b47c) - นำตัวตั้งค่าสาธารณะที่เปิดเผยโดยไม่ได้ตั้งใจออกเมื่อ
PlatformParagraphStyle
(I07f47) - ประเภท/ความสามารถในการเว้นว่างที่มากขึ้นของฟังก์ชันในบรรทัด/เลิกใช้งานซึ่งซ่อน (I24f91)
- เพิ่ม
AnnotatedString.hasStringAnnotations
เพื่อค้นหาคำอธิบายประกอบที่มีการจัดสรรเป็นศูนย์ (I94dfe, b/246960758) - เพิ่มโอเวอร์โหลดใหม่สำหรับฟังก์ชัน
TextMeasurer.measure
ซึ่งจะนำString
เป็นข้อความ (I47b2d, b/242705342) - API ของ
LineBreak
และHyphens
ใน TextStyle ได้รับการอัปเดตเป็นเวอร์ชันเสถียรแล้ว (Ic1e1d)
การสนับสนุนภายนอก
- ไม่ได้เลิกใช้งาน
notifyFocusedRect
เมธอดในTextInputSession
และTextInputService
อีกแล้ว (I23a04, b/262648050)
เวอร์ชัน 1.4.0-alpha04
11 มกราคม 2023
ปล่อย androidx.compose.ui:ui-*:1.4.0-alpha04
แล้ว เวอร์ชัน 1.4.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม API ใหม่ของ
PinnableContainer
ที่อนุญาตให้ปักหมุดรายการแบบ Lazy Loading ได้ เพื่อไม่ให้ระบบกำจัดทิ้งเมื่อเลื่อนออกนอกขอบเขต ตัวอย่างเช่นModifier.focusable()
ใช้กลไกนี้เพื่อปักหมุดรายการที่โฟกัสอยู่ในปัจจุบัน (Ib8881, b/259274257, b/195049010) - ระบบโฟกัสจะเขียนใหม่โดยใช้ API ของ
Modifier.Node
เวอร์ชันทดลองใหม่ - เพิ่มในพร็อพเพอร์ตี้ความหมาย
IsContainer
ใน Surfaces แล้ว ระบบจะใช้พร็อพเพอร์ตี้นี้ในการเปลี่ยนแปลงในภายหลังซึ่งจะกำหนดลำดับการส่งผ่านตามความหมายเชิงอรรถศาสตร์ขององค์ประกอบต่างๆ เช่น พื้นผิว (I63379) - เพิ่มบทบาทการช่วยเหลือพิเศษใหม่ชื่อ
DropdownList
แล้ว ซึ่งจะใช้จําลองลักษณะการทำงานTalkBack's
เมื่อโฟกัสandroid.widget.Spinner
ได้ (I177e5, b/236159001) - ตอนนี้คุณใช้
PlatformTextStyle(emojiSupportMatch)
เพื่อเลือกว่าจะปิดใช้การประมวลผลการรองรับอีโมจิสำหรับย่อหน้าเดียวได้แล้ว (Ia7100, b/139326806) - ตอนนี้การทดสอบ UI ของ Compose ใน Android จะเรียกใช้การส่งเลย์เอาต์สำหรับแต่ละเฟรมเมื่อเรียกใช้เฟรมเพื่อเข้าสู่โหมดไม่มีการใช้งาน (เช่น ผ่าน
waitForIdle
) ซึ่งอาจส่งผลต่อการทดสอบที่ยืนยันในแต่ละเฟรมของภาพเคลื่อนไหวในเลย์เอาต์ (I8ea08, b/222093277) - เพิ่ม
TextMotion
แบบทดลองลงในTextStyle
เพื่อกำหนดข้อความเป็นStatic(default)
หรือเป็นภาพเคลื่อนไหว ใช้TextMotion.Animated
หากข้อความจะมีการปรับขนาด แปล หรือหมุนผ่านภาพเคลื่อนไหว (I24dd7)
การเปลี่ยนแปลง API
- แทนที่อาร์กิวเมนต์
maxSize: IntSize
ในdrawText
ด้วยsize: Size
ให้สอดคล้องกับฟังก์ชันDrawScope
อื่นๆ แล้วsize
ได้รับการตั้งค่าเป็นSize.Unspecified
โดยค่าเริ่มต้น ซึ่งไม่ควรเปลี่ยนลักษณะการทำงานเริ่มต้นก่อนหน้า (Icd27d) - นำเครื่องมือสร้างแบบอักษรทดลองที่เลิกใช้งานแล้วออก (I8a724, b/261435386)
- ตอนนี้คลาสข้อมูลการใช้เครื่องมือ UI
Group
มีช่องisInline
ซึ่งระบุว่ากลุ่มมีไว้สำหรับการเรียกฟังก์ชัน Composable ในบรรทัด หากisInline
คือtrue
การเรียกก็จะเป็นฟังก์ชัน Composable ในบรรทัด แต่ค่าดังกล่าวอาจเป็นเท็จสำหรับการเรียกไปยังฟังก์ชันที่ประกอบกันได้แบบในหน้า ซึ่งมาจากโมดูลที่คอมไพล์ด้วยปลั๊กอินคอมไพเลอร์เวอร์ชันเขียนที่ไม่สร้างข้อมูลฟังก์ชันแบบอินไลน์ (Idb846) - เปลี่ยน API ทดลองก่อนหน้านี้จำนวนหนึ่งให้เป็นตัวเลือกเสถียร
- ตอนนี้ Rotary Scroll Event API มีความเสถียรแล้ว (I42ad3, b/261561229)
FontVariation
API มีความเสถียรแล้ว (I8779f, b/241016309)- ตอนนี้เครื่องมือสร้าง
Font()
ทั้งหมดเป็น API ที่เสถียรแล้ว (I5948b, b/261435386) DeviceFontFamilyName
มีความเสถียรแล้ว (I8b640, b/261435386)- เครื่องมือสร้าง
AndroidFont
ที่มีvariationSettings
เป็น API ที่เสถียรแล้วในตอนนี้ และใช้เพื่อสร้างข้อบ่งชี้แบบอักษรประเภทใหม่ๆ ได้ (I5adcc, b/261565807) createFontFamilyResolver
API มีความเสถียรแล้วตอนนี้ การตั้งค่านี้สามารถใช้ตรวจจับข้อยกเว้นที่ตรวจไม่พบระหว่างการโหลดแบบอักษรแบบไม่พร้อมกัน (Ibb481, b/261435386)Font.loadingStrategy
API มีความเสถียรแล้วตอนนี้ (I5937c, b/261435386)GoogleFont
API มีความเสถียรแล้วตอนนี้ (Ic90b0, b/261435386)- ตอนนี้
TextUnit(float, TextUnitType)
เป็น API ที่มีความเสถียรแล้ว (I90c84, b/261561612) - ตอนนี้
pluralStringResource
เป็น API ที่มีความเสถียรแล้ว (I09849, b/261439703)
เวอร์ชัน 1.4.0-alpha03
7 ธันวาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.4.0-alpha03
แล้ว เวอร์ชัน 1.4.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- กำลังนำ
ExperimentalComposeUiApi
ออกจากPointerIcon
(I23af8) - แนะนำการดำเนินการสำหรับการเข้าถึงหน้าเว็บ:
PageUp
,PageDown
,PageLeft
,PageRight
โปรดทราบว่าข้อมูลเหล่านี้มีใน API 29 เท่านั้น (Ida4ab) - อัปเดตมุมมองพารามิเตอร์
rememberNestedScrollConnection
จากมุมมองรูทเป็นมุมมองโฮสต์แล้ว (Ia5200) - เพิ่ม Modifier API เพื่อค้นหาข้อมูลการเลื่อนระดับบน (I2ba9d, b/203141462)
- ใช้ใน
Clickable
เพื่อหน่วงเวลาการโต้ตอบกับการกดอย่างถูกต้อง เมื่อท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน - แก้ไข
Clickables
ไม่ให้เลื่อน Ripples อย่างถูกต้องเมื่อใช้ภายในScrollable ViewGroup
- ลิ้นชักและชีตที่อัปเดตใหม่เพื่อให้หน่วงเวลาการกดได้อย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
- เปลี่ยนชื่อ
CompositingStrategy.Always
เป็นOffscreen
แล้วเพื่อระบุว่าgraphicsLayer
จะแสดงในบัฟเฟอร์ระดับกลางเสมอ (I47dc1) - ตอนนี้เลย์เอาต์ที่มีสล็อตเนื้อหาหลายช่องมีความเสถียรมากเกินไปแล้ว (I10566, b/248294649)
- เพิ่ม API ใหม่ทดลอง
PerfettoTrace.record {}
และPerfettoTraceRule
เพื่อบันทึกการติดตาม Perfetto (หรือที่เรียกว่าการติดตามระบบ) ซึ่งเป็นส่วนหนึ่งของการทดสอบ เพื่อตรวจสอบพฤติกรรมและประสิทธิภาพของการทดสอบ (I3ba16) - ในการทดสอบ UI โดยใช้กฎการเขียน ระบบจะไม่ส่งความต่อเนื่องที่ดำเนินการต่อในระหว่าง Callback
withFrameNanos
จนกว่า Callback ของเฟรมทั้งหมดจะทำงานเสร็จสิ้น ซึ่งจะตรงกับลักษณะการทำงานของการเขียนเมื่อทำงานตามปกติ อย่างไรก็ตาม การทดสอบที่อิงตามลักษณะการทำงานแบบเดิมอาจล้มเหลว การดำเนินการนี้ควรส่งผลกับโค้ดที่เรียกใช้withFrameNanos
หรือwithFrameMillis
โดยตรงเท่านั้น และมีตรรกะนอก Callback ที่ส่งผ่านไปยังฟังก์ชันเหล่านั้นซึ่งอาจต้องย้ายภายใน Callback ดูตัวอย่างการเปลี่ยนแปลงการทดสอบภาพเคลื่อนไหวใน CL นี้ - เพิ่มพารามิเตอร์
onPerformTraversals: (Long) -> Unit
ที่ไม่บังคับลงในเครื่องมือสร้างTestMonotonicFrameClock
และฟังก์ชันจากโรงงานเพื่อเรียกใช้โค้ดหลัง CallbackwithFrameNanos
รายการ แต่ก่อนที่จะเรียกให้ผู้โทรกลับมาทำงานอีกครั้ง โครูทีน (Idb413, b/254115946, b/222093277, b/255802670) - เพิ่ม EmojiCompat ใน Compose (Ibf6f9, b/139326806)
- เพิ่มพารามิเตอร์วอลเปเปอร์ใหม่ใน
@Preview
สำหรับการรองรับสีแบบไดนามิก (I9f512)
แก้ไขข้อบกพร่อง
- ตอนนี้ระบบจะส่งการแจ้งเตือนการใช้สแนปชอตหลังจาก
Recomposer
ใช้การเปลี่ยนแปลงเสร็จสิ้น (Iad6c0, b/222093277) - เริ่มใช้การเปลี่ยนแปลงใน
captureToImage
เพื่อให้สามารถจับภาพหน้าจอแบบหลายหน้าต่างได้ วิธีนี้มีประโยชน์สำหรับการทดสอบภาพหน้าจอที่ใช้การเขียนป๊อปอัป (I169c5)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ UI ของ Compose และเนื้อหาเขียนขึ้นอยู่กับอายุการใช้งาน 2.5.1 (I05ab0, b/258038814)
เวอร์ชัน 1.4.0-alpha02
9 พฤศจิกายน 2022
ปล่อย androidx.compose.ui:ui-*:1.4.0-alpha02
แล้ว เวอร์ชัน 1.4.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- อัปเดต
GraphicsLayerScope
เพื่อแสดงขนาดปัจจุบันของgraphicsLayer
กรณีนี้เป็นประโยชน์สำหรับการประมวลผลการเปลี่ยนรูปแบบgraphicsLayer
เป็นฟังก์ชันของขนาด Composable (If8c43,b/181387080) - เปิดตัว
CompositingStrategy
เพื่อระบุเวลาที่ควรใช้เลเยอร์ประกอบหน้าเว็บนอกหน้าจอเพื่อแสดงภาพเนื้อหาgraphicsLayer
อัตโนมัติจะรักษาลักษณะการทำงานเริ่มต้นไว้ ซึ่งจะใช้ประโยชน์จากเลเยอร์ภายในหากมีการใช้อัลฟ่าหรือRenderEffect/Overscroll
จะเปิดบัฟเฟอร์นอกหน้าจอเสมอ โดยModulateAlpha
จะหลีกเลี่ยงการใช้ประโยชน์จากบัฟเฟอร์นอกหน้าจอ แต่จะปรับเปลี่ยนคำแนะนำในการวาดแต่ละรายการที่บันทึกไว้ภายในgraphicsLayer
แทน การใช้งานModulateAlpha
จะยังคงใช้ประโยชน์จากบัฟเฟอร์นอกหน้าจอสำหรับการใช้งานRenderEffect/Overscroll
(I25e82, b/256382834) - เพิ่ม
invalidateSubtree()
ไปยังModifier.Node
แล้วเพื่อทำให้ลำดับชั้นทั้งหมดใช้ไม่ได้สำหรับเลย์เอาต์และการวาด (I4Bd90) - เลื่อนระดับ
rememberNestedScrollInteropConnection
เป็นเสถียร เปิดตัวความสามารถในการส่งมุมมองรูทไปยังrememberNestedScrollInteropConnection
ซึ่งจะช่วยให้มุมมองที่กำหนดเองตอบสนองต่อข้อจำกัดในการเลื่อนได้ดียิ่งขึ้น โดยเฉพาะในมุมมองที่ไม่เป็นมาตรฐาน (เช่นModalBottomSheetDialog
) (I9e107) - เพิ่มอินเทอร์เฟซ
ObserverNode
ที่ใช้ได้โดยการติดตั้งใช้งานModifier.Node
ที่ต้องแจ้งเตือนเมื่อค่าที่เคยอ่านแล้วมีการเปลี่ยนแปลง (I5728b, b/247716483) - เพิ่มตัวสร้างใหม่ไปยัง
Paint
ที่ยอมรับandroid.graphics.Paint
แบบเนทีฟแล้ว และยังเพิ่มฟังก์ชันส่วนขยายtoComposePaint()
ที่แปลงออบเจ็กต์ Paint ดั้งเดิมที่มีอยู่เป็น Compose Paint ด้วย (Ica91b) - เพิ่ม
FontFamily.Resolver.resolveAsTypeface
ใหม่เพื่อใช้ใน Android (I8950B) - เพิ่ม
ToolingState
เพื่ออนุญาตให้เครื่องมือเปลี่ยนสถานะภายในของ Composable (Ie6614) - การเปลี่ยนโครงสร้างภายในโค้ดเพื่อให้รองรับภาพเคลื่อนไหวที่เพิ่มเข้ามาใหม่ได้ดียิ่งขึ้น (I8677b)
- เพิ่มพารามิเตอร์
minLines
ในวัสดุและ Material3 Text,TextField
และOutlinedTextField
ซึ่งอนุญาตให้ตั้งค่าความสูงขั้นต่ำของคอมโพเนนต์เป็นจํานวนบรรทัด (I4af1d)
เวอร์ชัน 1.4.0-alpha01
24 ตุลาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.4.0-alpha01
แล้ว เวอร์ชัน 1.4.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มวิธีการใหม่ "
awaitEachGesture()
" สำหรับตัวตรวจจับท่าทางสัมผัส โดยจะทำงานคล้ายกับforEachGesture()
แต่ท่าทางสัมผัสแบบวนซ้ำจะทำงานทั้งหมดภายในAwaitPointerEventScope
เพื่อไม่ให้เหตุการณ์หายไประหว่างการทำซ้ำ - เลิกใช้งาน
forEachGesture()
เพื่อใช้awaitEachGesture()
แล้ว เนื่องจากอนุญาตให้เหตุการณ์หายไประหว่างท่าทางสัมผัสได้ (Iffc3f, b/251260206) - การเลิกใช้งานการรีไซเคิลออบเจ็กต์การเข้าถึงใน androidx เราพบว่าการเปลี่ยนแปลงประสิทธิภาพอาจมีนัยสำคัญแม้ในเวอร์ชันที่เก่าที่สุดที่รองรับ (I0a961)
- เพิ่ม
DrawStyle
เป็นแอตทริบิวต์ทดลองของTextStyle
และSpanStyle
เพื่อเปิดใช้การวาดข้อความเส้นขอบ (If24b8, b/155421273) - ตอนนี้
AnnotatedString.Builder
ใช้kotlin.text.Appendable
แล้ว (I1a061, b/231030444) - ตอนนี้
AnnotatedString.Builder
มีเมธอดappend(AnnotatedString, start: Int, end: Int)
เพื่อต่อท้ายสตริงย่อยของAnnotatedString
และรูปแบบที่ตัดกัน - เพิ่มพารามิเตอร์
DrawStyle
ในParagraph
และฟังก์ชัน PaintMultiParagraph
ที่อนุญาตให้วาดข้อความเส้นขอบได้ (Ic8102, b/155421273)
การสนับสนุนภายนอก
- ขอขอบคุณที่
vighnesh
เพิ่มอุปกรณ์ทีวีลงในการแสดงตัวอย่าง (Ie15cd)
เวอร์ชัน 1.3
เวอร์ชัน 1.3.3
11 มกราคม 2023
ปล่อย androidx.compose.ui:ui-*:1.3.3
แล้ว เวอร์ชัน 1.3.3 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- วิธีแก้ไขข้อขัดข้องที่เกิดขึ้นใน Android 9 ในบางครั้งเมื่อกิจกรรมบันทึกสถานะของมุมมองเขียน (I0b755, b/260322832)
เวอร์ชัน 1.3.2
7 ธันวาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.3.2
แล้ว เวอร์ชัน 1.3.2 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- อัปเดตเพื่อใช้ Profobuf 3.21.8 ซึ่งหลีกเลี่ยงการแจ้งเตือนความปลอดภัยใน
protobuf-javalite:3.19.4
(CVE-2022-3171) (b/255545055)
เวอร์ชัน 1.3.1
9 พฤศจิกายน 2022
ปล่อย androidx.compose.ui:ui-*:1.3.1
แล้ว เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้
เวอร์ชัน 1.3.0
24 ตุลาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0
แล้ว เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0
- ชุด API ทดลองใหม่
LookaheadLayout
(เปิดใช้การทำงานของภาพเคลื่อนไหวที่เป็นไปไม่ได้ก่อนหน้านี้) - ชุด API ทดลองใหม่
Modifier.Node
(ทางเลือกที่มีประสิทธิภาพสูงกว่าModifier.composed
) - ปรับปรุงการสนับสนุนส่วนหน้าต่าง
- การรองรับการโฟกัสสำหรับ D-Pads และแป้นพิมพ์ฮาร์ดแวร์ใน LazyLists
- ระดับความสูงที่รองรับสูงสุดในกล่องโต้ตอบและป๊อปอัปลดลงเหลือ 8dp (การเปลี่ยนแปลงที่ส่งผลกับการทำงานสำหรับระบบการออกแบบที่กำหนดเองบางระบบ – เหตุผลในบันทึกประจำรุ่น Beta01)
- การปรับปรุง API เล็กๆ น้อยๆ หลายอย่าง
- แก้ไขข้อบกพร่องและปรับปรุงประสิทธิภาพหลายรายการ
เวอร์ชัน 1.3.0-rc01
5 ตุลาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-rc01
แล้ว เวอร์ชัน 1.3.0-rc01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มขีดกลางสั้น API แบบทดลองใหม่เพื่อรองรับการใส่ยัติภังค์อัตโนมัติในข้อความ (Iaa869)
แก้ไขข้อบกพร่อง
- แบบอักษร
DeviceFontFamilyName
จะไม่กำหนดการตั้งค่ารูปแบบwght
และital
เป็นค่าเริ่มต้น แต่จะใช้การตั้งค่าแพลตฟอร์มสำหรับTypeface
ที่โหลด (Ia7a6d, b/246989332) - แก้ไขการรั่วไหลของหน่วยความจำ
LazyColumn
- ระบบไม่เรียกใช้onModifierLocalsUpdated
ด้วยค่าเริ่มต้นเมื่อมีการใช้ตัวแก้ไขซ้ำ (b/230168389)
เวอร์ชัน 1.3.0-beta03
21 กันยายน 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-beta03
แล้ว เวอร์ชัน 1.3.0-beta03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มตัวเลือกเพื่อปรับแต่งการขึ้นบรรทัดใหม่ในข้อความ (I86907)
- เปลี่ยนอาร์กิวเมนต์
size:IntSize
ที่มีconstraints: Constraints
ในเมธอดTextMeasurer.measure
เพื่อรองรับการจำกัดความกว้างขั้นต่ำแล้ว (I37530, b/242707525)
แก้ไขข้อบกพร่อง
BackHandler
API ของกิจกรรม AndroidX ทำงานภายในDialog
Composable แล้ว (I35342)
เวอร์ชัน 1.3.0-beta02
7 กันยายน 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-beta02
แล้ว เวอร์ชัน 1.3.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มการโอเวอร์โหลดในช่วงทดลองสำหรับ Layout ซึ่งยอมรับรายการ lambda เนื้อหาที่ประกอบได้หลายรายการ ซึ่งช่วยให้สามารถวัดภัยคุกคามที่วัดค่าใน lambda ของเนื้อหาที่ต่างกันได้อย่างแตกต่างกัน (Ic1b4e)
การเปลี่ยนแปลงใน Focus API รุ่นทดลองมีดังนี้
FocusDirection.In
และFocusDirection.Out
เลิกใช้งานแล้วและแทนที่ด้วยFocusDirection.Enter
และFocusDirection.Exit
(Ia4262, b/183746982)- เพิ่มพร็อพเพอร์ตี้การโฟกัสใหม่และ 2 รายการเพื่อระบุลักษณะการทำงานที่กำหนดเองสำหรับ
FocusManager.moveFocus(Enter)
และFocusManager.moveFocus(Exit)
(I5f3f9, b/183746982) - คุณใช้
FocusRequester.Cancel
เพื่อยกเลิกการย้ายโฟกัสได้แล้วFocusRequester.Cancel
สามารถใช้ในคุณสมบัติโฟกัสใดก็ได้ต่อไปนี้ ขึ้น ลง ซ้าย ขวา ถัดไป ก่อนหน้า เริ่มต้น สิ้นสุด เข้า และออก (Ib300F)
เวอร์ชัน 1.3.0-beta01
24 สิงหาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-beta01
แล้ว เวอร์ชัน 1.3.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนโครงสร้างโหนดของตัวปรับแต่ง
เลเยอร์ที่จัดการ Modifier/Modifier.Element
อินสแตนซ์และประสานลักษณะการทำงานของอินสแตนซ์ใน LayoutNodes
มีการเปลี่ยนโครงสร้างใหม่อย่างสิ้นเชิง ตามเดิม นี่จึงเป็นการเปลี่ยนโครงสร้างภายในโค้ดที่ไม่ส่งผลกระทบต่อ API สาธารณะของตัวปรับแต่งจำนวนมากใน Compose และอาจมองได้ว่าเป็นการเปลี่ยนแปลงเฉพาะการติดตั้งใช้งานเท่านั้น อย่างไรก็ตาม นี่เป็นการเปลี่ยนแปลงที่สำคัญจากหลายสาเหตุ (Ie4313)
สรุปการเปลี่ยนแปลง
API แบบทดลองของ Modifier.Node
ที่เพิ่มเข้ามาจะมี Abstraction ที่อนุญาตให้คงสถานะไว้ในอินสแตนซ์ที่จะเก็บรักษาไว้ตามวงจรของโหนดเลย์เอาต์ และจะจัดสรรต่อโหนดเลย์เอาต์และต่อการใช้งานของ Modifier.Element
ที่เกี่ยวข้องซึ่งสร้างโหนดนั้น
พูดกว้างๆ ก็คือกระบวนการ Abstraction นี้เป็นอีกกลไกหนึ่งในการสร้างตัวปรับแต่งการเก็บสถานะโดยไม่ต้องอาศัยกลไกของ Modifier.composed
API
ความเสี่ยง
การเปลี่ยนแปลงนี้สามารถใช้ร่วมกับเวอร์ชันก่อนๆ ได้อย่างเคร่งครัด และมีไว้เพื่อให้เข้ากันได้แบบย้อนหลังในแง่ของลักษณะการทำงานที่สังเกตได้ให้มากที่สุดในทางปฏิบัติและสมเหตุสมผล อย่างไรก็ตาม มีระบบย่อยของการเขียนบางระบบที่ไม่ได้กระทำโดยการเปลี่ยนโครงสร้างภายในเครื่อง และเป็นไปได้ว่ามีการเปลี่ยนแปลงลักษณะการทำงานในลักษณะที่การทดสอบของเราไม่ครอบคลุมและยังไม่ได้รับการค้นพบและแก้ไข
โปรดอัปเกรดเป็นรุ่นนี้ด้วยความระมัดระวัง หากเชื่อว่าฟีเจอร์นี้ขัดข้องสำหรับคุณ โปรดแจ้งให้เราทราบ
API ทดลอง
มีการเพิ่ม API ทดลองต่างๆ โดยทั้งหมดเกี่ยวข้องกับแนวคิดใหม่ของ "โหนดตัวปรับแต่ง" Modifier.Node เกิดจาก
fun modifierElementOf(…): Modifier
abstract class ModifierNodeElement
abstract class Modifier.Node
abstract class DelegatingNode
interface LayoutModifierNode
interface DrawModifierNode
interface SemanticsNode
interface PointerInputNode
interface ModifierLocalNode
interface ParentDataModifierNode
interface LayoutAwareModifierNode
interface GlobalPositionAwareModifierNode
interface IntermediateLayoutModifierNode
การเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ
ระดับความสูงที่รองรับสูงสุดในกล่องโต้ตอบและป๊อปอัปลดลงเหลือ 8dp
ระดับความสูงที่รองรับสำหรับกล่องโต้ตอบการเขียนและป๊อปอัปลดลงจาก 30dp เป็น 8dp การเปลี่ยนแปลงนี้จะส่งผลต่อทั้งกล่องโต้ตอบและป๊อปอัปที่กำหนดเองของ UI และ Material การเปลี่ยนแปลงนี้ดำเนินการเพื่อลดข้อบกพร่องในการช่วยเหลือพิเศษใน Android เวอร์ชันที่ต่ำกว่า S และเพื่อให้มั่นใจว่าบริการการช่วยเหลือพิเศษภายในหน้าต่างเหล่านั้นจะโต้ตอบกับเนื้อหาภายในกล่องโต้ตอบหรือป๊อปอัปได้
คุณจะได้รับผลกระทบจากการเปลี่ยนแปลงนี้ก็ต่อเมื่อคุณสร้างการใช้งานกล่องโต้ตอบหรือป๊อปอัปที่กำหนดเองโดยตั้งค่าระดับความสูงไว้ที่สูงกว่า 8dp ลองลดระดับความสูงของกล่องโต้ตอบหรือป๊อปอัป หากคุณเลือกที่จะไม่ใช้ลักษณะการทำงานใหม่นี้ ให้ลองแยกกล่องโต้ตอบหรือป๊อปอัปของคุณเองที่มีการตั้งค่าระดับความสูงตามที่ต้องการ เราไม่แนะนำให้ทำเช่นนี้เนื่องจากการช่วยเหลือพิเศษอาจได้รับผลกระทบในทางลบและจะอยู่ที่นักพัฒนาแอปเพื่อให้แน่ใจว่าบริการการช่วยเหลือพิเศษจะโต้ตอบและอ่านข้อมูลที่ด้านล่างของกล่องโต้ตอบหรือป๊อปอัปได้
การเปลี่ยนแปลง API
- แก้ไขปัญหาที่
painterResource
ไม่อัปเดตเมื่อการเปลี่ยนแปลงการกำหนดค่า (I58e73, b/228862715) rememberTextMeasurer
ไม่ใช้พารามิเตอร์FontFamily.Resolver
,Density
หรือLayoutDirection
อีกต่อไป โปรดใช้ตัวสร้างTextMeasurer
เพื่อระบุค่าที่กำหนดเองสำหรับพารามิเตอร์เหล่านี้ (Ia1da3)- เพิ่มพร็อพเพอร์ตี้
DialogProperties.decorFitsSystemWindows
แล้ว เพื่อให้กล่องโต้ตอบรองรับWindowInsets
(I57742, b/229378542) - ย้ายตัวสร้างแบบอักษรกลับไปยังไฟล์ kotlin ต้นฉบับแล้วเพื่อรักษาความเข้ากันได้ของไบนารี ไม่มีการเปลี่ยนแปลงจากรุ่นที่เสถียรล่าสุด (Ieb2f3)
- นำโอเปอเรเตอร์ที่ไม่จำเป็นออกจากคำจำกัดความของเท่ากับหลายรายการ - ไม่มีผลใดๆ (I6C309)
FontVariation.Setting
เป็นอินเทอร์เฟซแบบปิดผนึก เพื่อรองรับ API ที่บีบในอนาคต (I11021, b/143703328)- เพิ่ม
CompositionGroup.findParameters
ไปยังSlotTree.kt
วิธีนี้จะช่วยให้เครื่องมือเรียกพารามิเตอร์สำหรับCompositionGroup
ได้โดยไม่ต้องแยกวิเคราะห์ตารางช่องทั้งหมด (I124fe)
เวอร์ชัน 1.3.0-alpha03
10 สิงหาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-alpha03
แล้ว เวอร์ชัน 1.3.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
LayoutCoordinates.findRootCoordinates()
เป็นแบบสาธารณะแล้ว (I7fa37, b/204723384)- เพิ่ม API ทดลองเพื่อรับ
LayoutCoordinates
ในPlacementScope
วิธีนี้ช่วยให้นักพัฒนาแอปทราบว่าเลย์เอาต์ปัจจุบันจะวางตำแหน่งย่อยไว้ที่ตำแหน่งใด (I5482b, b/238632578) - เพิ่ม
LayoutCoordinates.transformFrom
เพื่อรับการเปลี่ยนรูปแบบเมทริกซ์จากLayoutCoordinates
หนึ่งเป็นอีกอย่างหนึ่ง (Ic5ab1, b/238632578) - เลิกใช้งาน
SemanticsModifier.id
และย้ายรหัสความหมายไปยังLayoutInfo.semanticsId
แทน (Iac808, b/203559524) - ตอนนี้ Resource Fonts รองรับการตั้งค่ารูปแบบของแบบอักษร (API 26 ขึ้นไป) แล้ว (I900dd, b/143703328)
- การรองรับแบบอักษรที่ปรับเปลี่ยนได้ในภาษา
DeviceFontFamilyNameFont
(Ic1279, b/143703328) - เครื่องมือสร้างแบบอักษรยอมรับรายการ
FontVariation.Setting
สำหรับการกำหนดค่าแบบอักษรที่เปลี่ยนแปลงได้ในอุปกรณ์ O+ (I11a9d, b/143703328) - เพิ่ม
FontVariation
API เพื่อกำหนดและใช้แบบอักษรตัวแปร (I3c40c, b/143703328) - ขณะนี้ตัวสร้าง
LineHeightStyle.Alignment
เป็นแบบสาธารณะ (เวอร์ชันทดลอง) (I4bbbe, b/235876330) - ต้องมีการกำหนดย่อหน้า|ตามจริงและกำหนดไว้สำหรับ Android และเดสก์ท็อป (Id387e, b/239962983)
- ตอนนี้ Interface Paragarph เป็นอินเทอร์เฟซ Paragarph แบบปิดผนึกแล้ว ไม่มีกรณีการใช้งานสำหรับการจัดประเภทย่อยย่อหน้า และเราขอแนะนำให้ติดต่อหากการเปลี่ยนแปลงนี้ส่งผลกระทบต่อคุณ (If5247, b/239962983)
- นำหมายเหตุทดลองออกจาก
PlatformTextStyle
และLineHeightStyle
แล้ว (I64bef) - เลิกใช้งาน
TextInputService.show|hideSoftwareKeyboard
โปรดใช้SoftwareKeyboardController
แทนในโค้ดของแอปและใช้TextInputSession
ในโค้ดการจัดการ IME (I14e4c, b/183448615) - เพิ่ม API ใหม่สำหรับประเภทภาพเคลื่อนไหวที่มีอยู่ (I26179)
แก้ไขข้อบกพร่อง
- เพิ่ม
@RequiresPermission
ไปยัง API ที่ต้องให้สิทธิ์POST_NOTIFICATIONS
ใน SDK 33 ขึ้นไป (Ie542e, b/238790278)
เวอร์ชัน 1.3.0-alpha02
27 กรกฎาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-alpha02
แล้ว เวอร์ชัน 1.3.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มคุณสมบัติใหม่
PointerInputChange#pressure
เพื่อดึงค่าความดันแล้ว (I45a5e, b/205164819) - เพิ่ม
rememberTextMeasurer
เพื่อให้สามารถสร้างและจดจำอินสแตนซ์TextMeasurer
ในการเรียบเรียงได้อย่างง่ายดาย (I8d66e) Rect
,RoundRect
และMutableRect
รองรับไวยากรณ์in
ของ Kotlin สำหรับการเรียกใช้ฟังก์ชันcontains
แล้ว (Ie42b0, b/238642990)- นำฟังก์ชันที่ไม่จำเป็นออกจาก
KeyInjectionScope
เนื่องจากสามารถติดตั้งใช้งานได้ง่ายด้วยส่วนที่เรียบง่ายขึ้นของ API ฟังก์ชันที่นำออกแล้วประกอบด้วยpressKeys
,keysDown
และkeysUp
(I81d77) - ชื่อของค่าคงที่และพารามิเตอร์ใน
KeyInjectionScope
ที่ปรับใหม่ให้รวมคำต่อท้าย "Millis" โดยที่หน่วยของค่าคงที่และพารามิเตอร์ดังกล่าวเป็นมิลลิวินาที (Iabef5) - เพิ่มเมธอด
toStringForLog()
ในEditCommand
เพื่อช่วยแก้ปัญหาการแก้ไขข้อความแล้ว (I53354, b/228862731) - เพิ่มฟังก์ชันของส่วนขยาย
drawText
ในDrawScope
เพื่อระบุวิธีเขียนข้อความที่มีสไตล์หลากหลายใน Composable และตัวแก้ไขที่ทำงานในDrawScope
เช่นCanvas
และdrawBehind
(I16a62, b/190787898) - เปิดตัว API เวอร์ชันทดลองใหม่ที่ชื่อว่า
TextMeasurer
ซึ่งเปิดใช้การคำนวณเลย์เอาต์ข้อความที่กำหนดเองและสร้างผลลัพธ์ที่เหมือนกันกับBasicText
โดยไม่ขึ้นอยู่กับรันไทม์ของ Compose (I17101) - เพิ่ม
mapTree
ไปยังSlotTree.kt
ซึ่งจะช่วยให้เครื่องมือตรวจสอบSlotTree
ได้โดยไม่ต้องสร้างสำเนาในหน่วยความจำก่อนเหมือนกับที่ AsTree ทำ สำหรับเครื่องมือตรวจสอบการออกแบบ การปรับปรุงนี้จะมีการปรับปรุงประสิทธิภาพ ปัจจัยที่ 10 (I5e113) - เปลี่ยน Compose Preview ได้รับการจัดเก็บไว้ในไฟล์เอาต์พุตไบนารีเพื่ออนุญาตให้นักพัฒนาซอฟต์แวร์เขียนและใช้คำอธิบายประกอบ
MultiPreview
จากไลบรารีซ้ำได้ (I85699, b/233511976)
แก้ไขข้อบกพร่อง
- เมื่อเพิ่มเหตุการณ์
InputEventChange
ลงในเครื่องมือติดตามของVelocity
เราจะถือว่าตอนนี้เดลต้าแทนตำแหน่ง ซึ่งจะรับประกันอัตราความเร็วจะได้รับการคำนวณอย่างถูกต้องสำหรับทุกกรณีแม้ว่าองค์ประกอบเป้าหมายจะมีการขยับ (Icea9d, b/216582726, b/223440806, b/227709803) - แก้ไข NPE ที่เกิดจาก
AnnotatedString.toUpperCase
เมื่อมีคำอธิบายประกอบ (I0aca2, b/210899140)
เวอร์ชัน 1.3.0-alpha01
29 มิถุนายน 2022
ปล่อย androidx.compose.ui:ui-*:1.3.0-alpha01
แล้ว เวอร์ชัน 1.3.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
LookaheadLayout
ใหม่ที่รองรับ Lookahead Pass ก่อนการวัด/เลย์เอาต์จริง ซึ่งช่วยให้คำนวณเลย์เอาต์ล่วงหน้าได้เมื่อมีการเปลี่ยนแปลง แต่อนุญาตให้การวัด/รูปแบบหลังการดูใช้ขนาด/ตำแหน่งที่คำนวณไว้ล่วงหน้าเพื่อทำให้ขนาดและตำแหน่งเคลื่อนไหวไปยังเป้าหมาย ระบบยังไม่รองรับSubcomposeLayouts
แต่ในรุ่นถัดไป (I477f5)- เพิ่มพารามิเตอร์อัลฟ่า (ไม่บังคับ) ลงในเวอร์ชันแปรงของ
TextStyle
และSpanStyle
เพื่อปรับความทึบแสงของทั้งText
(Ic2fac, b/234117635) - เปิดตัวประเภทคำอธิบายประกอบ
UrlAnnotation
และวิธีที่เกี่ยวข้องเพื่อรองรับการรองรับลิงก์TalkBack
ในAnnotatedString
วินาที (I1c754, b/231495122) - กำลังย้ายฟังก์ชันการทำงานของยูทิลิตีไปที่รันไทม์ (I4f729)
แก้ไขข้อบกพร่อง
TextLayoutResult.getLineForOffset
ไม่ส่ง (Idc5d6, b/235876324)
การสนับสนุนภายนอก
- เพิ่ม API ใหม่
WindowInfo.keyboardModifiers
เพื่อสังเกตสถานะภายในฟังก์ชันที่ประกอบกันได้หรือผ่าน Snapflow (Icdb8a)
เวอร์ชัน 1.2
เวอร์ชัน 1.2.1
10 สิงหาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.1
แล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไข Nullpointer ในเครื่องมือตรวจสอบ (b/237987764)
- แก้ไขการยกเว้นการแคสต์คลาสในระหว่างการจำในเครื่องมือตรวจสอบ (b/235526153)
เวอร์ชัน 1.2.0
27 กรกฎาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0
แล้ว เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0
การปรับปรุงการข้ามผ่านโฟกัส
- ตอนนี้การเลื่อนแบบเน้นโฟกัสของรายการแบบ Lazy Loading ใช้งานได้แล้ว โดยใช้ API หลัก
BeyondBoundsLayout
ใหม่ - API การปรับแต่งลักษณะการทำงานใหม่ใน
FocusOrder
และFocusProperties
- ปรับปรุงลักษณะการทำงานด้วยแป้นพิมพ์จริงหรือรีโมตทีวี
- ตอนนี้การเลื่อนแบบเน้นโฟกัสของรายการแบบ Lazy Loading ใช้งานได้แล้ว โดยใช้ API หลัก
API ใหม่สำหรับ:
- ส่วนที่เว้นไว้ในหน้าต่าง
- พื้นฐานหลักสำหรับภาพเคลื่อนไหวตามท่าทางสัมผัส อนันต์ และเลย์เอาต์
- ความสามารถ
GraphicsLayer
รายการ รวมถึงRenderEffect
แก้ไขข้อบกพร่องและปรับปรุงประสิทธิภาพหลายรายการ
เวอร์ชัน 1.2.0-rc03
29 มิถุนายน 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-rc03
แล้ว เวอร์ชัน 1.2.0-rc03 มีคอมมิตเหล่านี้
- ไม่มีการเปลี่ยนแปลงตั้งแต่ 1.2.0-rc02
เวอร์ชัน 1.2.0-rc02
22 มิถุนายน 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-rc02
แล้ว เวอร์ชัน 1.2.0-rc02 มีคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-rc01
15 มิถุนายน 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-rc01
แล้ว เวอร์ชัน 1.2.0-rc01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้อินเทอร์เฟซในไลบรารีการเขียนที่สร้างขึ้นโดยใช้เมธอดอินเทอร์เฟซเริ่มต้น jdk8 (I5bcf1)
- เพิ่มฟังก์ชันลำดับที่สูงขึ้นลงใน
KeyInjectionScope
สำหรับการแทรกการกดแป้นในขณะที่แป้นอื่นๆ ค้างไว้หรือเปิดอยู่ ฟังก์ชันเหล่านี้รวมถึงwithKeysDown
,withKeysToggled
ฯลฯ และยังเพิ่มพร็อพเพอร์ตี้สำหรับตรวจสอบว่าเมตาคีย์ใดไม่ทำงาน เช่นisCtrlDown
เพื่อตรวจสอบว่าคีย์ควบคุมถูกกดลงหรือไม่ โปรดดูเอกสารสำหรับแต่ละฟังก์ชันในKeyInjectionScope
(I9f6cd, b/229831515) - เปิดตัว
OverscrollEffect
เวอร์ชันทดลองเพื่อรองรับเอฟเฟกต์การเลื่อนเกินแบบกำหนดเอง ร่วมกับโอเวอร์โหลดModifier.scrollable
ที่รองรับเอฟเฟกต์ดังกล่าว LocalOverScrollConfiguration
เวอร์ชันทดลองย้ายจากfoundation.gesture
ไปยังแพ็กเกจพื้นฐานและเปลี่ยนชื่อเป็นLocalOverscrollConfiguration
(If19fb, b/204650733)- เปลี่ยนชื่อ
runComposeUiTestWithoutActivity {}
เป็นrunEmptyComposeUiTest {}
ซึ่งสอดคล้องกับcreateEmptyComposeRule()
(I6fed7)
เวอร์ชัน 1.2.0-beta03
1 มิถุนายน 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-beta03
แล้ว เวอร์ชัน 1.2.0-beta03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
pressKeyTimes
รวมถึงisCapsLockOn
และเพื่อนลงในKeyInjectionScope
แล้ว นอกจากนี้ API ยังรองรับรูปแบบการแทรกที่ผสมระหว่างเมาส์และแป้นพิมพ์ เช่น การคลิกปุ่มเมาส์เมื่อกดแป้นเมตาค้างไว้ (I4c8da, b/229831515) - เพิ่มการรองรับการทดลองสำหรับการแทรกเหตุการณ์สำคัญ ใช้
performKeyInput
เพื่อส่งเหตุการณ์สำคัญ หรือส่งผ่านพร็อพเพอร์ตี้key
ของMultiModalInjectionScope
ระหว่างท่าทางสัมผัสการป้อนข้อมูลแบบหลายโมดัลด้วยperformMultiModalInput
ดูเอกสารประกอบของ API ได้ที่KeyInjectionScope
(Ic5000, b/229831515) - เพิ่ม
GoogleFont.Provider.AllFontsListUri
ใหม่สำหรับการดึงข้อมูลแหล่งที่มาอินเทอร์เน็ต Canonical ของ Google Fonts ที่ Android รองรับ - ปรับปรุงข้อความแสดงข้อผิดพลาดที่ปรากฏอีกครั้งเมื่อ GoogleFonts โหลดในการเขียนไม่สำเร็จ (I0416C)
แก้ไขข้อบกพร่อง
- เมื่อเพิ่มเหตุการณ์
InputEventChange
ลงในตัวติดตามอัตราความเร็ว ตอนนี้เราจะพิจารณาเดลต้าแทนตำแหน่ง ซึ่งจะรับประกันอัตราความเร็วที่มีการคำนวณอย่างถูกต้องสำหรับทุกกรณีแม้ว่าองค์ประกอบเป้าหมายจะมีการขยับ (I51ec3, b/216582726, b/223440806, b/227709803) - ตอนนี้ระบบจะใช้การตั้งค่า
Show Layout Bounds
กับ Composable ทันทีหลังจากที่สลับจากการ์ดการตั้งค่าด่วน โดยที่คุณไม่ต้องออกและเข้าร่วมกิจกรรมอีกครั้ง (I843d5, b/225937688) - การค้นหาสตริงการช่วยเหลือพิเศษไม่ทริกเกอร์การโหลดแบบอักษร ก่อนหน้านี้ เครื่องมือจะพยายามโหลดแบบอักษรของ
StyleSpans
ซึ่ง ทำให้เกิดข้อขัดข้องหากมีการเขียนทับFontFamily.Resolver
(I4609D) - การกดแป้นลบไปข้างหน้าเมื่อเคอร์เซอร์อยู่ที่จุดสิ้นสุดของช่องข้อความจะไม่ขัดข้องอีกต่อไป
- ตอนนี้
DeleteSurroundingTextCommand
และDeleteSurroundingTextInCodePointsCommand
กำหนดให้อาร์กิวเมนต์ตัวสร้างเป็นค่าไม่ติดลบ (Ica8e6, b/199919707)
เวอร์ชัน 1.2.0-beta02
18 พฤษภาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-beta02
แล้ว เวอร์ชัน 1.2.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การใช้ฟังก์ชันซ้ำในการแสดงตัวอย่างประเภทอื่นๆ (I19f39)
แก้ไขข้อบกพร่อง
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
ได้เปลี่ยนชื่อเป็นDisposeOnDetachedFromWindowOrReleasedFromPool
เพื่อให้สะท้อนได้ชัดเจนขึ้นว่าเมื่อมีการกำจัดเกิดขึ้น แทนที่จะแค่การกำจัดไม่ได้เกิดขึ้นจริง (If15ca)
เวอร์ชัน 1.2.0-beta01
11 พฤษภาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-beta01
แล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- นี่เป็นรุ่นเบต้ารุ่นแรกของ 1.2!
การเปลี่ยนแปลง API
- เพิ่ม
BeyondBoundsInterval
ทดลองที่สามารถใช้โดยการใช้งานที่กำหนดเองของLazyList
เมื่อจัดวางรายการเกินขอบเขตที่มองเห็นได้ (Ifabfb, b/184670295) - ตอนนี้เวอร์ชันที่มีคีย์ของ
Modifier.composed
เป็น API ที่มีความเสถียรแล้ว (Ie65e4, b/229988420) - ทำให้
rememberNestedScrollConnection
API เรียบง่ายขึ้นเพื่อใช้ภายในการเรียบเรียงเพลงเพื่อรับข้อมูลการดูปัจจุบัน (I67ca7) - คำอธิบายประกอบ
@ComposableTarget
และคำอธิบายประกอบที่@ComposableTargetMarker
ทำเครื่องหมายสามารถใช้ที่ขอบเขตของไฟล์ได้แล้วโดยใช้คำนำหน้า@file
การใช้คำอธิบายประกอบเป้าหมายที่ขอบเขตของไฟล์จะทำให้คอมไพเลอร์ถือว่าฟังก์ชันที่ประกอบได้ทั้งหมดในไฟล์มีจุดประสงค์เพื่อกำหนดเป้าหมายไปยังเครื่องมือที่เกี่ยวข้อง ตัวอย่างเช่น การใช้@file:UiComposable
จะประกาศว่าฟังก์ชัน@Composable
ทั้งหมดกำหนดเป้าหมายไปที่แอปพลิเคชัน UI ของ Compose ฟังก์ชันที่ต้องการกำหนดเป้าหมายไปยังเครื่องมืออื่นต้องระบุคำอธิบายประกอบของตัวทำเครื่องหมายเป้าหมายสำหรับแอปที่ต้องการอย่างชัดแจ้ง (I40804) เปิดตัว API การทดสอบใหม่แบบทดลองที่ไม่ขึ้นอยู่กับแพลตฟอร์ม:
interface ComposeUiTest
และfun runComposeUiTest(block: ComposeUiTest.() -> Unit)
ที่ใช้เพื่อทำการทดสอบ Compose Ui ได้ โดยไม่ต้องใช้TestRule
หากต้องการทำการทดสอบโดยไม่มีComposeTestRule
ผ่านการทดสอบในฐานะแลมบ์ดาไปยังrunComposeUiTest
และใช้ เมธอดและสมาชิกในขอบเขตผู้รับComposeUiTest
ซึ่ง ที่เดียวกับในComposeContentTestRule
interface AndroidComposeUiTest
และfun runAndroidComposeUiTest(block: AndroidComposeUiTest.() -> Unit)
เฉพาะสำหรับ Android คือ เพิ่มเพื่อให้การเข้าถึงกิจกรรมที่เกี่ยวข้องAndroidComposeTestRule
สำหรับการควบคุมเพิ่มเติม คุณสามารถสร้างอินสแตนซ์class AndroidComposeUiTestEnvironment
ตัวคุณเองการใช้เดสก์ท็อปคือ
class DesktopComposeUiTest
แต่ไม่มี ในขณะนี้ ฟังก์ชันการทำงานเฉพาะสำหรับเดสก์ท็อปมีให้บริการย้ายข้อมูลการทดสอบจาก
ComposeTestRule
ไปยังComposeUiTest
ได้ เช่นนี้ (ตัวอย่างของ Android) จาก:@RunWith(AndroidJUnit4::class) class MyTest { @get:Rule val rule = createComposeRule() @Test fun test() { rule.setContent { Text("Hello Compose!") } rule.onNodeWithText("Hello Compose!").assertExists() } }
โดยทำดังนี้
@RunWith(AndroidJUnit4::class) class MyTest { @Test @OptIn(ExperimentalTestApi::class) fun test() = runComposeUiTest { setContent { Text("Hello Compose!") } onNodeWithText("Hello Compose!").assertExists() } }
ตอนนี้
ComposeContentTestRule
และComposeTestRule
ยังไม่ขยายจากComposeUiTest
ซึ่งหมายความว่ายังเรียกใช้ฟังก์ชันของส่วนขยายในComposeUiTest
ในอินเทอร์เฟซTestRule
ไม่ได้ เมื่อComposeUiTest
เปลี่ยนไปใช้ API เวอร์ชันเสถียรแล้ว ระบบจะเปลี่ยนComposeContentTestRule
และComposeTestRule
เพื่อขยายเวลาจากComposeUiTest
(Ib4e90)LineHeightBehavior
เปลี่ยนชื่อเป็นLineHeightStyle
แล้วLineVerticalAlignment
เปลี่ยนชื่อเป็นLineHeightStyle.Alignment
แล้วเปลี่ยนชื่อ
LineHeightTrim
เปลี่ยนชื่อเป็นLineHeightStyle.Trim
นำค่าเริ่มต้นของตัวสร้างจาก
LineHeightStyle
ออกแล้ว (I582bf, b/181155707)เพิ่ม
Brush
ในTextStyle
และSpanStyle
เพื่อให้การวาดข้อความด้วยการไล่ระดับสี (I53869, b/187839528)trimFirstLineTop
,trimLastLineBottom
แอตทริบิวต์ของLineHeightBehavior
เปลี่ยนเป็น enum เดียว:LineHeightTrim
LineHeightTrim
มีค่า 4 สถานะที่กำหนดโดยบูลีน 2 ตัว ได้แก่FirstLineTop
,LastLineBottom
, ทั้ง 2 และไม่มี (Ifc6a5, b/181155707)เพิ่ม
LineHeightBehavior
ในTextStyle
และParagraphStyle
แล้วLineHeightBehavior
ควบคุมว่าจะใช้ความสูงของบรรทัดกับด้านบนของบรรทัดแรกและท้ายบรรทัดสุดท้ายหรือไม่ และยังกำหนดการจัดแนวเส้นในช่องว่างที่TextStyle(lineHeight)
จัดเตรียมไว้ให้ด้วยตัวอย่างเช่น คุณอาจได้รับพฤติกรรมที่คล้ายกับ CSS กำหนดผ่าน
LineHeightBehavior(alignment = LineVerticalAlignment.Center, trimFirstLineTop=false, trimLastLineBottom = false)
การกำหนดค่า
trimFirstLineTop
,trimLastLineBottom
จะทำงานอย่างถูกต้องก็ต่อเมื่อincludeFontPadding
มีค่าเป็น "เท็จ" (I97332, b/181155707)เปลี่ยนฟังก์ชัน
PlatformParagraphStyle.lerp
และPlatformSpanStyle.lerp
เป็นระดับบนสุดแล้ว (I9a268)
แก้ไขข้อบกพร่อง
- เอกสาร
PointerInputChange::copy
ฉบับระบุอย่างถูกต้องว่าเป็นสำเนาแบบตื้น (I182f5) - รองรับจุดไข่ปลาเมื่อมีการจำกัดความสูงและไม่พอดีกับบรรทัดข้อความทั้งหมด (Ie528c, b/168720622)
- เปิด
includeFontPadding
ตามค่าเริ่มต้นแล้ว คุณปิดincludeFontPadding
ได้โดยใช้แอตทริบิวต์TextStyle.platformTextStyle
ส่วนในอนาคตอันใกล้ เราจะเปลี่ยนลักษณะการทำงานเริ่มต้นแต่จนกว่าจะถึงเวลานั้น วิธีนี้จะช่วยให้เราผสานรวมการปรับปรุงความสูงของบรรทัด (aosp/2058653) และแก้ปัญหาการคลิปTextField
ได้ดียิ่งขึ้น (I01423, b/171394808)
การสนับสนุนภายนอก
- ตอนนี้
MouseInjectionScope.scroll(delta = someDelta)
จะกลับสีใน Android หากเราเลื่อนในแนวตั้ง (หาก Delta เป็นบวก จะเลื่อนลง) (Ifb697, b/224992993)
เวอร์ชัน 1.2.0-alpha08
20 เมษายน 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha08
แล้ว เวอร์ชัน 1.2.0-alpha08 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ฟังก์ชัน
pluralStringResource
ได้รับการทำเครื่องหมายว่าเป็นเวอร์ชันทดลองเพื่อให้วิวัฒนาการรองรับการปรับให้เป็นสากลที่ดียิ่งขึ้นในอนาคต (If24e4) - ตอนนี้ย่อหน้าและหลายย่อหน้ายอมรับพารามิเตอร์ข้อจำกัดแล้ว การส่งผ่าน
Constraints.maxHeight
ยังไม่ผ่านการทดสอบในขณะนี้ แต่จะอนุญาตให้ทำการคำนวณบางอย่างในอนาคต เช่น การใช้จุดไข่ปลาตามความสูง (I6afee, b/168720622) - ตอนนี้
SubcomposeSlotReusePolicy.getSlotsToRetain()
ยอมรับคลาสที่เหมือน MutableSet ที่กำหนดเองแล้ว ซึ่งไม่อนุญาตให้เพิ่มรายการใหม่ในชั้นนั้น (Icd314) - PointerIcon เป็นอินเทอร์เฟซ
@Stable
แล้ว (I9dafe) - เราเลิกใช้งานการใช้งานบางส่วน (ลดลง OR) แล้วใน
PointerInputChange
คุณใช้consume()
เพื่อทำการเปลี่ยนแปลงได้ทั้งหมด คุณสามารถใช้isConsumed
เพื่อดูว่าคนอื่นได้ใช้การเปลี่ยนแปลงก่อนหน้านี้หรือไม่ - ตอนนี้
PointerInputChange::copy()
จะทําสําเนาแบบตื้นเสมอ ซึ่งหมายความว่าระบบจะใช้สำเนาของPointerInputChange
เมื่อเลือกใช้สำเนา 1 ชุด หากต้องการสร้างPointerInputChange
ที่ไม่มีการเชื่อมโยง ให้ใช้ตัวสร้างแทน (Ie6be4, b/225669674) - เปิดใช้การทำงานร่วมกันของการเลื่อนที่ซ้อนกันระหว่างการเขียนและมุมมองในทิศทางเขียน > View นั้น ซึ่งหมายความว่าระดับบนสุดของการเขียนจะสามารถรับเดลต้าการเลื่อนที่ซ้อนกันจากมุมมองการเลื่อนที่ซ้อนกันได้ (If7949, b/174348612)
SemanticsProperty testTagsAsResourceId
ใหม่ซึ่งสามารถใช้เพื่อให้ Compose สอดคล้องกับการทดสอบ UIAutomator ที่ออกแบบมาสำหรับระบบ View (I39c20)- แสดงน้ำหนักที่ใช้ได้ทั้งหมดสำหรับแบบอักษรของระบบใน Android เมื่อใช้
FontFamily.SansSerif
ซึ่งจะใช้ชื่อแบบอักษรสำรอง เช่น sans-serif-medium ภายใน API 21-28 นี่เป็นการเปลี่ยนแปลงลักษณะการทำงานเนื่องจากก่อนหน้านี้ API 21-28 รองรับเฉพาะน้ำหนัก 400 และ 700 เท่านั้น (I380fe, b/156048036, b/226441992) - ผู้สอนย่อหน้าและผู้สอนหลายย่อหน้าจะจัดเรียงอาร์กิวเมนต์ตำแหน่งใหม่ก่อนอาร์กิวเมนต์ที่ไม่บังคับ (ไอดาฟา)
- ตอนนี้
AndroidFont
จะใช้ typefaceLoader เป็นพารามิเตอร์ตัวสร้าง (I2c971)
เวอร์ชัน 1.2.0-alpha07
6 เมษายน 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha07
แล้ว เวอร์ชัน 1.2.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มฟังก์ชันใหม่
Snapshot.withoutReadObservation { ... }
แล้ว อนุญาตให้ผู้ใช้เรียกใช้ lambda ที่ส่งผ่านได้โดยไม่ต้องสมัครรับการเปลี่ยนแปลงค่าสถานะที่อ่านระหว่างการบล็อกนี้ การใช้งานน่าจะมีประโยชน์ในกรณีที่ต้องการใช้ประโยชน์จากการเขียน/อ่านที่ปลอดภัยของเทรดในสแนปชอต แต่อยากอ่านค่าได้โดยไม่ทําให้มีการจัดองค์ประกอบใหม่หรือวัดอีกครั้งโดยไม่จำเป็น (I9f365, b/214054486) - พร็อพเพอร์ตี้ส่วนขยาย
consumeWindowInsets
ของComposeView
ช่วยให้นักพัฒนาซอฟต์แวร์ปิดการใช้งาน AndroidWindowInsets
ได้ ซึ่งจะทำให้ComposeViews
ที่แยกกันในลำดับชั้นมีผลกับWindowInsets
แต่ละรายการโดยไม่รบกวนกันและกัน (I0ef08, b/220943142) - เพิ่ม
KeyboardType.Decimal
เป็นทางเลือกสำหรับKeyboard.Number
สำหรับการรวมตัวคั่นทศนิยมใน IME โดยเฉพาะ (Iec4c8, b/209835363) PointerEventType.Scroll
และPointerEvent.scrollDelta
เป็น API ที่เสถียรแล้ว (I574c5, b/225669674)- เปิดใช้การทำงานร่วมกันของการเลื่อนที่ซ้อนกันระหว่าง "มุมมอง" และ "เขียน" สำหรับคลาส View ที่ทำงานร่วมกัน หมายความว่าตอนนี้การเขียนสามารถนำส่งเดลต้าการเลื่อนไปยังระดับบน (ที่ทำงานร่วมกัน) ได้แล้ว (I5d1ac, b/174348612)
- อัปเดต
FontFamily.Resolver
เพื่อผสานรวมการตั้งค่าการช่วยเหลือพิเศษสำหรับข้อความเป็นตัวหนาทั้งระบบ (I6c1e7) Font(AssetManager, String, ...)
เลิกใช้งานแล้ว และแทนที่ด้วยFont(String, AssetManager, ...)
นี่เป็น API เวอร์ชันทดลอง (I1c7a4)- เพิ่มข้อบ่งชี้แบบอักษรใหม่
Font(DeviceFontFamilyName)
เพื่อค้นหาแบบอักษรที่ติดตั้งโดยระบบ (ไม่บังคับ) ในช่วงเชนแบบอักษรสำรอง (I30468, b/219754572) - เพิ่มการกำหนดค่าความเข้ากันได้ชั่วคราวสำหรับ
includeFontPadding
ใน TextStyle/ParagraphStyle คุณเปลี่ยนแปลงincludeFontPadding
ได้ผ่านTextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false))
ตัวเลือกนี้เป็นตัวเลือกการกำหนดค่าชั่วคราวเพื่อเปิดใช้การย้ายข้อมูลและจะถูกนำออก (If47be, b/171394808) - เพิ่มส่วนขยาย
GoogleFont.Provider.isAvailableOnDevice
เพื่อรับความช่วยเหลือในการแก้ไขข้อบกพร่อง (I64e31) - เพิ่มตัวสร้าง
GoogleFont.Provider
เพื่อใช้กับ@ArrayRes
(Ic5ee1, b/225984280) - ตอนนี้
Compose GoogleFont
เปลี่ยนชื่อเป็นFont(GoogleFont)
แล้ว API จะยังคงมีความเสถียรหากไม่มีการเปลี่ยนแปลง (I125f2)
แก้ไขข้อบกพร่อง
- เพิ่มการตรวจสอบเศษส่วนบนวัสดุ/Scaffold เพื่อให้แน่ใจว่ามีการใช้ระยะห่างจากขอบด้านใน (Ifb111)
เวอร์ชัน 1.2.0-alpha06
23 มีนาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha06
แล้ว เวอร์ชัน 1.2.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มการดำเนินการด้านความหมาย
RequestFocus
เพื่อขอให้โฟกัสที่เป้าหมายที่โฟกัสได้ (I17b71) - อัปเดตการแยกวิเคราะห์ของเวกเตอร์ที่ถอนออกได้เพื่อรองรับการมิเรอร์อัตโนมัติ เพื่อพลิกเนื้อหาของ
VectorPainter
หากเลย์เอาต์ปัจจุบัน คือขวาไปซ้าย (I79cd9, b/185760237) อัปเดตสีเงา/สีแอมเบียนท์เป็นพารามิเตอร์ต่อท้าย
Modifier.graphicsLayer
สำหรับความเข้ากันได้กับ API (I3f864, b/160665122)เพิ่มการใช้งานเริ่มต้นให้กับสีเงา/สภาพแวดล้อมใน
GraphicsLayerScope
เพื่อให้การเปลี่ยนแปลง API ไม่เสียหายเพิ่มเวลาของกิจกรรมในกิจกรรม RSB (Ief8ae)
FocusOrder
ได้รวมกันเป็นFocusProperties
แล้ว และตอนนี้focusProperties()
มีความสามารถทั้งหมดของfocusOrder()
FocusOrder
และfocusOrder()
เลิกใช้งานแล้ว คุณควรแทนที่focusOrder()
ที่ยอมรับfocusRequester
ด้วยตัวแก้ไขfocusRequester()
ร่วมกับfocusProperties()
วิธีนี้ช่วยให้ผู้ปรับแยกข้อกังวลได้ชัดเจนขึ้น (I601b7)การอัปเกรดทั้ง
RecyclerView
และCompose
จะส่งผลให้สามารถเลื่อนดูได้อย่างมีประสิทธิภาพยิ่งขึ้นสำหรับ RecyclerViews ที่มีมุมมอง Compose เป็นรายการย่อยเพิ่ม
ViewCompositionStrategy.Default
เป็นวิธีเรียกข้อมูลกลยุทธ์เริ่มต้นในตัวเพิ่ม
ViewCompositionStrategy.DisposeOnDetachedFromWindowIfNotInPoolingContainer
ซึ่งเป็นกลยุทธ์เริ่มต้นใหม่และจัดการคอนเทนเนอร์การรวม เช่น RecyclerView ได้อย่างถูกต้อง (If7282)เพิ่มการรองรับคำอธิบายประกอบคลาสคำอธิบายประกอบด้วย @Preview เป็นขั้นตอนแรกในการเพิ่มฟีเจอร์ Multipreview คำอธิบายประกอบดังกล่าวสามารถใช้เพื่อใส่คำอธิบายประกอบในเมธอด Composable หรือคลาสคำอธิบายประกอบอื่นๆ ได้ ซึ่งจะถือว่าเป็นคำอธิบายประกอบโดยอ้อมด้วย @Preview ที่ระบุ (I12eff)
เพิ่มอุปกรณ์อ้างอิงลงในรายการอุปกรณ์สำหรับ @Preview (I071c9)
แก้ไขข้อบกพร่อง
- อัปเดต API กราฟิกเวกเตอร์เพื่อใช้คำอธิบายประกอบที่ประกอบได้ที่เหมาะสม @VectorComposable แทน @UiComposable (I942bc)
- นำข้ามบรรทัดออกจาก
AnnotatedString.Builder.withStyle
(If84d5)
การสนับสนุนภายนอก
- Compose-ui: เพิ่มพร็อพเพอร์ตี้
ambientShadowColor
และspotShadowColor
ไปยังGraphicsLayerScope
(I1ba1a, b/160665122) - รองรับแหล่งข้อมูลพหูพจน์ผ่านฟังก์ชัน
pluralStringResource
แล้ว (Ib2f23, b/191375123)
เวอร์ชัน 1.2.0-alpha05
9 มีนาคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha05
แล้ว เวอร์ชัน 1.2.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้
TextToolbar
รับอาร์กิวเมนต์ lambda แทนActionCallback
(Ib2eb9, b/197950089) - อัปเดตค่า Nulling ในบริการหลักและ Appcompat ให้ตรงกับ Tiramisu DP2 (I0cbb7)
- อินเทอร์เฟซที่วัดได้จะแสดงพร็อพเพอร์ตี้ parentData (I3313f)
Modifier.onPlaced
และอินเทอร์เฟซOnPlacedModifier
ที่มีความเสถียรแล้วในตอนนี้ (Ib5482)- ไชโย! รองรับการเขียนภาพเคลื่อนไหวแล้ว "ระดับระยะเวลาของภาพเคลื่อนไหว" จากตัวเลือกของนักพัฒนาซอฟต์แวร์ (I5a4fc, b/161675988)
- เพิ่มตัวแก้ไข
BeyondBoundsLayout
ในเครื่อง (If8b51, b/184670295) - ข้อความ: includeFontPadding จะปิดอยู่โดยค่าเริ่มต้น
ปัญหาการคลิปที่เกิดจาก
includeFontPadding=false
ได้รับการจัดการแล้ว และไม่ควรสร้างคลิปสำหรับสคริปต์แบบยาว (I31c84, b/171394808)
แก้ไขข้อบกพร่อง
- ตอนนี้
ComposeContentTestRule.setContent
จะส่งIllegalStateException
หากคุณพยายามกำหนดเนื้อหาเมื่อมี เนื้อหา (I888a5, b/199631334) - แก้ไขข้อขัดข้องที่เกิดจากเนื้อหาในคลิปบอร์ดขณะอ่านจาก คลิปบอร์ดใน Android (I06020, b/197769306)
- ปรับปรุงตัวอย่างการเลื่อน RSB (I6a596)
การสนับสนุนภายนอก
- อัปเดตเพื่อใช้ Kotlinx coroutines 1.6.0 (I3366d)
เวอร์ชัน 1.2.0-alpha04
23 กุมภาพันธ์ 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha04
แล้ว เวอร์ชัน 1.2.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
เพิ่ม
ComposableTarget
,ComposableTargetMarker
และComposableOpenTarget
ที่อนุญาตการรายงานเวลาคอมไพล์เมื่อ ฟังก์ชันที่ประกอบกันได้เรียกว่าการกำหนดเป้าหมายไปยังแอปพลิเคชันซึ่งไม่ใช่ ที่ออกแบบมาเพื่อใช้ในกรณีส่วนใหญ่ คำอธิบายประกอบสามารถอนุมานได้โดยผู้ประพันธ์ ปลั๊กอินคอมไพเลอร์ ดังนั้นการใช้คำอธิบายประกอบเหล่านี้โดยตรงควร หายาก กรณีที่ไม่สามารถอนุมานได้ ได้แก่ การสร้างและ โดยใช้ฟังก์ชัน Composable เชิงนามธรรมที่นำไปใช้ที่กำหนดเอง (เช่น เมธอดของอินเทอร์เฟซ) ฟิลด์ หรือตัวแปรร่วมที่ lambda แบบประกอบได้ (การอนุมานตัวแปรและพารามิเตอร์ในเครื่อง) หรือเมื่อใช้
ComposeNode
หรือฟังก์ชัน Composable ที่เกี่ยวข้องสำหรับผู้ใช้ที่กำหนดเอง ฟังก์ชันที่ประกอบกันได้ซึ่งเรียกใช้
ComposeNode
หรือReusableComposeNode
ต้องเพิ่ม คำอธิบายประกอบComposableTarget
สำหรับฟังก์ชันและฟังก์ชัน ประเภทพารามิเตอร์ lambda ที่ประกอบกันได้ อย่างไรก็ตาม เราขอแนะนำว่า เพื่อสร้างคำอธิบายประกอบที่มีคำอธิบายประกอบComposableTargetMarker
จากนั้นจะมีการใช้คำอธิบายประกอบที่ทำเครื่องหมายไว้ แทนComposableTarget
โดยตรง คำอธิบายประกอบที่ประกอบกันได้ ทำเครื่องหมายด้วยComposableTargetMarker
เทียบเท่ากับComposbleTarget
ด้วยชื่อที่สมบูรณ์ในแอตทริบิวต์ เป็นพารามิเตอร์ที่เกี่ยวข้อง ตัวอย่างเช่นComposableTargetMarker
ดูanroidx.compose.ui.UiComposable
(I38f11)ตอนนี้
Font(resId, ...)
จะทำการโหลดหน้าเว็บใน API ที่เสถียรแล้ว (Ief3d2)ตอนนี้
FontLoadingStrategy
เป็น API ที่มีความเสถียรแล้ว (I1ee35, b/174162090)รองรับการโหลดแบบอักษรแบบไม่พร้อมกันในข้อความ (I77057, b/214587005)
เพิ่ม API บริดจ์สำหรับการแปลง
Font.ResourceLoader
ที่กำหนดเองเป็นFontFamily.Resolver
(Ia0060)
แก้ไขข้อบกพร่อง
- ส่งผ่าน
FontFamily.Resolver
ที่ระบุไปยังองค์ประกอบย่อย เช่น ป๊อปอัป - ส่งผ่าน
Font.ResourceLoader
ที่ระบุไปยังองค์ประกอบย่อย เช่น ป๊อปอัป (I48fa5)
เวอร์ชัน 1.2.0-alpha03
9 กุมภาพันธ์ 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha03
แล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
notifyFocusedRect
วิธีในTextInputSession
และTextInputService
เลิกใช้งานแล้วและจะไม่มีการเรียกใช้ ใช้BringIntoViewRequester
แทน (Ia4302, b/192043120, b/216842427, b/178211874)- เปิดตัวเมื่อ
destroyDisplayListData
เมธอดในคลาสสตับของRenderNode
(I1e659, b/216660268) - เพิ่ม API ใหม่ซึ่งช่วยให้วัดรายการย่อยของ
SubcomposeLayout
ที่คุณกำหนดไว้ล่วงหน้าได้ (I857ea) เพิ่ม
movableContentOf
ซึ่งแปลง Composable แล้ว แลมบ์ดาลงในแลมบ์ดาที่ย้ายสถานะ และโหนดที่เกี่ยวข้อง ไปยังตำแหน่งใหม่ที่เรียกว่าตำแหน่งใหม่ เมื่อสายก่อนหน้าสิ้นสุดลง การเรียบเรียง สถานะจะเก็บไว้ชั่วคราว และหากมีการการเรียกใหม่ แลมบ์ดาจะเข้าสู่การเรียบเรียง จากนั้นเข้าสู่รัฐ และ จะย้ายไปยังตำแหน่งของการเรียกใหม่ หากไม่มีสายใหม่ เพิ่มรัฐนั้น ถูกนำออกอย่างถาวร และอย่าลืมว่าผู้สังเกตการณ์ การแจ้งเตือนถ้ามีการเรียก
movableContentOf
แลมบ์ดาหลายครั้งพร้อมกัน องค์ประกอบ สถานะใหม่ และโหนดจะถูกสร้างสำหรับการเรียกแต่ละครั้ง จะออกจากองค์ประกอบและโทรออกใหม่ สถานะจะถูกย้าย ตั้งแต่การวางสายแรกไปจนถึงการโทรเข้าตามลำดับ จะถูกเรียก สถานะทั้งหมดที่ไม่ได้อ้างสิทธิ์โดยการเรียกใหม่จะถูกนำออก อย่างถาวร (Ib4850)FontFamilyResolver
พร้อมให้บริการผ่านLocalFontFamilyResolver.current
แล้วเพิ่ม
createFontFamilyResolver(context)
และcreateFontFamilyResolver(context, coroutineScope)
เพื่อสร้างรายการใหม่แล้ว รีโซลเวอร์ FontFamily ที่อยู่นอกการใช้งานการเขียนตอนนี้การใช้ย่อหน้าและย่อหน้าหลายย่อหน้าใช้เวลา
FontFamily.Resolver
ขณะนี้
TextLayoutResult.layoutInput.fontFamilyResolver
มี รีโซลเวอร์ที่ใช้สำหรับเลย์เอาต์นี้ เลิกใช้งานแล้วTextLayoutResult.layoutInput.resourceLoader
เนื่องจากไม่มีการใช้งานแล้ว (Id5a45, b/174162090)รองรับการโหลดแบบอักษรแบบไม่พร้อมกันและที่ไม่บังคับ (พร้อมตัวเลือกสำรอง) พฤติกรรมของคุณ ใช้เส้นทางนี้โดย Text และ TextField และเปิดเผยผ่าน FontFamilyมากกว่า
สนับสนุนการโหลดแบบอักษรล่วงหน้าผ่าน
FontFamilyResolver.preload
FontFamilyResolver.setAsyncLoadContext
อนุญาตให้ตั้งค่า บริบท Coroutine ส่วนกลางที่ใช้สำหรับโหลดแบบอักษรที่ไม่พร้อมกัน (I87fe8, b/174162090)เพิ่ม
AndroidFont
ซึ่งเป็น API ใหม่ระดับล่างสำหรับการระบุประเภทใหม่ๆ ของตัวบอกทรัพยากรแบบอักษรใน Android เช่น กำลังโหลดแบบอักษรจาก แบ็กเอนด์เฉพาะแอป โดยจะค้นหาแบบอักษรที่ติดตั้งไว้ล่วงหน้า (ไม่บังคับ) ในอุปกรณ์ หรือการโหลดแบบอักษรจากทรัพยากรที่ไม่ได้ระบุไว้ในปัจจุบัน โรงงานแบบอักษรขยาย API ของ
Font.ResourceLoaded
เพื่อรองรับแบบไม่บังคับและไม่พร้อมกัน กำลังโหลดแบบอักษร ไม่แนะนำให้นักพัฒนาแอปพลิเคชันใช้ API ได้โดยตรง หากต้องการเพิ่มแบบอักษรประเภทใหม่ โปรดดูAndroidFont
Font.AndroidResourceLoader
ฟังก์ชันของส่วนขยายทำให้ การสร้างFont.ResourceLoader
เมื่ออยู่นอกองค์ประกอบเพิ่มพารามิเตอร์
loadingStrategy
ลงในแบบอักษรที่อิงตามทรัพยากรแล้วเพื่ออนุญาต การโหลดแบบไม่พร้อมกันเมื่อแบบอักษรของทรัพยากรอ้างอิง XML แบบอักษรที่ดาวน์โหลดได้ (Ie5aea, b/174162090)เลิกใช้งานตัวสร้าง
Typeface(FontFamily)
แล้ว นี่คือ ที่ใช้ก่อนหน้านี้เพื่อโหลดแบบอักษรล่วงหน้า ซึ่งอาจใช้เวลาถึง 10 วินาที แบบอักษรที่ดาวน์โหลดได้ หากใช้แบบอักษรที่ดาวน์โหลดได้ การเรียกนี้อาจบล็อกเป็นเวลา 10 วินาที โปรดใช้FontFamilyResolver.preload
แทนfontResource(FontFamily): Typeface
เลิกใช้งานแล้ว นี่คือ ที่ใช้ก่อนหน้านี้เพื่อโหลดแบบอักษรล่วงหน้า ซึ่งอาจใช้เวลาถึง 10 วินาที แบบอักษรที่ดาวน์โหลดได้ โปรดใช้FontFamilyResolver.preload
แทน (If8e7c, b/174162090)เลิกใช้งานตัวสร้าง
SubcomposeLayoutState
ที่ยอมรับmaxSlotsToRetainForReuse
แล้ว แต่มีตัวสร้างใหม่ที่ยอมรับSubcomposeSlotReusePolicy
- อินเทอร์เฟซใหม่ที่ช่วยให้ควบคุมช่องได้ละเอียดยิ่งขึ้นว่าควรเก็บรักษาสล็อตใดไว้ใช้ซ้ำในอนาคต (I52c4d)แสดงฟังก์ชัน HSV และ HSL ใน
Color
ว่าเป็นฟังก์ชันที่ไม่ใช่การทดสอบ API พื้นที่สีของ Oklab เปลี่ยนเป็น API สาธารณะแล้ว (I08fb6, b/180731008)เลิกใช้งาน
AndroidComposeTestRule.AndroidComposeStatement
ซึ่งไม่ได้ออกแบบมาให้อยู่ใน API สาธารณะและไม่ได้ทำอะไรให้คุณเลย ใช่ไหมล่ะ (Ibc46b)การเปลี่ยนชื่อคลาส kt ที่สร้างขึ้นภายใน (Ia0b9e, b/174162090)
นำ
FontLoadingStrategy.values
ออก (I42a9d, b/174162090)ขณะนี้เครื่องมือโหลดแบบอักษรส่วนกลางเปลี่ยนชื่อเป็น
FontFamilyResolver
(I4f773, b/174162090)ใช้ระบบการโหลดแบบอักษรใหม่สำหรับเดสก์ท็อป (I9ce5c, b/174162090)
FontFamily.Resolver.resolve
แสดงผลState<Any>
(I4406c, b/174162090)
แก้ไขข้อบกพร่อง
- ตอนนี้ฟิลด์ข้อความจะถูกเก็บไว้ด้านบนแป้นพิมพ์
โฟกัสและแป้นพิมพ์แสดงอยู่ เมื่ออยู่ในโหมดการป้อนข้อมูลแบบซอฟต์
ADJUST_PAN
(I8eaeb, b/190539358, b/192043120) - เดสก์ท็อปใช้การเรียบเรียงในเครื่องสำหรับ
FontFamily.Resolver
FontLoader
สำหรับเดสก์ท็อปเลิกใช้งานแล้ว- โรงงาน
createFontFamilyResolver
ใหม่บนเดสก์ท็อป (I6bbbb, b/174162090) - ประเภทการป้อนข้อมูลด้วยแป้นพิมพ์ไม่กะพริบอีกต่อไปเมื่อเปลี่ยน โฟกัสระหว่างช่องข้อความ (I1bf50, b/187746439)
เวอร์ชัน 1.2.0-alpha02
26 มกราคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha02
แล้ว เวอร์ชัน 1.2.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
Modifier.onRotaryScrollEvent()
และModifier.onPreRotaryScrollEvent()
สำหรับอุปกรณ์ Wear ที่มีปุ่มหมุนด้านข้าง (I18bf5, b/210748686) - เพิ่ม
View.createLifecycleAwareRecomposer
แบบทดลอง ส่วนขยาย (I0cde6)
การสนับสนุนภายนอก
- ตอนนี้
PointerEvent.scrollDelta.y
จะกลับสีใน Android (ตอนนี้จะแสดงเป็น 1 แทนที่จะเป็น -1 หากเราเอียงล้อเมาส์ไปทางขวา) (Ia9811)
เวอร์ชัน 1.2.0-alpha01
12 มกราคม 2022
ปล่อย androidx.compose.ui:ui-*:1.2.0-alpha01
แล้ว เวอร์ชัน 1.2.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เลิกใช้งาน
FontFamily.canLoadSynchronously
ที่พักนี้มี ไม่มีความหมาย (Ica5ef) - เพิ่มช่องข้อมูลประจำตัวใน
CompositionData
เพื่อสร้างแล้ว รหัสตัวแปรในตัวตรวจสอบการออกแบบ (Ic116e) - เพิ่มรหัสอุปกรณ์ Wear OS ลงในรายการอุปกรณ์ตัวอย่าง (I93232)
การอัปเดตการขึ้นต่อกัน
- ตอนนี้ขึ้นอยู่กับ
1.6.10
ของ Kotlin
เวอร์ชัน 1.1
เวอร์ชัน 1.1.1
23 กุมภาพันธ์ 2022
ปล่อย androidx.compose.ui:ui-*: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.ui:ui-*: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.ui:ui-*:1.1.0-rc03
แล้ว เวอร์ชัน 1.1.0-rc03 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- อัปเดตเพื่อสนับสนุน Compose Material 1.1.0-rc03
เวอร์ชัน 1.1.0-rc01
15 ธันวาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-rc01
แล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่ทำให้การเลื่อนการช่วยเหลือพิเศษหายไป (I7cbfb)
SemanticsNodeInteraction.captureToImage()
จะทำงานด้วยหากHardwareRenderer.isDrawingEnabled()
คือfalse
ด้วยการเปิดใช้ตลอดระยะเวลาการโทร (Idf3d0)
เวอร์ชัน 1.1.0-beta04
1 ธันวาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-beta04
แล้ว เวอร์ชัน 1.1.0-beta04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดตให้เข้ากันได้กับ Kotlin
1.6.0
การเปลี่ยนแปลง API
- ล้างข้อมูลความสามารถในการเว้นว่างใน
androidx.core.view
(I7078a, b/204917439) - มีการเพิ่ม API ทดลองที่ช่วยให้ผู้ใช้สามารถใช้ PointerInputchange ทั้งหมดหรือตรวจสอบว่ามีการใช้ PointerInputchange หรือไม่ (I2e59d)
- เพิ่มการรองรับเหตุการณ์ล้อเลื่อนของเมาส์ในเลเยอร์ UI (Ia14eb, b/198214718)
- เพิ่มการโอเวอร์โหลด
Modifier.composed
แบบทดลองที่ยอมรับ เพื่อใช้เปรียบเทียบความเท่าเทียม และมีคุณสมบัติในการข้ามการเพิ่มประสิทธิภาพ (Ice799, b/205851704) - ตอนนี้
ComposeNotIdleException
ขยายเวลาจากException
แทนแล้ว จากThrowable
โดยตรง โปรดทราบว่าคำสั่งนี้หมายถึงประเภทข้อความ ที่ตรวจจับException
อยู่อาจเจอแล้วComposeNotIdleException
ซึ่งผู้ใช้จะไม่สามารถทำได้ก่อนหน้านี้ (I9c217)
แก้ไขข้อบกพร่อง
- แก้ไขแฮนเดิลข้อความไม่ย้ายเมื่อมีการเปลี่ยนแปลงการเปิดเผย IME (I25f2e)
เวอร์ชัน 1.1.0-beta03
17 พฤศจิกายน 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-beta03
แล้ว เวอร์ชัน 1.1.0-beta03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มตัวแก้ไขใหม่ Modifier.onPlaced แล้วเพื่ออนุญาต การเปลี่ยนแปลงตำแหน่งที่ควรสังเกต การเปลี่ยนแปลงเพิ่มเติมกับ ออฟเซ็ตของตัวปรับแต่งย่อยจึงอาจสร้างขึ้นจาก การเปลี่ยนแปลงตำแหน่งที่สังเกต (I558fd)
- ลบ
InjectionScope.flush()
และInjectionScope.dispose()
การล้างเหตุการณ์ทั้งหมดและการนำเหตุการณ์ออก จะเกิดขึ้นที่ส่วนท้ายของเมธอด performance*Input() ขึ้นทันที เช่น ก่อนหน้านี้ (I2bed8) - ลบ
MultiModalInjectionScope.Touch
และMultiModalInjectionScope.Mouse
เพื่อใส่การแตะและเมาส์ เหตุการณ์สำหรับท่าทางสัมผัสแบบหลายโมดัล คุณสามารถใช้MultiModalInjectionScope.touch()
และMultiModalInjectionScope.mouse()
ซึ่งทั้ง 2 บัญชียอมรับ lambda ที่ มีขอบเขตการรับของรูปแบบนั้น (Idde18)
แก้ไขข้อบกพร่อง
- ค่าเริ่มต้นสำหรับ
durationMillis
ใน ตอนนี้TouchInjectionScope.swipeWithVelocity
ได้รับการคำนวณว่า สามารถปัดได้ (I19deb)
เวอร์ชัน 1.1.0-beta02
3 พฤศจิกายน 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-beta02
แล้ว เวอร์ชัน 1.1.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม BringIntoView API เวอร์ชันทดลองที่ให้คุณส่งคำขอถึงผู้ปกครองเพื่อให้ผู้ปกครองเลื่อนเพื่อนำรายการเข้ามาดูได้ (Ib918d, b/195353459)
- API ภาพเคลื่อนไหวแบบใหม่สำหรับเครื่องมือสนับสนุน โดยเฉพาะอย่างยิ่ง อนุญาตให้เครื่องมือตรวจสอบภาพเคลื่อนไหว การกำหนดค่าใน การเปลี่ยนฉาก (I4116e)
การสนับสนุนภายนอก
- เพิ่ม Modifier.pointerHoverIcon (I95f01)
เวอร์ชัน 1.1.0-beta01
27 ตุลาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-beta01
แล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม API เวอร์ชันทดลองของ
BringIntoView
ที่ให้คุณส่งคำขอถึงผู้ปกครองเพื่อให้ผู้ปกครองเลื่อนเพื่อนำรายการเข้ามาดูได้ (Ib918d, b/195353459) - API ภาพเคลื่อนไหวแบบใหม่สำหรับเครื่องมือสนับสนุน โดยเฉพาะอย่างยิ่ง อนุญาตให้เครื่องมือตรวจสอบภาพเคลื่อนไหว การกำหนดค่าใน การเปลี่ยนฉาก (I4116e)
เวอร์ชัน 1.1.0-alpha06
13 ตุลาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-alpha06
แล้ว เวอร์ชัน 1.1.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ
ExperimentalComposeUiApi
ออกจากViewRootForInspector
และLayoutInfo.ownerViewId
(I5c2e3) - เพิ่มโอเวอร์โหลดที่ไร้เด็กสำหรับ Layout แล้วโดยมีประสิทธิภาพดีขึ้น (Ib0d9a)
- นำ
InternalCompilerApi
ออกจากเมธอด Composer ที่ จำเป็นต้องเรียกข้ามโมดูล (I1aa0b) SemanticsNodeInteraction.performSemanticsAction
กลับมาแล้วSemanticsNodeInteraction
ที่มีการเรียกใช้ฟังก์ชัน (I9e5db)- เพิ่ม LocalInputModeManager CompositionLocal เพื่อตรวจหา TouchMode/NonTouchMode (I6a83c, b/175899786)
- เพิ่ม
viewConfiguration: ViewConfiguration
ไปที่LayoutInfo
เพื่อให้ผู้บริโภคได้รับค่าที่ถูกต้องสำหรับสิ่งต่างๆ เช่น การกดค้าง หมดเวลา (I76ca6)- เพิ่ม
viewConfiguration: ViewConfiguration
ไปที่InjectionScope
เพื่ออนุญาตให้การทดสอบปรับการแทรกอินพุตตาม เช่น การหมดเวลากดค้าง หรือการแตะ Slop - เปลี่ยนระยะเวลาเริ่มต้นของการกดค้างและการแตะสองครั้งสำหรับทั้ง 2 ส่วน
แตะและป้อนข้อมูลด้วยเมาส์
โดยอิงตามค่าใน
InjectionScope.viewConfiguration
- เพิ่ม
- การใช้งานเมนู ExposedDropdownMenu โดยอิงตาม ExposedDropdownMenuBox พร้อม TextField และ DropdownMenu ภายใน (If60b2)
- เพิ่ม cancelOnThirdClick ลงใน PopupProperties แล้ว โดยแทนที่ CancelOnClickแผน ที่เลิกใช้งานไปแล้ว พร็อพเพอร์ตี้ใหม่จะได้รับตำแหน่งการคลิกและขอบเขตของ Anchor ซึ่งช่วยให้ควบคุมได้ละเอียดยิ่งขึ้นว่าควรเรียกใช้ onCloseRequest หรือไม่ ตัวอย่างเช่น การยึดตำแหน่งนี้จะมีประโยชน์ในการป้องกันการปิดโฆษณา Anchor เมื่อมีการแตะโฆษณา Anchor
- เพิ่มupdateAndroidWindowManagerFlags ลงใน PopupProperties ซึ่งมีการควบคุมระดับต่ำสำหรับแฟล็กที่ป๊อปอัปส่งผ่านไปยัง Android WindowManager พารามิเตอร์ lambda จะเป็นแฟล็กที่คํานวณจากค่า PopupProperties ที่ส่งผลให้เกิดแฟล็ก WindowManager เช่น โฟกัสได้ ผลลัพธ์ของ lambda จะเป็นแฟล็กขั้นสุดท้ายซึ่งจะส่งไปยัง WindowManager ของ Android โดยค่าเริ่มต้น อัปเดต AndroidWindowManagerFlags จะคงการตั้งค่าแฟล็กที่คำนวณจากพารามิเตอร์ไว้ตามเดิม คุณควรใช้ API นี้อย่างระมัดระวังเฉพาะในกรณีที่ป๊อปอัปมีข้อกําหนดด้านการทํางานที่เฉพาะเจาะจงเท่านั้น (I6e9f9)
Recomposer.state
เลิกใช้งานแล้วและแทนที่ด้วยRecomposer.currentState
เพื่อเปลี่ยนประเภทเป็น StateFlow (Ic2ab3, b/197773820)- เพิ่ม
flush()
และdispose()
ในInjectionScope
แล้ว ใช้เลย เมื่อต้องการล้างเหตุการณ์ที่อยู่ในคิวทั้งหมดทันที และเมื่อ ต้องการกำจัดขอบเขตตามลำดับ (Ifb73a) - เพิ่ม
performScrollToNode(matcher: SemanticsMatcher)
แล้ว จะเลื่อนคอนเทนเนอร์ที่เลื่อนได้ไปยังเนื้อหาที่ตรงกับ ตัวจับคู่ที่กำหนด (Ic1cb8) - ตอนนี้
InjectionScope
ได้ใช้Density
แล้ว ซึ่งช่วยให้คุณ แปลงระหว่าง px และ dp ในperformTouchInput
และเพื่อนได้อย่างง่ายดาย (I8fe1f)
แก้ไขข้อบกพร่อง
- ขณะนี้ AndroidView เผยแพร่ LocalLifecycleOwner และ LocalRecordingStateRegistryOwner ไปยังข้อมูลพร็อพเพอร์ตี้ผ่าน ViewTreeLifecycleOwner และ ViewTreeSavedStateRegistryOwner (I38f96, b/179708470)
- แก้ปัญหาที่ WearOS ScrollToOffBox ไม่สามารถทำได้ในบางครั้ง (I9387e)
- เวลาเริ่มต้นระหว่างเหตุการณ์อินพุตที่แทรกคือ เปลี่ยนจาก 10 มิลลิวินาทีเป็น 16 มิลลิวินาที การดำเนินการนี้อาจเปลี่ยนแปลงผลการทดสอบ ที่ใช้ท่าทางสัมผัสการป้อนข้อมูล เช่น การปัดหน้าจอที่เจาะจง (I829fd)
เวอร์ชัน 1.1.0-alpha05
29 กันยายน 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-alpha05
แล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มการรองรับการสื่อสารระหว่างตัวแก้ไข (Id5467, b/198826874)
- เพิ่มตัวชี้ประวัติการใช้งานรุ่นทดลองลงใน PointerEventChange (Ic1fd8, b/197553056, b/199921305)
- เพิ่ม
density: Density
และlayoutDirection: LayoutDirection
ในLayoutInfo
แล้ว วิธีนี้ช่วยให้ผู้บริโภคของLayoutInfo
เพื่อตีความมิติข้อมูลและตำแหน่งที่แสดงในLayoutInfo
อย่างเหมาะสม (I002f1) - เพิ่มการรองรับการทดลองสำหรับการแทรกเหตุการณ์ของเมาส์ ใช้
performMouseInput
เพื่อเริ่มส่งเหตุการณ์เกี่ยวกับเมาส์หรือส่งเหตุการณ์เมาส์ ผ่านพร็อพเพอร์ตี้Mouse
ของMultiModalInjectionScope
ระหว่าง ท่าทางสัมผัสการป้อนข้อมูลแบบหลายโมดัลด้วยperformMultiModalInput
โปรดดูMouseInjectionScope
เพื่อดูเอกสารประกอบของ API ที่พร้อมใช้งาน (Iaa4a8, b/190493367)
แก้ไขข้อบกพร่อง
- แก้ไขการสนับสนุนการช่วยเหลือพิเศษสำหรับการเลื่อนได้ (ทั้งแบบ Lazy Loading และ ไม่ใช่แบบ Lazy Loading) สำหรับการเลื่อน (I6cdb0)
- ปรับปรุง
TouchInjectionScope.swipeWithVelocity
แล้ว เดี๋ยวนี้ ยอมรับตัวแปรอินพุตที่หลากหลายกว่า และจะแนะนำการเปลี่ยนแปลง หากไม่สามารถสร้างการปัดได้ (I40fbe, b/182477143)
เวอร์ชัน 1.1.0-alpha04
15 กันยายน 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-alpha04
แล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้
PointerEvent
มีPointerEventType
แล้ว เพื่อรองรับเหตุการณ์เมื่อวางเมาส์ (I091fa) - อนุญาตให้เด็กยอมรับอินพุตตัวชี้นอก ขอบเขตอินพุตของตัวชี้ระดับบนสุด ผู้ปกครองอาจขัดขวาง การเรียกด้วยพร็อพเพอร์ตี้ PointerInputScope.alwaysInterceptChildEvents (I9eae3, b/192479655)
- เลิกใช้งาน
performGesture
และGestureScope
ซึ่งมี ถูกแทนที่ด้วยperformTouchInput
และTouchInjectionScope
(Ia5f3f, b/190493367) - เพิ่ม
touchBoundsInRoot
ไปยังSemanticsNode
แล้ว มีขนาดเป้าหมายการสัมผัสขั้นต่ำเพื่อให้นักพัฒนาซอฟต์แวร์ ตรวจสอบได้ว่าเป้าหมายการสัมผัส เป็นไปตามข้อกำหนดขั้นต่ำสำหรับการช่วยเหลือพิเศษ (I2e14b, b/197751214) - ทำซ้ำการติดตั้งใช้งานที่ตรวจสอบได้ (I927bc, b/191017532)
- เปลี่ยนชื่อพารามิเตอร์ที่ตรวจสอบได้ให้ตรงกับการเขียน (I3a482, b/191017532)
แนะนำ
performTouchInput
และTouchInjectionScope
เป็น การแทนที่performTouchInput
และTouchInjectionScope
กำลังปูพื้น วิธีการอื่นๆ (เช่น เมาส์)TouchInjectionScope
มีวิธีเดียวกับGestureScope
โดยมีเมธอด ยกเว้นmovePointerTo
และmovePointerBy
เปลี่ยนชื่อเป็นupdatePointerTo
และupdatePointerBy
วิธีการอื่นๆ ทั้งหมด เช่นเดียวกันลักษณะการทำงานของ
TouchInjectionScope
แทบจะเหมือนกับGestureScope
พร้อมรายละเอียดเล็กๆ น้อยๆ 2 อย่างดังนี้- เมื่อส่งเหตุการณ์ที่ชี้ลงในขณะที่ตัวชี้ถูกย้ายโดยไม่มี
กำลังส่งเหตุการณ์การย้าย (กล่าวคือ
updatePointerTo()
ได้ ใช้ แต่ไม่ได้เรียกใช้move()
แล้วจะมีการเรียกdown()
) การติดตั้งใช้งานจะทำให้เวลาเหตุการณ์ล่วงหน้าไปก่อนและส่งเหตุการณ์การย้าย ก่อนส่งเหตุการณ์ดาวน์ การใช้งานใหม่ยังคงส่งฟิลด์ ย้ายกิจกรรม แต่ไม่เลื่อนเวลาของกิจกรรมใน สถานการณ์ - เมื่อส่งเหตุการณ์ขึ้นขณะที่เคอร์เซอร์มีการย้ายโดยไม่มี การส่งเหตุการณ์การย้าย (คล้ายกับด้านบน) การติดตั้งใช้งานก่อนหน้า จะเลื่อนเวลาของกิจกรรมและส่งเหตุการณ์ย้ายก่อนที่จะส่ง เหตุการณ์ Up การใช้งานใหม่นี้ไม่ส่งผลอะไรเลย ตำแหน่งใหม่ของ เคอร์เซอร์จะแสดงผ่านเหตุการณ์ "ขึ้น" เท่านั้น
สุดท้าย
TouchInjectionScope
แนะนำเมธอดใหม่currentPosition(pointerId: Int)
เพื่อรับตำแหน่งปัจจุบันของ ตัวชี้ที่ระบุ (If1191, b/190493367)- เมื่อส่งเหตุการณ์ที่ชี้ลงในขณะที่ตัวชี้ถูกย้ายโดยไม่มี
กำลังส่งเหตุการณ์การย้าย (กล่าวคือ
แก้ไขข้อบกพร่อง
- อนุญาตให้คลิปขยายขอบเขตเป้าหมายการสัมผัสให้กว้างกว่า ภูมิภาคของคลิปเพื่อวัตถุประสงค์ในการกำหนดเป้าหมายการสัมผัสขั้นต่ำ (I43e10, b/171509422)
- อุปกรณ์ Android 12 เพิ่มการรองรับการเลื่อนแบบยืดได้มากแล้ว (Iccf3c, b/171682480)
เวอร์ชัน 1.1.0-alpha03
1 กันยายน 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-alpha03
แล้ว เวอร์ชัน 1.1.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- อัปเดต Compose
1.1.0-alpha03
เพื่อใช้ Kotlin1.5.30
แล้ว (I74545)
การเปลี่ยนแปลง API
- เพิ่ม
Modifier.inspectable
สำหรับการรวมตัวแก้ไขอื่นๆ (I1909b, b/191017532) - เพิ่ม
BlurredEdgeTreatment
API แล้ว เบลอกรณีการใช้งานโดย การใช้ธงของคลิปที่ใช้กันโดยทั่วไป และ TileModes กรณีการใช้งานส่วนใหญ่เกี่ยวข้องกับ ไม่ว่าจะเป็นการปล่อยให้ การแสดงผลเนื้อหาที่เบลอ อยู่นอกขอบเขตของเนื้อหาต้นฉบับ และการเบลอพื้นที่ที่อยู่นอกขอบเขตเหล่านี้ มีเนื้อหาที่โปร่งใส ขอบเขตของเนื้อหา สุ่มตัวอย่างขอบที่ใกล้ที่สุด สำหรับเคอร์เนลเบลอที่อยู่เกินปริมาณเนื้อหา ขอบเขต (I6b4b7, b/166927547) - เพิ่มการรองรับ RenderEffect แล้ว ในการเขียนบนเดสก์ท็อป เปิดตัว OffsetEffect และ ตัวแก้ไขการเบลอเป็นวิธีง่ายๆ ในการ นำเสนอเอฟเฟกต์ภาพเบลอบางส่วน ของลำดับชั้นการเรียบเรียง (I0f6aa, b/166927547)
- เปิดตัว RenderEffect API
ซึ่งสามารถกำหนดค่าได้ใน
Modifier.graphicsLayer
ที่จะแก้ไข เนื้อหาของเลเยอร์นั้นๆ ช่วงเวลานี้ สามารถใช้เพื่อเบลอเนื้อหาของ Composable และ Composable ย่อยภายในการเรียบเรียง ลำดับชั้น (I47c4d, b/166927547) - ตอนนี้ AwaitPointerEventScope มี withระยะหมดเวลา() และ withระยะหมดเวลาOrNull() (I507f0, b/179239764, b/182397793)
- เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำลงใน ViewConfiguration แล้ว เพื่อใช้ในอรรถศาสตร์และการป้อนข้อมูลตัวชี้เพื่อการช่วยเหลือพิเศษ (Ie861C)
- เพิ่มการรองรับ TileMode.decal ซึ่งมีประโยชน์ ในการกำหนดขอบเขต ของ RenderEffect แบบเบลอ (I7e8ed, b/166927547)
performScrollToIndex
performScrollToKey
ตอนนี้hasScrollToIndexAction
และhasScrollToKeyAction
เป็น API ที่มีความเสถียรแล้ว (I142ae, b/178483889)- เพิ่มวิธีทดสอบเพื่อรับขอบเขตที่ตัดทอน (I6b28e)
แก้ไขข้อบกพร่อง
- นำเมธอด isBounded ออกแล้ว จาก BlurredEdgeTreatment โดยเป็นประโยชน์ คือการตรวจสอบว่ารูปร่าง เป็น Null (I85d68)
เวอร์ชัน 1.1.0-alpha02
18 สิงหาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-alpha02
แล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- PointerEvent มีรองรับการอ่านแล้ว สถานะปุ่มเมาส์และสถานะตัวปรับแต่งแป้นพิมพ์ (I6310c, b/180075467)
- ตอนนี้ท่าทางสัมผัสที่แทรกใช้เวลาของ MainTestClock
ซึ่งเป็นแหล่งข้อมูลที่เชื่อถือได้สำหรับเวลา เวลาปัจจุบันสำหรับกิจกรรมที่แทรกใน
performGesture
จะเริ่มต้นในเวลาปัจจุบันของ MainTestClock (Ifb364, b/192064452) - เพิ่มตัวสร้าง
DpRect(DpOffset, DpSize)
(I2cf16, b/194219828) - เพิ่มคลาส DpSize (I7abb1, b/194219828)
แก้ไขข้อบกพร่อง
- อัปเดต XML กราฟิกเวกเตอร์แล้ว การแยกวิเคราะห์เพื่อรองรับ ColorStateLists เป็น คุณสมบัติการแต้มสีรากใน VectorDrawables (I86915, b/195668138)
เวอร์ชัน 1.1.0-alpha01
4 สิงหาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.1.0-alpha01
แล้ว เวอร์ชัน 1.1.0-alpha01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้
RelocationRequester.bringIntoView
ยอมรับรูปสี่เหลี่ยมผืนผ้าเป็นพารามิเตอร์ซึ่งช่วยให้เรานำส่วนของ Composable มาไว้ในมุมมองได้ (Ice2c5, b/194330245) AnimatedImageVector
และ API ที่เกี่ยวข้องพร้อมใช้งานแล้วใน โมดูลandroidx.compose.animation:animation-graphics
(I60873)- เพิ่มตัวแก้ไขแบบทดลองเพื่อจัดการคำขอย้ายตำแหน่ง (I65a97, b/178211874)
เปิดตัว BrushPainter API เพื่อรองรับการวาดด้วยแปรงที่กำหนดเอง ภายใน Painter คล้ายกับ ColorPainter
อัปเดต Brush API ให้มีขนาดเฉพาะ พารามิเตอร์ที่ค้นหาภายใน BrushPainter (Ia2752, b/189466433)
อัปเดตเมธอด DrawScope#drawImage ที่ ใช้ Rett ต้นทางและปลายทาง เพื่อใช้ตัวเลือกFilterquality พารามิเตอร์ มีประโยชน์สำหรับ Pixel อาร์ตเวิร์กที่มีจุดประสงค์ให้เป็นพิกเซล เมื่อปรับขนาดขึ้นสำหรับอาร์ตเวิร์กที่ใช้พิกเซล อัปเดต BitmapPainter + รูปภาพ Composable แล้ว ในการใช้ตัวเลือกFilter Quality ด้วย (Ie4fb0, b/180311607)
เพิ่มเมธอด
GestureScope.advanceEventTime
แล้วเพื่อให้สิทธิ์มากขึ้น ควบคุมระยะเวลาของเหตุการณ์ในท่าทางสัมผัส (Ibf3e2)
แก้ไขข้อบกพร่อง
- เพื่อที่จะสนับสนุนเชน
ตัวปรับแต่งการวาด ตรวจสอบให้แน่ใจว่าการใช้ Modifier.paint
การเรียกเนื้อหา
ก่อนหน้านี้ Modifier.paint จะมีโหนด Leaf ใน
แต่ห่วงโซ่ของตัวปรับแต่ง การทำเช่นนี้ทำให้
ไม่กำหนดค่าในคอนเทนเนอร์ที่ประกอบกันได้ (เช่น Box)
หรือเพิ่มการตกแต่งเพิ่มเติมด้านบน เช่น
Modifier.paint().border()
ใช้ Modifier.paint เรียกDrawContent หลังจากวาดเนื้อหาของ จิตรกร เรามีพฤติกรรมที่สม่ำเสมอมากขึ้นในพฤติกรรม ด้วยรูปแบบตัวปรับแต่ง (Ibb2a7, b/178201337, b/186213275) - กล่องโต้ตอบจะทำงานตามลักษณะการทำงานของการปรับขนาดแพลตฟอร์ม ตั้งค่า
usePlatformDefaultWidth
เป็น "เท็จ" เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388) - ย้าย
InfiniteAnimationPolicy
ไปที่ :compose:ui (I5eb09, b/160602714) แล้ว - ตอนนี้การเลื่อนผ่านการดําเนินการทางอรรถศาสตร์สําหรับรายการแบบ Lazy และคอมโพเนนต์การเลื่อนปกติเป็นภาพเคลื่อนไหวแล้ว (Id9066, b/190742024)
รุ่น 1.0
เวอร์ชัน 1.0.5
3 พฤศจิกายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.5
แล้ว เวอร์ชัน 1.0.5 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขอินสแตนซ์ DerivedStateOf ในการติดตามข้อขัดข้อง (aosp/1792247)
เวอร์ชัน 1.0.4
13 ตุลาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.4
แล้ว เวอร์ชัน 1.0.4 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- อัปเดตเป็น Kotlin
1.5.31
แล้ว
เวอร์ชัน 1.0.3
29 กันยายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.3
แล้ว เวอร์ชัน 1.0.3 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- อัปเดตเป็น Kotlin
1.5.30
แล้ว
เวอร์ชัน 1.0.2
1 กันยายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.2
แล้ว เวอร์ชัน 1.0.2 มีคอมมิตเหล่านี้
อัปเดตเพื่อรองรับรุ่น Compose 1.0.2
เขียน 1.0.2
ยังคงใช้งานร่วมกับ Kotlin 1.5.21
ได้
เวอร์ชัน 1.0.1
4 สิงหาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.1
แล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- อัปเดตเพื่อใช้ Kotlin
1.5.21
แล้ว
เวอร์ชัน 1.0.0
28 กรกฎาคม 2021
ปล่อย androidx.compose.ui:ui-*: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 และ AGP7.1
เวอร์ชันถัดไป (b/194289155)
เวอร์ชัน 1.0.0-rc02
14 กรกฎาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-rc02
แล้ว เวอร์ชัน 1.0.0-rc02 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- กล่องโต้ตอบจะทำงานตามลักษณะการทำงานของการปรับขนาดแพลตฟอร์ม ตั้งค่า
usePlatformDefaultWidth
เป็น "เท็จ" เพื่อลบล้างลักษณะการทำงานนี้ (Iffaed, b/192682388)
เวอร์ชัน 1.0.0-rc01
1 กรกฎาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-rc01
แล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- แยกโมดูลการใช้เครื่องมือ UI เป็น
ui-tooling
และui-tooling-preview
(Iefa28, b/190649014)
การเปลี่ยนแปลง API
- นำ
FocusManager#moveFocusIn
และFocusManager#moveFocusOut
เวอร์ชันทดลองที่เลิกใช้งานแล้ว (I227d7, b/170154986, b/186567354, b/168510304) ออก - ตอนนี้ Canvas รองรับพารามิเตอร์ contentDescription สำหรับแล้ว การเข้าถึง (Ib547C)
useDefaultMaxWidth
ในPopupProperties
เปลี่ยนชื่อเป็นusePlatformDefaultWidth
แล้ว (I05710)- ตอนนี้กล่องโต้ตอบใช้ความกว้างของหน้าจอทั้งหมดได้แล้ว (I83929, b/190810877)
- เพิ่มการรองรับการทดลองสำหรับสี HSV และ HSL ตัวแทน (Id7cf8, b/180731008)
การเปลี่ยนแปลงลักษณะการทำงาน
- การเขียน
@Preview
จะมีLocalActivityResultRegistryOwner
ที่ช่วยให้คุณ เพื่อดูตัวอย่าง Composable ที่ใช้ API เช่นrememberLauncherForActivityResult()
ที่ขึ้นอยู่กับ กับเจ้าของที่มีอยู่ (Ib13d1, b/185693006) - การเขียน
@Preview
จะมีLocalOnBackPressedDispatcherOwner
ที่ช่วยให้คุณ เพื่อดูตัวอย่าง Composable ที่ใช้ API เช่นBackHandler
ซึ่งขึ้นอยู่กับเจ้าของที่มีอยู่ (Ia1c05, b/185693006)
แก้ไขข้อบกพร่อง
- ย้าย
InfiniteAnimationPolicy
ไปยังandroidx.compose.ui:ui
แล้ว (I5eb09, b/160602714) - AnimatedImageVector ถูกนำออกชั่วคราวเพื่อเปลี่ยนโครงสร้างโมดูล (I41906, b/160602714)
เวอร์ชัน 1.0.0-beta09
16 มิถุนายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta09
แล้ว เวอร์ชัน 1.0.0-beta09 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนบทบาท enum และ LiveRegionMode เป็นคลาสในบรรทัด พร้อมเครื่องมือสร้างส่วนตัว (Id1890)
- ระบบจะแปลง KeyboardCapitalization เป็นคลาสในบรรทัด (Id5a1c)
- เปลี่ยน HapticFeedbackType เป็นคลาสในบรรทัด (I255ec)
- Modifier.pointerInteropFilter คือ @ExperimentalComposeUiApi (Iede6c)
- TextAlign, FontSynthesis และ TextDirection แทรกในบรรทัดแล้ว ใหม่ (I212fe)
- TextOverflow จะเปลี่ยนเป็นคลาสในบรรทัด (I433af)
- FontStyle เป็นคลาสในบรรทัดแล้ว (I9e48b)
แก้ไขข้อบกพร่อง
- ปัจจุบันค่าคงที่หลักคือ @ExperimentalComposeUiApi การใช้งาน สามารถประกาศค่าคงที่ส่วนตัวก่อนระบบกันภาพสั่นได้ (Ia5d48)
- เขียนการทดสอบใน Robolectric ได้แล้ว ดังต่อไปนี้
เราตรวจพบข้อจำกัดต่อไปนี้
- ไม่มีบิตแมปแบบเนทีฟ ดังนั้น
ImageBitmap()
จึงนำไปยัง NullPointerException - ไม่มีภาพวาด ดังนั้น
captureToImage()
จะรอ บัตรผ่านช่วงการวาดถัดไป (เช่น การติดตาย) - ไม่ได้โหลดแบบอักษร ระบบจึงจะวัดข้อความไม่ถูกต้อง ทั้งหมด อักขระมีความสูงคงที่ประมาณ 20px และกว้าง 1px
ComposeTestRule.waitUntil {}
จะไม่เรียกใช้เทรดหลักขณะรอ ทำให้เทรดหลักมีประสิทธิภาพเหมือนกับComposeTestRule.mainClock.advanceTimeUntil {}
ทั้งนี้ คาดว่าจะมีการระบุข้อจำกัดเพิ่มเติมในอนาคต (I284fa)
- ไม่มีบิตแมปแบบเนทีฟ ดังนั้น
เพิ่มกฎโปรไฟล์
รุ่นนี้เพิ่มกฎโปรไฟล์ในโมดูลการเขียนต่อไปนี้ (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 เมื่อมีการสร้างแอปซึ่งรวมถึงอาร์ติแฟกต์เหล่านี้ ระบบจะรวมกฎเหล่านี้เข้าด้วยกันและใช้กฎรวมเพื่อสร้างโปรไฟล์ ART แบบไบนารีขนาดกะทัดรัดที่เจาะจงสำหรับแอปดังกล่าวโดยเฉพาะ จากนั้น ART จะสามารถใช้ประโยชน์จากโปรไฟล์นี้เมื่อติดตั้งแอปในอุปกรณ์เพื่อคอมไพล์ชุดย่อยที่เจาะจงของแอปพลิเคชันล่วงหน้าเพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน โดยเฉพาะการเรียกใช้ครั้งแรก โปรดทราบว่าการดำเนินการนี้จะไม่มีผลต่อแอปพลิเคชันที่แก้ไขข้อบกพร่องได้
เวอร์ชัน 1.0.0-beta08
2 มิถุนายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta08
แล้ว เวอร์ชัน 1.0.0-beta08 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- enum ของ
NestedScrollSource
จะถูกแทนที่ด้วยคลาสในบรรทัด (Ie321b, b/187055290) FocusManager.clearFocus(forcedClear = true)
เปลี่ยนชื่อเป็นFocusManager.clearFocus(force = true)
(Ia0c41)- เปลี่ยนโครงสร้างการใช้ enum เป็นคลาสในบรรทัดเพื่อหลีกเลี่ยง ที่เป็นปัญหาโดยละเอียดเมื่อข้อความแสดง เพิ่มค่า enum ใหม่ (I2b5eb)
- นำ
@ExperimentalComposeUiApi
ออกจากPopupProperties
(I01fa6) PointerType
เปลี่ยนจาก enum เป็นคลาสในบรรทัด (If5058)- พร็อพเพอร์ตี้คำอธิบายเนื้อหาและความหมายของข้อความไม่มีให้บริการแล้ว ค่าเดียวยกเว้นรายการ วิธีนี้จะทำให้สามารถรวมพร็อพเพอร์ตี้ตามที่เป็น ของการเชื่อมต่อกัน นอกจากนี้ยังมี API การทดสอบที่ดีกว่าเดิมเพื่อใช้ประโยชน์จากสิ่งเหล่านี้ การเปลี่ยนแปลง (Ica6bf, b/184825850)
Modifier.focusModifier()
เลิกใช้งานแล้วและแทนที่ด้วยModifier.focusTarget()
(I6c860)Modifier.onSizeChanged()
และModifier.onGloballyPositioned()
ไม่ใช่ฟังก์ชันในบรรทัดอีกต่อไป (I727f6, b/186109675)- enum ของ
KeyboardType
จะถูกแทนที่ด้วยคลาสในบรรทัด (I73045, b/187055290) - แทนที่ enum ของ
FocusState
ด้วยอินเทอร์เฟซFocusState
แล้ว (Iccc1a, b/187055290) - enum ของ ImeAction จะถูกแทนที่ด้วยคลาสในบรรทัด (I18be5, b/187055290)
PlaceholderVerticalAlign
แปลงเป็นคลาสในบรรทัด (If6290)- TextUnitType เป็นคลาสในบรรทัดแล้ว (I4cba9)
- ฟังก์ชัน
AnnotatedString.withAnnotation
รายการคือ เหลือเพียง ExperimentalTextApi แทน ExperimentalComposeApi (I0cd0a)- เครื่องมือสร้าง TextUnit ที่มี TextUnitType พร้อมใช้งานแล้ว ExperimentalTextApi แทน ExperimentalComposeApi
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่เริ่มใช้ใน Beta07 ที่รายการ LazyColumn/แถวแสดงขึ้นบางส่วนหลังจากการเลื่อน (I8c9ac, b/188566058)
- ตอนนี้
detectDragGesures
,detectVerticalGestures
และdetectHorizontalGestures
จะใช้การเปลี่ยนแปลงตำแหน่งโดยอัตโนมัติ โดยไม่จำเป็นต้องเรียก change.conssumPositionChange ใน onDrag callbacks (I42fc4, b/185096350, b/187320697) - LayoutModifiers ที่ระบุเส้นจัดตำแหน่งได้รับการแก้ไขแล้ว ข้อบกพร่องที่ทำให้ไม่สามารถวัดระดับบนสุดอีกครั้งเมื่อแก้ไขแนวการจัดแนวของบุตรหลานแล้ว (I4401f, b/174315652)
Modifier.onGloballyPositioned()
มีการเปลี่ยนแปลงเพื่อรายงานพิกัดของตัวแก้ไขนี้ในสายตัวปรับแต่ง ไม่ใช่พิกัดเลย์เอาต์หลังจากใช้ตัวปรับแต่งทั้งหมดแล้ว ซึ่งหมายความว่าตอนนี้ลำดับของตัวปรับส่งผลต่อพิกัดที่จะรายงาน (Ieb67d, b/177926591)
เวอร์ชัน 1.0.0-beta07
18 พฤษภาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta07
แล้ว เวอร์ชัน 1.0.0-beta07 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มอินเทอร์เฟซ
ViewRootForInspector
เพื่อใช้ในเครื่องมือตรวจสอบ (Ib70df) SubcomposeLayoutState
รองรับการตั้งค่าจำนวนสล็อตที่นำมาใช้ใหม่ได้แล้ว เลย์เอาต์จะทำงานตามสล็อตจำนวนนี้ต่อไป แทนที่จะทิ้งช่องเพื่อใช้ซ้ำเมื่อต้องการใช้งานช่องใหม่ในครั้งถัดไป (Ieb981)- enum ของ KeyEventType จะถูกแทนที่ด้วยคลาสในบรรทัด (Id670a, b/187055290)
- enum ของ
FocusDirection
จะถูกแทนที่ด้วยคลาสในบรรทัด (Ib6d03, b/187055290, b/184086802) - เพิ่มความสามารถในการยกสถานะ SubcomposeLayout ซึ่งจะช่วยให้คุณจัดองค์ประกอบเนื้อหาเป็น slotId ซึ่งจะทำให้การวัดครั้งถัดไปผ่านเร็วขึ้น เนื่องจากเมื่อเราพยายามเขียนย่อยด้วย slotId ครั้งต่อไปที่ไม่จำเป็นต้องจัดองค์ประกอบในครั้งหน้า (I42580, b/184940225)
- เพิ่มแฮนเดิลการเลือกคลิป (Iff80d, b/183408447)
- นำ API ที่ไม่ได้ใช้ซึ่งเกี่ยวข้องกับการรองรับ LayoutInspector ออกแล้ว (I2ac78)
แก้ไขข้อบกพร่อง
- ตอนนี้ LazyColumn/Row จะเก็บรายการที่มองเห็นได้ก่อนหน้านี้สูงสุด 2 รายการที่ใช้งานอยู่ (ไม่ทิ้ง) แม้จะเลื่อนออกแล้วก็ตาม วิธีนี้จะช่วยให้คอมโพเนนต์สามารถนำองค์ประกอบย่อยที่ใช้งานอยู่มาใช้ซ้ำเมื่อเราต้องสร้างรายการใหม่ ซึ่งช่วยปรับปรุงประสิทธิภาพการเลื่อน (Ie5555)
TextGeomerticTransform
และTextDecoration
ในวันที่AnnotatedString
จะมีผลตามที่ให้ไว้ (I61900, b/184760917)
เวอร์ชัน 1.0.0-beta06
5 พฤษภาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta06
แล้ว เวอร์ชัน 1.0.0-beta06 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขความขัดแย้งด้วยท่าทางสัมผัสการนำทาง (I1145e)
@ComposeCompilerApi
ไม่ใช่@RequiresOptIn
อีกต่อไป (Iab690)- เพิ่ม API การช่วยเหลือพิเศษ CollectionInfo และ CollectionItemInfo ซึ่งช่วยทำเครื่องหมายคอลเล็กชันและรายการสำหรับบริการช่วยเหลือพิเศษได้ (Id54ef, b/180479017)
- เพิ่ม
SemanticsActions.ScrollToIndex
เพื่อเลื่อนรายการที่มี รายการที่จัดทำดัชนีให้กับรายการที่มีดัชนีที่กำหนด และSemanticsProperties.IndexForKey
เพื่อรับดัชนีของรายการในรายการ กับรายการคีย์ การดำเนินการทั้ง 2 รายการมีการใช้งานโดย LazyList- เพิ่ม
SemanticsNodeInteraction.performScrollToIndex
แล้ว จะเลื่อนรายการไปยังดัชนีที่กำหนด และSemanticsNodeInteraction.performScrollToKey
ที่เลื่อนรายการไปยัง ด้วยคีย์ที่ระบุ (I4fe63, b/178483889, b/161584524)
- เพิ่ม
- เพิ่ม ownerViewId ลงใน GraphicLayerInfo (I19f62)
- เพิ่ม Font() มากเกินไปเพื่อโหลดแบบอักษร จากเนื้อหา File และ FileDescriptor (I5d382)
- เพิ่ม API การช่วยเหลือพิเศษ
error
ที่อนุญาตให้ทำเครื่องหมายโหนดที่มีอินพุตที่ไม่ถูกต้อง (I12997, b/180584804, b/182142737) - เพิ่ม
Font()
โอเวอร์โหลดเพื่อโหลดแบบอักษร จากเนื้อหา, File และ FileDescriptor (I43007) - AnnotatedString บันทึกการสนับสนุนไปยัง
TextFieldValue.Saver
เพิ่มเมื่อaddTtsAnnotation
และมีฟังก์ชันยูทิลิตีคำอธิบายประกอบเพื่อAnnotatedString.Builder
(I8cbdc, b/178446304) - เพิ่มฟังก์ชันตัวสร้าง TextUnit แล้ว
TextUnit(value: Float, type: TextUnitType)
(I7ecce, b/178446304)
เวอร์ชัน 1.0.0-beta05
21 เมษายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta05
แล้ว เวอร์ชัน 1.0.0-beta05 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
FocusManager.moveFocus(In)
และFocusManager.moveFocus(Out)
แบบทดลอง (Ic5534, b/183746743) - เพิ่ม API
performTextInputSelection
แบบทดลอง (I2dcbb, b/178510628) - อินเทอร์เฟซ
InputEventCallback
เลิกใช้งานแล้ว คุณไม่สามารถใช้อินเทอร์เฟซ API สาธารณะ และไม่มีการใช้งานโซลูชันนี้ใน โค้ด (I34a02, b/184003208) - เลิกใช้งาน
TextLayoutResult/createTextLayoutResult
เป็นฟังก์ชันสาธารณะที่ไม่มีการใช้งานซึ่งเพิ่มเข้ามา เพื่อการทดสอบ ฟังก์ชันนี้ไม่สามารถทำให้สิ่งใดใช้งานได้สำหรับ เขียน API แบบข้อความ ตอนนี้เราได้เลิกใช้งานฟังก์ชันนี้แล้ว และจะ ถูกนำออกในภายหลัง (I80413)
แก้ไขข้อบกพร่อง
- ราคาคงที่
ACTION_SCROLL_FORWARD
,ACTION_SCROLL_BACKWARD
accessibilityActionScrollLeft
accessibilityActionScrollUp
accessibilityActionScrollRight
และaccessibilityActionScrollDown
การดำเนินการเลื่อนสำหรับการช่วยเหลือพิเศษ แทนที่จะเลื่อนไปที่จุดสิ้นสุดของ ซึ่งจะเลื่อนได้ 1 หน้าจอตามทิศทางที่กำหนด (Ieccb0) - ไฟล์ AndroidManifest จาก ui-test-Manifest และ ui-tooling-data ใช้งานร่วมกับ Android 12 ได้แล้ว (I6f9de, b/184718994)
เวอร์ชัน 1.0.0-beta04
7 เมษายน 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta04
แล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดเปลี่ยนชื่อ
hideSoftwareKeyboard
และshowSoftwareKeyboard
SoftwareKeyboardController
ถึงhide()
และshow()
ตามลำดับ- จัดเตรียมอินเทอร์เฟซ CompositionLocal เต็มรูปแบบสำหรับ LocalSoftwareKeyboardController ให้คุณสามารถตั้งค่า (โดยเฉพาะอย่างยิ่ง มีประโยชน์ในการทดสอบ) (I579a6)
- เพิ่ม LiveRegion Accessibility API แล้ว หากมีการทำเครื่องหมายโหนดว่าเป็นภูมิภาคที่เผยแพร่อยู่ บริการการช่วยเหลือพิเศษ จะแจ้งเตือนผู้ใช้เกี่ยวกับการเปลี่ยนแปลงโดยอัตโนมัติ (Idcf6f, b/172590946)
- เปิดตัว TextOverflow.Visible (Ic8f89)
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาเมื่อรายการ
LazyColumn
/LazyRow
ที่อยู่บนขอบอยู่ในตำแหน่งที่ไม่ถูกต้องหลังจากการสะบัดอย่างรวดเร็ว (Ie4d13, b/183877420) AndroidViewBinding
นำออกอย่างถูกต้อง ส่วนย่อยพองตัวผ่านFragmentContainerView
เมื่อ นำAndroidViewBinding
ออกจากการเขียนแล้ว ลำดับชั้น (Ib0248, b/179915946)AndroidViewBinding
ซ้อนได้อย่างถูกต้องแล้ว ส่วนย่อยพองตัวผ่านFragmentContainerView
เมื่อComposeView
ของคุณอยู่ในFragment
กำลังแก้ไข ปัญหาในการบันทึกและคืนค่าสถานะของ ส่วนย่อย (I70eb0, b/179915946)- ตอนนี้ การเขียน ViewBinding จะขึ้นอยู่กับ
ส่วนย่อย
1.3.2
และตอนนี้จะแสดงส่วนย่อยที่พองขึ้นอย่างสม่ำเสมอด้วยFragmentContainerView
หลังจากการเปลี่ยนแปลงการกำหนดค่า (I0743d, b/179915946)
เวอร์ชัน 1.0.0-beta03
24 มีนาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta03
แล้ว เวอร์ชัน 1.0.0-beta03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การตรวจสอบ Defere ของ ViewTree ของ ComposeView (I8dbbf, b/182466548)
- เพิ่มพารามิเตอร์ที่ไม่บังคับ
startX
/endX
และstartY
/endY
พารามิเตอร์ ถึงswipeUp
/swipeDown
/swipeLeft
/swipeRight
ฟังก์ชันในGestureScope
(I49e2d, b/182063305)
เวอร์ชัน 1.0.0-beta02
10 มีนาคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta02
แล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มการเรียบเรียงเพลง
LocalSoftwareKeyboardController
ใหม่ในเครื่อง API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I5951e, b/168778053) - เพิ่มการเรียบเรียงเพลง
LocalSoftwareKeyboardController
ใหม่ในเครื่อง API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I84472, b/168778053) - นำ
SemanticsMatcher
ต่อไปนี้ออกแล้ว:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(If16bd)
- ทำเครื่องหมาย
SemanticsMatchers
ต่อไปนี้เป็น @ExampleTestApi:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(Ia600C)
- เพิ่ม
SemanticsMatcher
ต่อไปนี้แล้ว:hasWidth(width, tolerance)
hasHeight(height, tolerance)
hasLeftPosition(left, tolerance)
hasTopPosition(top, tolerance)
hasRightPosition(right, tolerance)
hasBottomPosition(bottom, tolerance)
(I2F502)
แก้ไขข้อบกพร่อง
- บังคับใช้ข้อจำกัดกับการใช้งาน API ทดลองแบบสาธารณะ (I6aa29, b/174531520)
androidx.compose.ui:ui
ไม่ได้ขึ้นอยู่กับ AppCompat หรือ Fragment อีกต่อไป หากคุณกำลังใช้ ComposeView ในแอปพลิเคชัน และใช้ Fragment และ/หรือ AppCompat โปรดตรวจสอบว่าคุณใช้ AppCompat 1.3+ / Fragment 1.3+ - เวอร์ชันเหล่านี้จำเป็นต้องใช้เพื่อตั้งค่าวงจรและเจ้าของสถานะที่บันทึกไว้อย่างถูกต้องสำหรับ ComposeView (I1d6fa, b/161814404)- แก้ไข
rememberSaveable { mutableStateOf(0) }
ที่เสียหายเมื่อใช้ในปลายทางของการเขียนการนำทาง (I1312b, b/180042685, b/180701630) - เพิ่มการเรียบเรียงเพลง
LocalSoftwareKeyboardController
ใหม่ในเครื่อง API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I658b6, b/168778053) - แก้ไข NoSuchElementException ที่พบไม่บ่อยใน
ComposeRootRegistry
tearDownRegistry()
(Iddce1)
เวอร์ชัน 1.0.0-beta01
24 กุมภาพันธ์ 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-beta01
แล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
นี่เป็นรุ่นแรกของ Compose 1.0.0 เบต้า
การเปลี่ยนแปลง API
- เพิ่ม onStart callback ไปยัง
detectDragGestures
แล้ว (I67269, b/179995594) - ตัวปรับแต่งสำหรับปรับขนาดให้พอดีกับภายในไม่ใช่เวอร์ชันทดลองอีกต่อไป (I15744)
- MeasureBlocks ได้เปลี่ยนชื่อเป็น MeasurePolicy ซึ่งกลายเป็นอินเทอร์เฟซสนุกๆ Layout API ได้รับการอัปเดต / ทำให้การใช้ MeasurePolicy ง่ายขึ้น (Icab48, b/167662468, b/156751158)
- แทนที่
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)
- ประเภทชื่อแทนที่แทนที่ด้วยประเภทที่สำคัญมีดังนี้
ColorStop
เปลี่ยนชื่อเป็นPair<Float, Color>
แล้วSpanStyleRange
เปลี่ยนเป็น "AnnotatedString.RangeParagraphStyleRange
เปลี่ยนชื่อเป็นAnnotatedString.Range<ParagraphStyle>
แล้วStringAnnotation
เปลี่ยนชื่อเป็นAnnotatedString.Range<String>
แล้ว- (I8dd1a)
- สร้าง TextInputSession ใหม่สำหรับเซสชันอินพุตจากคอมโพเนนต์ข้อความระดับต่ำ เช่น CoreTextField (I8817f, b/177662148)
- "วางได้" จะแสดงขนาดที่วัดแล้ว ซึ่งจะแสดงขนาดที่เลย์เอาต์ย่อยวัดได้จริง ขนาดนี้อาจไม่เป็นไปตามข้อจำกัดในการวัด (Ib2729, b/172560206, b/172338608)
- เพิ่มตัวเลือกการปรับแต่งกลุ่มที่ช่วยให้ทำเครื่องหมายชุดแท็บหรือปุ่มตัวเลือกเพื่อวัตถุประสงค์ในการช่วยเหลือพิเศษ (Ie5c29)
defaultFactory
สำหรับcompositionLocalOf
และ ตอนนี้คุณจำเป็นต้องใช้staticCompositionLocalOf
แทน ไม่บังคับการเปลี่ยนแปลงนี้จะนําข้อผิดพลาดประเภทที่อาจเป็นค่าว่างออก ประเภทที่ไม่ได้ระบุค่าเริ่มต้นจากโรงงาน ก่อนหน้านี้ จะให้การอ้างอิง Null สำหรับประเภทที่ไม่เป็นค่าว่าง
สำหรับประเภทที่เว้นว่างได้ ให้พิจารณาระบุ
{ null }
เป็นค่าเริ่มต้น โรงงานเราไม่แนะนำให้ใช้ท้องถิ่นที่มีประเภทที่ไม่มีค่าว่าง ยกเว้น สามารถระบุค่าเริ่มต้นที่เหมาะสมได้ หากไม่มีค่าเริ่มต้นที่เหมาะสม lambda
defaultFactory
ควรส่งข้อยกเว้น อย่างไรก็ตาม การส่งคำขอยกเว้นหมายความว่าผู้บริโภคในพื้นที่จะ การพึ่งพาโดยนัยที่ให้ไว้ซึ่งไม่ได้บังคับใช้ ตามระบบประเภท (Ifbd2a)นำวิธีการที่เลิกใช้งานออกจากโมดูล UI แล้ว (I646f6)
เปลี่ยนชื่อตัวปรับขนาดแล้ว เปลี่ยนชื่อ Modifier.width/height/size เป็น requiredWidth/requiredHeight/requiredSize แล้ว เปลี่ยนชื่อ Modifier.suggestedWidth/ใส่ความสูงของเนื้อหา/เลือกขนาดเป็นความกว้าง/ความสูง/ขนาด (I5B414)
นำ
Modifier.tapGestureFilter
ออกแล้ว โปรดใช้Modifier.pointerInput { detectTapGestures(...) }
แทน (I266ed, b/175294473)มีการนำการบริโภคบางส่วนออกจากระบบอินพุตตัวชี้ วิธีที่แนะนำในการประสานงานการใช้งานบางส่วนคือ Modifier.nestedscroll (Ie9c9b)
การวางแนวย้ายไปไว้ที่แพ็กเกจฐานแล้ว ย้าย VelocirtTracker จาก ui.gesture ไปยัง ui.input.pointer (Iff4a8, b/175294473)
imageResource และ vectorResource เปลี่ยนเป็นฟังก์ชันส่วนขยาย บนโฆษณาที่แสดงร่วม ImageBitmap และ ImageVector ตามลำดับ ลบฟังก์ชัน
load{Image,Vector,Font}Resource
รายการแล้ว (I89130)ย้ายข้อมูล AnimationClockObservable และคลาสย่อยแล้ว ลบแล้ว นำ AnimatedFloat ออกแล้ว (Icde52, b/177457083)
ผู้ให้บริการเปลี่ยนชื่อเป็น 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)
นำ
ComponentActivity.setContent()
ออกจาก Compose:ui แล้ว โปรดใช้ข้อมูลจากandroidx.activity:activity-compose:1.3.0-alpha01
นำviewModel()
และLocalViewModelStoreOwner
ออกจาก Compose:ui แล้ว ใช้เครื่องจากandroidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01
(I6f36b)Modifier.scrollable ที่ปรับปรุงใหม่ แต่ตอนนี้ระบบใช้อินเทอร์เฟซ Scrollable แทนคลาส ScrollableController (I4f5a5, b/174485541, b/175294473)
การรองรับที่กำหนดเองสำหรับ PointerInputModifier ถูกนำออกแล้ว (I02707, b/175294473)
SnapshotStateObserver ไม่ใช่เวอร์ชันทดลองอีกต่อไป (Id2e6a)
ลบ API ที่เลิกใช้งานก่อนหน้านี้บางรายการ (Ice5da, b/178633932)
นำ LongPressGestureFilter และ DoubleClickClicksFilter ออกแล้ว ใช้ Modifier.pointerInput กับฟังก์ชันตัวช่วย เช่นDetectTouchGestures (I2fedf, b/175294473)
นำ String.format API ออกแล้ว การใช้งานที่ปรับเปลี่ยนรูปแบบ เมธอด toString ที่จะไม่ใช้ String.format ภายใน (รหัส 1290)
นำการยืนยัน dp ออกแล้ว (I798d2)
นำ androidx.compose.runtime:runtime-dispatch (I55feb) ออกแล้ว
ขณะนี้การดำเนินการกับข้อความจะตรวจสอบโฟกัสโดยอัตโนมัติ (I13777, b/179648629)
นำ
runBlockingWithManualClock
ออก (I15cdc, b/179664814)ตำแหน่งการเลื่อนใน Modifier.verticalscroll()/ลิงก์แนวนอน() จะแสดงด้วย Ints ทันที (I81298)
ตอนนี้ FlingConfig ได้เปลี่ยนชื่อเป็น FlingBehavior จึงสามารถปรับแต่งภาพเคลื่อนไหวที่ระงับได้ โดยไม่ต้องการสลายตัวตามที่กำหนดไว้ (I02b86, b/175294473)
เพิ่มฟังก์ชันตัวช่วยที่เป็นประโยชน์สำหรับ ตั้งค่าการทำงานเดียวกันสำหรับ Callback ของ ImeAction ทั้งหมด (I63447, b/179226323)
นำ Callback SoftwareKeyboardController ออกจากข้อความทั้งหมดแล้ว ที่จะแทนที่ด้วย API ใหม่ในไม่ช้า (Iae869, b/168778053)
จะไม่ใช้และนำ FontSpan และ FontWeigthStyleSpan ออก (Ie5b56, b/177423444)
ทำการเปลี่ยนแปลง 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)
แก้ไขข้อบกพร่อง
- เพิ่ม API เพื่อใช้ทรัพยากร AnimatedVectorDrawable ในการเขียน ใช้
MotionVectorResource เพื่อโหลด
<animated-vector>
XML เป็น AnimatedImageVector และทำภาพเคลื่อนไหว กับ PainterFor (I8ea91) - เพิ่มองค์ประกอบ Local SoftwareKeyboardController ใหม่ในเครื่องแล้ว API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I658b6, b/168778053)
เวอร์ชัน 1.0.0-alpha12
10 กุมภาพันธ์ 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha12
แล้ว เวอร์ชัน 1.0.0-alpha12 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- การรองรับ ViewGroups ถูกนำออกจาก UiApplier แล้ว นำ Composable ของ emitView ที่เลิกใช้งานแล้วออก (Ifb214)
- ตอนนี้ Modifier.pointerInput ต้องใช้แป้นจดจำเพื่อระบุ เมื่อใดที่ Coroutine ตรวจจับอินพุตตัวชี้ควรรีสตาร์ทสำหรับ ทรัพยากร Dependency (I849cd)
- Compositionreference เปลี่ยนชื่อเป็น CompositionContext (I53fcb)
- ขอบเขตเปลี่ยนชื่อเป็น DpRect (I4b32a)
- การอัปเดตจากการทดสอบ: hasText() จะตรวจสอบทั้งอินพุตและข้อความป้ายกำกับ/คำแนะนำ/ตัวยึดตำแหน่งในช่องข้อความ (Iab803)
- ย้าย viewModel() ที่ Composable และ LocalViewModelStoreOwner ได้ไปยัง androidx.lifecycle.viewmodel.compose แล้ว คุณจะต้องเพิ่มทรัพยากร Dependency androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 แยกต่างหากเพื่อให้ใช้งานได้ (I7a374)
- อนุญาตการดำเนินการที่ไม่มีข้อมูลใน AccessibilityAction เปลี่ยนการดำเนินการ ป้ายกำกับใน AccessibilityAction และ CustomAccessibilityAction จาก ลำดับลำดับเป็นสตริง (I0dc82)
- เพื่อให้ชื่อตรงกันมากขึ้น แบบแผนกับ ImageBitmap และ ImageVector ImagePainter เปลี่ยนชื่อเป็น BitmapPainter แล้ว กับ VectorPainter แบบขนาน (Iba381, b/174565889)
- API การทดสอบสตริงย่อยที่ดีขึ้นซึ่งมีสตริงย่อยเป็นอาร์กิวเมนต์ (Icbe78) แล้ว
- เพิ่ม
Modifier.focusOrder()
ที่ ยอมรับ FocusRequester โดยไม่ระบุ คำสั่งโฟกัสแบบกำหนดเองสำหรับ lambda มีประโยชน์ เมื่อเราเพียงต้องระบุข้อมูลอ้างอิง แต่ไม่ใช่ลำดับโฟกัสที่กำหนดเองสำหรับ Composable (I4f52a, b/179180978) - ย้าย ComponentActivity.setContent ไปยัง androidx.activity.compose.setContent ใน androidx.activity:activity-compose โมดูล (Icf416)
- วิธีการทำลายโครงสร้างและ copy() ถูกนำออกจาก หลายชั้นเรียนที่แทบไม่ได้ใช้ (I26702, b/178659281)
- ย้ายป๊อปอัปไปยังแพลตฟอร์มที่เฉพาะเจาะจง AndroidPopupProperties ได้เปลี่ยนชื่อเป็น PopupProperties และได้ย้าย
isFocusable
ไปยังพารามิเตอร์focusable
ในPopupProperties
(Ieeea5) - ย้ายกล่องโต้ตอบไปใช้เฉพาะแพลตฟอร์มแล้ว เปลี่ยนชื่อ AndroidDialogProperties เป็น DialogProperties แล้ว (I4ef69, b/179138130)
- สร้าง LayoutNode ภายใน (I8a7b1, b/175103944)
- แทนที่ Constraints.enforce ด้วย Constraints.constrain (I8b8ea)
- เลิกใช้งานloadFontResource แล้ว โปรดใช้ fontResource แทน imageResource,LoadImageResource, vectorResource และloadVectorResource เลิกใช้งานแล้ว โปรดใช้ PainterResource แทน (I6B809)
- ด้วยเหตุผลด้านประสิทธิภาพ ตอนนี้ความหมายของ ScrollAxisRange lambdas จะแสดงค่า Float แทนค่า Float โดยตรง (If4a35, b/178657186)
- เพิ่มความหมายของ EditableText เพื่อทำเครื่องหมายอินพุตที่แก้ไขได้ของช่องข้อความสำหรับการช่วยเหลือพิเศษและวิธีการทดสอบที่เกี่ยวข้องเพื่อตรวจสอบความหมาย (I8e07a)
- สร้างภายใน OwnerLayer/OwnerScope/OwnerSnapshotObserver ภายใน (I4ffaf, b/175103944)
- toIntPx() เปลี่ยนชื่อเป็น roundToPx() (I9b7e4, b/173502290)
- IntBounds ได้เปลี่ยนชื่อเป็น IntRect และปรับปรุง API ให้ดีขึ้น (I1f6ff)
- Snapshot API ได้รับการอัปเดตให้สอดคล้องกับ หลักเกณฑ์ API และการซ่อนคลาสการใช้งานภายใน จาก API สาธารณะ (Id9e32)
- เพิ่มการขยายและยุบการดำเนินการด้านความหมาย เพิ่มเมื่อ ขยายและครึ่งขยายใน ModalBottomSheetState (Ib5064)
- เลิกใช้งาน Modifier.dragGestureFilter แล้ว โปรดใช้
Modifier.pointerInput { detectDragGestures (...)}
แทน หรือใช้ Modifier.draggable สำหรับการลากแกน 1 แกน (I0ba93, b/175294473) - เปลี่ยนชื่อแอมเบียนท์ให้ตรงกับแอมเบียนท์ -> การเปลี่ยนชื่อ CompositionLocal แอมเบียนท์เคยมีชื่อว่า AmbientFoo แต่ปัจจุบัน CompositionLocals เรียกว่า LocalFoo (I2d55d)
- ตอนนี้เราได้นำ BaseTextField ที่เลิกใช้งานแล้วออกแล้ว โปรดใช้ BasicTextField แทน (I71368)
- ย้ายรายการที่เลือกไปยังพื้นฐานแล้ว (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) - เพิ่มความหมายของรหัสผ่านสำหรับการช่วยเหลือพิเศษ (I231ce)
- เพิ่ม ProgressBarRangeInfo เพิ่ม ProgressBarRangeInfo เพื่อทําเครื่องหมายแถบความคืบหน้าแบบไม่ชัดเจนสําหรับการช่วยเหลือพิเศษ (I6fe05)
- เลิกใช้งานยูทิลิตี
emptyContent()
และ(@Composable () -> Unit).orEmpty()
แล้วเนื่องจากไม่มีผลกระทบหรือค่าด้านประสิทธิภาพในเชิงบวกอีกต่อไป (I0484d) snapshotFlow
และwithMutableSnapshot
ไม่ได้เป็นสมาชิกแล้ว ทดลอง (I6a45f)- ปิดเครื่องมือปรับแต่งได้แล้ว รีคอมโพสเซอร์แบบปิดจะ จัดองค์ประกอบใหม่ต่อจนกว่าโครูทีนเด็กการเรียบเรียงเพลงจะเสร็จสมบูรณ์ Recomposer.shutDown เปลี่ยนชื่อเพื่อตัดกับการปิด (Ib6d76)
- UiSavedStateRegistry เปลี่ยนชื่อเป็น SaveableStateRegistry ส่วน AmbientUiSavedStateRegistry ได้เปลี่ยนชื่อเป็น AmbientSaveableStateRegistry และได้ย้ายไปที่แพ็กเกจ androidx.compose.runtime.saveable (I30224)
- อาร์ติแฟกต์ androidx:compose:runtime:runtime-saved-instance-state เปลี่ยนชื่อเป็น androidx:compose:runtime:runtime-saveable (I6dcac) แล้ว
- มีการลบ API ที่เลิกใช้มานานจำนวนมากในแพ็กเกจ UI (I2f2dc)
- เลิกใช้งานอาร์ติแฟกต์ Compose:runtime-dispatch แล้ว ขณะนี้สามารถดู MonotonicFrameClock ได้ใน write:runtime และ ดู AndroidUiDispatcher ได้ในCompose:ui (Ib5c36)
- Outline.* คลาสจะไม่ใช่คลาสข้อมูลอีกต่อไป (I4879e, b/178001427)
- นำ
view.captureToImage()
ออกแล้วโดยไม่มีการเปลี่ยนแทน (I7fcd2) - เปิดตัว ColorMatrix API ที่ใช้ เพื่อแก้ไขค่า RGB ของเนื้อหาต้นฉบับ ปรับเปลี่ยน ColorFilter API ใหม่ให้เป็น ของอินเทอร์เฟซและจับคู่การติดตั้ง ของ PathEffect (Ica1e8)
- เพิ่มพารามิเตอร์LayoutDirection ใน createOutline ของรูปร่าง ฟีเจอร์นี้ช่วยให้สร้างรูปร่างที่รับรู้ทิศทางของเลย์เอาต์ได้ (I57c20, b/152756983)
- onImeActionActioned เลิกใช้งานแล้ว ใช้ KeyboardActions แทน (If0bbd, b/179071523)
- เริ่มใช้บริบทโครูทีน
InfiniteAnimationPolicy
แล้ว ที่จะนำไปใช้ในภาพเคลื่อนไหวที่ไม่จำกัด โดยค่าเริ่มต้น "ไม่" จะติดตั้งนโยบายแล้ว ยกเว้นเมื่อทำการทดสอบกับComposeTestRule
(I50ec4, b/151940543) - นำ canDrag ออกจาก Modifier.scrollable แล้ว (Id66e7, b/175294473)
- เปลี่ยนชื่อ LayoutCoordinates.parentCoordinates เป็น LayoutCoordinates.parentLayoutCoordinates พร็อพเพอร์ตี้ parentCoordinates พร็อพเพอร์ตี้ parentCoordinates จะมี LayoutCoordintes ของตัวปรับแต่งหลัก การดำเนินการนี้จะ ทำให้ Use Case ที่สมบูรณ์ยิ่งขึ้นสำหรับ onSizeChanged() และ onGloballyPositioned() (Idfbfd, b/177926591)
- เลิกใช้งาน "tapGestureFilter, DoubleTouchGestureFilter, lengthPressGestureFilter และ pressIndicaitonGestureFilter ) แล้ว ใช้ Modifier.clickable หรือ Modifier.pointerInput กับฟังก์ชัน preventTouchGestures แทน (I6baf9, b/175294473)
- นำ unregisterProvider ของ SaveableStateRegistry ออกแล้ว ในขณะนี้ เครื่องมือลงทะเบียนProvider() จะแสดงวัตถุ SaveableStateRegistry.Entry ที่คุณสามารถใช้เพื่อยกเลิกการลงทะเบียนได้ (Ic4274, b/178583739)
- RememberSavedInstanceState() เปลี่ยนชื่อเป็น RememberSaveable() และย้ายไปที่แพ็กเกจ androidx.compose.runtime.saveable แล้ว (I1366e, b/177338004)
- นำ CoreText และ CoreTextField ออกจาก API สาธารณะ
- นำ SelectionContainer โอเวอร์โหลดที่เลิกใช้งานแล้วออก
- (I99c19)
- การทดสอบที่ใช้ Compose ในลำดับชั้นที่ ตอนนี้การเพิ่ม/นำออกไปยัง WindowManager โดยตรงมีความเสถียรมากขึ้นแล้ว (Ie81ed, b/175765614)
- นำ Recomposer.current() ออกแล้ว [Abstract]ComposeView เลย จะใช้ค่าเริ่มต้นเป็น Recomposer ที่สร้างแบบ Lazy Loading เป็น Recomposer ที่มีขอบเขตเป็นหน้าต่าง ซึ่งขับเคลื่อนด้วย ViewTreeLifecycleOwner สำหรับหน้าต่าง การจัดองค์ประกอบใหม่และ หยุดภาพเคลื่อนไหวจาก withFrameNanos ไว้ชั่วคราวขณะ Lifecycle ของโฮสต์ จะหยุดลง (I38e11)
- ตอนนี้ Recomposer.runningRecomposers มีระบบ StateFlow ระดับโลก RecomposerInfo แบบอ่านอย่างเดียวสำหรับสังเกตสถานะการเรียบเรียงต่อเนื่องใน ขั้นตอน เลือกใช้ API นี้กับ Recomposer.current() ซึ่งตอนนี้คือ เลิกใช้งานแล้ว (If8ebe)
- โหมดประหยัด, listSaver(), MapSaver(), autoSaver ถูกย้ายจาก androidx.compose.runtime.savedinstancestate ไปยัง androidx.compose.runtime.saveable (I77fe6) แล้ว
- EditCommands ยอมรับ AnnotatedString อย่างไรก็ตาม การเปลี่ยนแปลงเฉพาะ API และการแก้ไขข้อความแบบหลายสไตล์ไม่ใช่ มีการใช้งานแล้ว (I4c3ea)
- นำระยะเวลาทำงานและระยะเวลาออกแล้ว (Ib9bf4, b/177420019)
- ย้าย CompositionData.asTree() และ API ที่เกี่ยวข้องแล้ว เพื่อแยกโมดูล ui-tooling-data และทำเครื่องหมายว่าเป็นการทดลอง (Ic95b8)
- พารามิเตอร์ใน RounderCornerShape, CutCornerShape และ CornerBasedShape ถูกเปลี่ยนชื่อจากซ้าย/ขวาไปยังจุดเริ่มต้น/สิ้นสุดเพื่อรองรับการมิเรอร์อัตโนมัติของรูปร่างในทิศทาง RTL เราได้เริ่มใช้ AbsoluteRounderCornerShape และ AbsoluteCutCornerShape สำหรับกรณีที่ไม่ต้องการให้มิเรอร์อัตโนมัติ (I61040, b/152756983)
API เป้าหมายของปลั๊กอินคอมไพเลอร์ Compose ได้รับการปรับโครงสร้างภายในโค้ดใหม่ เพื่อใช้อินเทอร์เฟซแทน ที่แน่นอนได้ง่าย อินเทอร์เฟซก็ไม่ใช้งาน พารามิเตอร์ประเภท
นี่เป็นการเปลี่ยนแปลงภายในที่ไม่ควรมีผลกับแหล่งที่มา สามารถใช้งานร่วมกันของโค้ดได้ แต่เป็นการเปลี่ยนแปลงการขัดข้องแบบไบนารี (I3b922, b/169406779)
นำฟังก์ชัน StringBuilder.deleteAt สาธารณะออกโดยไม่ตั้งใจ (Id6ed9)
แก้ไขข้อบกพร่อง
- ComposeViews ในลำดับชั้นการแสดงผลซึ่งเป็นรายการย่อยของ ตอนนี้การเรียบเรียงเพลงอีกรายการหนึ่งมีบทประพันธ์เพลงที่เป็นลูกของบรรพบุรุษ (I92883)
- อัปเดต imageFromResource ของการเขียนแล้ว API เพื่อใช้แคชที่ถอนออกได้ของทรัพยากรซ้ำ เมื่อโหลดออบเจ็กต์ ImageBitmap (If3627, b/178751994)
เวอร์ชัน 1.0.0-alpha11
28 มกราคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha11
แล้ว เวอร์ชัน 1.0.0-alpha11 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- โดยWithConstraints ได้รับการปรับปรุงใหม่เป็น BoxWithConstraints และย้ายไปยัง Foundation.layout (I9420b, b/173387208)
- Key.DPadUp เลิกใช้งานแล้ว โปรดใช้ Key.DirectionUp แทน (Iab335, b/177954892)
- อินเทอร์เฟซของเจ้าของนับจากนี้เป็นต้นไป (If8e35)
- เพิ่ม FocusManager.moveFocus() API เพื่อย้ายโฟกัสแบบเป็นโปรแกรม (I045cb, b/177681839)
- เปลี่ยน PopupPositionProvider เพื่อใช้พิกัดที่สัมพันธ์กับหน้าต่าง ไม่ใช่พิกัดทั่วโลก เปลี่ยนชื่อ parentGlobalBounds เป็น anchorBounds และเปลี่ยน windowGlobalBounds เป็น windowSize: IntSize (I2994a)
- ระบบจะแทนที่ระยะเวลาและระยะเวลาทำงานด้วยมิลลิวินาทีที่ใช้เวลานาน และขั้นตอนนี้จะนำการอ้างอิงอินพุตของตัวชี้เหล่านั้นออก ใหม่ (Ia33b2, b/175142755, b/177420019)
- เพิ่ม AmbientSavedStateRegistryOwner ของช่องที่คล้ายกับ AmbientLifecycleOwner และ AmbientViewModelStoreOwner (I9a3e8, b/176756365) ที่มีอยู่แล้ว
- อัปเดตกราฟิกเวกเตอร์แล้ว API ที่รองรับการแยกวิเคราะห์ของการแต้มสี ใช้กับรากของกราฟิกเวกเตอร์ (Id9d53, b/177210509)
- เพิ่ม ToolType ใน PointerInputChange เพื่อแยกความแตกต่างของอุปกรณ์ (Iac787, b/175142755)
- AmbientWindowManager เปลี่ยนชื่อเป็น AmbientWindowInfo (I2686a, b/177084714, b/177084983)
- เลิกใช้งานวิธีการพิกัดโลกและ "สร้าง" วิธีการพิกัดใหม่ตามหน้าต่าง (Iee284)
- เพิ่ม Modifier.toolingGraphicsLayer ซึ่งเพิ่มตัวปรับแต่งเลเยอร์กราฟิกเมื่อเปิดการตรวจสอบ (I315df)
- ตอนนี้ FocusRequester.createRefs มีการทำเครื่องหมายเป็นทดลองเนื่องจากอาจมีการเปลี่ยนแปลง (I2d898, b/177000821)
- SemanticsPropertyReceiver.hidden เปลี่ยนชื่อเป็น invisibleToUser และมีการทำเครื่องหมาย @ExperimentalComposeUiApi เปลี่ยนชื่อ AccessibilityRangeInfo เป็น ProgressBarRangeInfo StateDescriptionRange เปลี่ยนชื่อเป็นprogressBarRangeInfo AccessibilitySlideState เปลี่ยนชื่อเป็น ScrollAxisRange LandscapeAccessibilitySlideState ได้รับการเปลี่ยนชื่อเป็น LandscapescrollAxisRange verticalAccessibilitySlideState เปลี่ยนชื่อเป็น verticalscrollAxisRange (รหัส 3148)
- นำ PointerInputData ออกและ PointerInputChange ที่แก้ไขแล้ว เพื่อระบุฟิลด์ทั้งหมดของ PointerInputData สร้างเหตุการณ์ป้อนข้อมูลตัวชี้ และ PointerInputEventData ภายในเนื่องจากไม่ได้ใช้ใน API สาธารณะทั้งหมด (Ifff97, b/175142755)
- ใช้งาน GraphicsLayerScope ที่อัปเดตแล้ว ความหนาแน่นเพื่อรองรับการแปลง dp เป็น พิกเซลดิบ (Ied528, b/176819695)
- อัปเดต Matrix API ให้ติดตามแถวแล้ว การจัดลำดับหลักและระบุค่าคงที่ของดัชนี เพื่อช่วยให้เกิด Conversion ระหว่าง การแทนเมทริกซ์เพื่อให้ตรงกับเฟรมเวิร์ก ตรรกะ Conversion ระหว่าง SkMatrix และ Matrix4 เป็นการภายใน (I432e6)
- นำเมธอด monotonicFrameAnimationClockOf แบบทดลอง (Ib753f, b/170708374) ออกแล้ว
- ย้าย String.fintPrecedingBreak และ String.fingfollowingBreak ไปยัง InternalTextApi (I657c4)
- นำ androidx.compose.ui.util.isSurrogatePair ออกจาก API สาธารณะแล้ว (Ia9494)
- เปลี่ยนชื่อ TransformedText.transformedText เป็น TransformedText.text แล้ว
- TransformText ไม่ใช่คลาสข้อมูลอีกต่อไป (Ie672a)
- นำ
data class
ออกจากชั้นเรียนต่อไปนี้แล้ว:- เนื้อหาข้อความในบรรทัด
- LocaleList (I605c7)
- คลาสต่อไปนี้ไม่ใช่คลาสข้อมูลแล้ว
- สตริงคำอธิบายประกอบ
- แบบย่อหน้า
- สไตล์ Span
- รูปแบบข้อความ
- น้ำหนักแบบอักษร
- การตกแต่งข้อความ
- เปลี่ยนรูปแบบเรขาคณิตของข้อความ
- ดัชนีข้อความ
- ผลลัพธ์ของเลย์เอาต์ข้อความ
- อินพุต TextLayout (Iaff99)
- เปลี่ยน VisualTransformation ให้เป็นอินเทอร์เฟซที่ใช้งานได้ (I3bba4)
- เพิ่มประเภทพารามิเตอร์อ้างอิงฟังก์ชัน (I5e1bd)
- เพิ่มขอบเขตที่เปลี่ยนรูปแบบไปยัง InspectorNode (Ice42f)
แก้ไขข้อบกพร่อง
- เราเลิกใช้งาน onCommit, onDispose และ onActive แล้วเพื่อเปลี่ยนไปใช้ SideEffect และ DisposableEffect API (If760e) แทน
การเปลี่ยนแปลงฟังก์ชันเริ่มต้นสำหรับแบบอักษร/FontFamily/แบบอักษร
- เพิ่มฟังก์ชันจากโรงงานที่เริ่มต้นด้วยตัวพิมพ์ใหญ่
- เลิกใช้งานฟังก์ชันจากโรงงานก่อนหน้าที่มีตัวพิมพ์เล็ก อักษรตัวแรก
- ฟังก์ชันใหม่เป็นค่าเริ่มต้นจะแสดง FontFamily แทนที่จะเป็น คลาสย่อย
- ซ่อนตัวสร้างของคลาสย่อยเพื่อให้คุณสามารถ จะสร้างขึ้นผ่านฟังก์ชันจากโรงงานเท่านั้น
- เปลี่ยนชื่อ Font.asFontFamily เป็น Font.toFontFamily (I42aa7) แล้ว
เปิดตัว
ComposeContentTestRule
ซึ่งครอบคลุมถึงComposeTestRule
และกำหนดsetContent
ซึ่งถูกนำออกจากComposeTestRule
เพิ่มเมธอดจากโรงงานcreateEmptyComposeRule()
แล้ว ที่แสดงComposeTestRule
และไม่เรียกใช้กิจกรรมสำหรับ ให้ทำงานแทนคุณ ใช้ตัวเลือกนี้เมื่อคุณต้องการเปิด "กิจกรรม" ระหว่างการทดสอบ เช่น กำลังใช้ActivityScenario.launch
(I9d782, b/174472899)animateAsState เปลี่ยนเป็น animateFooAsState โดย Foo คือ ประเภทของตัวแปรที่เคลื่อนไหวได้ เช่น Float, Dp, ออฟเซ็ต ฯลฯ (Ie7e25)
เพิ่มพารามิเตอร์คำอธิบายเนื้อหาลงในรูปภาพและไอคอนแล้ว โดยใช้เพื่อให้คำอธิบายเกี่ยวกับบริการการช่วยเหลือพิเศษ (I2ac4c)
นำ displaySize ออกตามที่ควรหลีกเลี่ยง โดยปกติจะเป็น ควรใช้ขนาดของ onRoot() หรือขนาดหน้าต่างเป็นอย่างน้อย (I62db4)
OnSizeChanged รายงานขนาดของเค้าโครง เนื้อหา นอกจากนี้ยังรายงานขนาดที่ตำแหน่งภายใน สายตัวปรับแต่ง (I36b78, b/177562900)
emit() API และโอเวอร์โหลดทั้งหมดเลิกใช้งานแล้วและเปลี่ยนชื่อเป็น ComposeNode API นี้เหมือนกัน เพียงแต่เป็นคนละชื่อเพื่อเป็นไปตามรูปแบบการตั้งชื่อของ Compose (I4137b)
TextFieldValue ยอมรับ AnnotatedString อย่างไรก็ตาม การเปลี่ยนแปลงเฉพาะ API และการแก้ไขข้อความแบบหลายสไตล์ไม่ใช่ มีการใช้งานแล้ว
- นำ
initial
ออกจากพารามิเตอร์ตัวสร้าง EditBuffer (I326d5)
- นำ
"โมฆะ" และ "ComCompositionReference()" จะถูกเลิกใช้งานเพื่อใช้ CurrentRecomposeScope และ RememberComCompositionReference ตามลำดับ (I583a8)
AnnotatedString มีการเปลี่ยนแปลงเพื่อขยายจาก kotlin.CharSequence ดังนั้น ความยาวและลำดับย่อยจึงกลายเป็นฟังก์ชันอินสแตนซ์ และฟังก์ชันของส่วนขยายจะถูกนำออก (Iaf429)
RememberObserver แทนที่ CompositionLifecycleObserver และ CompositionLifecycleObserver เลิกใช้งานแล้ว
RememberObserver
มาแทนที่CompositionLifecycleObserver
อรรถศาสตร์ที่ดัดแปลงและ ที่เปลี่ยนชื่อแล้ว การเปลี่ยนไปใช้ API ใหม่สามารถทำได้โดยกลไก สำหรับออบเจ็กต์ที่ถูกจดจำเพียงครั้งเดียว ซึ่งก็คือ แนวทางปฏิบัติที่แนะนำ อย่างไรก็ตาม หากข้อมูลอ้างอิง ถูกจดจำมากกว่า 1 ครั้งในการเรียบเรียงเพลงonRemembered
สำหรับการอ้างอิงแต่ละรายการที่มีการเรียกonEnter
เพียงครั้งเดียวonEnter
ถูกเรียกหลายครั้ง หากใช้อ็อบเจกต์ในองค์ประกอบย่อย เช่นWithConstraints
และScaffold
ที่สร้างซิงเกิล การรับประกันการโทรของonEnter
ไม่น่าเชื่อถือและถูกนำออกสำหรับRememberObserver
RememberObserver
จะเพิ่มonAbandoned
ซึ่งจะถูกเรียกหากฟิลด์ ส่งคืนอินสแตนซ์RememberObserver
รายการจาก Callback ที่ผ่านแล้ว ถึงremember
แต่ระบบจำไม่ได้ในสถานะการเรียบเรียง ดังนั้นจึงจะไม่มีการเรียกใช้onRemembered
เลย วิธีนี้ เกิดขึ้นเมื่อข้อยกเว้นสิ้นสุดการเรียบเรียงก่อนเสร็จสิ้นหรือ การแต่งเพลงถูกยกเลิกเนื่องจากสถานะกำลังสร้าง การแต่งเพลงสำหรับ ไม่เป็นปัจจุบันหรือไม่ได้เป็นอีกต่อไปแล้ว ที่จำเป็น ถ้าอินสแตนซ์ของRememberObserver
ต่อจากซิงเกิล คำแนะนำข้อมูลอ้างอิงด้านบนกำลังติดตามทรัพยากรภายนอก ทั้งonForgotten
และonAbandoned
ต่างก็ระบุว่า ไม่จำเป็นต้องใช้ทรัพยากรอีกแล้ว หากออบเจ็กต์กำลังติดตามงาน เริ่มต้นหรือทรัพยากรที่จัดสรรในonRemembered
,onAbandoned
สามารถเพิกเฉยได้ เนื่องจากจะไม่เรียกใช้หากonRemembered
คือ โทรออก (I02c36)เลิกใช้งานการดำเนินการทางคณิตศาสตร์ระหว่าง TextUnit 2 หน่วยขึ้นไป ฟังก์ชัน TextUnit.Sp และ TextUnit.Em ที่เลิกใช้งานแล้วที่ชอบใช้กับฟังก์ชันของส่วนขยาย เช่น Int.sp และ Int.em (I48369)
ทรัพยากรในไลบรารีที่ไม่มีทรัพยากรสาธารณะที่ประกาศอย่างชัดเจน (เช่น ผ่าน public.xml) จะเป็นแบบส่วนตัวโดยค่าเริ่มต้น (Ia1dcc, b/170882230)
เลิกใช้งาน 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)โปรดใช้ ImeAction.None แทน ImeAction.NoAction
- โปรดใช้ ImeAction.Default แทน ImeAction.Unidentifier (Ie1bcc)
ใช้ประโยชน์จาก TestCoroutineDispatcher ในการทดสอบ (I532b6)
เปลี่ยนชื่อ TextInputService.onStateUpdated เป็น updateState (Id4853)
เลิกใช้งานการเปลี่ยนที่ใช้ TransitionDefinition แล้ว (I0ac57)
นำ TextUnitType.Inherit ออกแล้ว โปรดใช้ TextUnitType.Unidentifier แทน (I9ff64)
เวอร์ชัน 1.0.0-alpha10
13 มกราคม 2021
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha10
แล้ว เวอร์ชัน 1.0.0-alpha10 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ
การปรับโครงสร้างคอมไพเลอร์ภายใน API อนุญาตให้ทำการเปลี่ยนแปลงเป็นกลุ่มกับโหนดที่สร้าง อันเป็นผลมาจากองค์ประกอบลงใน "ใช้การเปลี่ยนแปลง" ระยะการเรียบเรียง หลังจากฟังก์ชันทั้งหมด
@Composable
รายการ เสร็จสมบูรณ์นี่เป็นการละเมิดด้านพฤติกรรม การเปลี่ยนแปลงที่อาจส่งผลกระทบต่อโค้ดของแอปพลิเคชัน ไม่สามารถใช้โหนดจากภายใน และ API ทดลองจนกว่าการเปลี่ยนแปลงจะเสร็จสิ้น ใช้แล้ว โดยทั่วไปแล้ว ปัญหานี้จะทำได้โดย รอบโค้ดที่มีการอ้างอิงดังกล่าวใน
SideEffect
Composable เพื่อเลื่อนการดำเนินการของ จนกว่าจะมีการสร้างโหนดขึ้นและ ได้เริ่มต้นแล้ว (I018da)
การเปลี่ยนแปลง API
- เพิ่ม Modifier.focusOrder() ซึ่งใช้เพื่อระบุลำดับการส่งผ่านโฟกัสแบบกำหนดเอง (I90cf5, b/175899543, b/170155556, b/170155429)
- นำFocusObserver ที่เลิกใช้งานแล้วออก onFocusChanged หรือ onFocusEvent แทน (I3ecb9, b/175156387)
- การเปลี่ยนแปลง EditOperations API
- เปลี่ยนชื่อ EditOperation เป็น EditCommand
- เพิ่มคำต่อท้ายคำสั่งสำหรับการติดตั้งใช้งานอย่างเป็นรูปธรรมของ EditOperation
- EditCommand ไม่ใช่คลาสข้อมูลอีกต่อไป
- เปลี่ยนชื่อฟังก์ชัน EditOperation.process เป็น ApplyTo แล้ว
- เปลี่ยนชื่อ InputEventListener เป็น InputEventCallback แล้ว
- (I0a366)
- นำ PxSquared, PxCubed, PxInverse ที่ไม่ได้ใช้ออก เปลี่ยน Size.center() เป็นพร็อพเพอร์ตี้แล้ว (I973f7)
- ตอนนี้โมดูลการทดสอบ UI สามารถกำหนดค่าการสร้าง เครื่องมือกำหนด UI ที่อยู่ระหว่างการทดสอบ (Ibebd8)
- อัตราความเร็วที่ปรับแล้วให้มีชิ้นส่วนประกอบและการคำนวณทางคณิตศาสตร์ การดำเนินงาน (Ib0447)
- เปลี่ยนชื่อ
@ExperimentalTesting
เป็น@ExperimentalTestApi
เป็น สอดคล้องกับคำอธิบายประกอบ API ทดลองที่คล้ายกัน (Ia4502, b/171464963) - เปลี่ยนชื่อ Color.useOrElse() เป็น Color.takeOrElse() (Ifdcf5)
- นำคลาส DpInverse, DpSquared และ DpCubed ที่ไม่ได้ใช้ออก (I4d62b)
- เปลี่ยนชื่อ Constraints#sจะเปลี่ยนโดย เป็น isSPricingBy (I9cf5c)
- เพิ่ม Callback เพื่อแจ้งเจ้าของเมื่อขอบเขตของโหนดเลย์เอาต์เปลี่ยนแปลง (I72fd1)
- เพิ่ม isSpecified, isUnidentifier และ useOrElse สำหรับ คลาสในบรรทัดที่มีค่าคงที่ที่ไม่ระบุ (I93f7b, b/174310811)
ขยาย [Abstract]ComposeView API เพื่ออนุญาตให้มีการรีไซเคิล มุมมองจากการเขียน นำการเรียบเรียงออกเพื่อสร้างใหม่อีกครั้ง ในภายหลัง เพิ่ม API สำหรับการติดตั้งและค้นหาเครื่องมือปรับแต่งขอบเขตหน้าต่าง และ CompositionReferences สำหรับสร้างการเรียบเรียงย่อย
เพิ่ม ViewCompositionStrategy สำหรับการกำหนดค่าการกำจัดองค์ประกอบ กลยุทธ์ของ [Abstract]ComposeViews มีการกำจัดลักษณะการทำงานเริ่มต้น ให้ถอดหน้าต่างออก (I860ab)
นำ Any.identityHashCode() สาธารณะออก API (I025d7) แล้ว
นำ toStringAsFixed ออกแล้ว API ที่ต้องการใช้ String.format โดยตรงแทน (Iaba6b)
เพิ่มปุ่มสลับไปยัง Strings.kt พื้นฐาน (I4a5b7, b/172366489)
ย้าย NativeClass ไปยัง โมดูล UI และทำให้เป็นโมดูลภายใน อัปเดตการใช้งาน NativeClass ใน เท่ากับการติดตั้งใช้งาน "is MyClass" แทน (I4f734)
เลิกใช้งาน Modifier.Focus() และ Modifier.focusRequester() แล้ว โปรดใช้ Modifier.focusModifier() และ Modifier.FocusReference() แทน (I75a48, b/175160751, b/175160532, b/175077829)
เปิดตัว SelectionRegistrar.notifySelectableChange เพื่อแจ้งการอัปเดต Selectable ใน SelectionManager (I6ff30, b/173215242)
เปิดตัว Outline.bounds พร็อพเพอร์ตี้เพื่อรับเส้นตรงขอบเขต สำหรับการใช้งาน Outline ในแบบต่างๆ (I16e74, b/175093504)
TestUiDispatcher เลิกใช้งานแล้ว ใช้ Dispatchers.Main แทน (Ic171f, b/175385255)
ImeOptions และ KeyboardOptions ไม่ใช่คลาสข้อมูลอีกต่อไป (I3c898, b/168684531)
การเปลี่ยนแปลง VisualTransformation API
- เปลี่ยนชื่อ OffsetMap เป็น OffsetMapping แล้ว
- เปลี่ยนชื่อ OffsetMapping.identityOffsetMap เป็น OffsetMapping.Identity แล้ว
- PasswordTransformation ไม่ใช่คลาสข้อมูลอีกต่อไป
- ย้าย OffsetMapping ไปยังไฟล์ของตัวเอง
- (I0bdf3)
เปลี่ยนชื่อ Position เป็น DpOffset และนำ getDistance() (Ib2dfd) ออกแล้ว
เปลี่ยน Dp.isFinite() เป็น val Dp.isFinite (I50e00)
แก้ไขข้อบกพร่อง
- ตอนนี้เครื่องมือปรับแต่งจะแสดงโฟลว์ของสถานะปัจจุบัน ซึ่งช่วยให้ ติดตามกิจกรรมและกิจกรรมของผลกระทบที่เกี่ยวข้อง (Ifb2b9)
- ตอนนี้คุณจะเข้าถึง keyEvent แบบเนทีฟได้ผ่าน keyEvent.nativeKeyEvent (I87c57, b/173086397)
- ตอนนี้แทนที่
animate()
ด้วยanimateAsState()
แล้ว ซึ่งแสดงผลเป็นState<T>
แทนT
วิธีนี้ทำให้ ประสิทธิภาพสูงสุด เนื่องจากสามารถจำกัดขอบเขตการใช้งานไม่ได้ให้แคบลงได้ ตรงตำแหน่งที่มีการอ่านค่า State (Ib179e) - เพิ่ม API บทบาทความหมาย และเพิ่มบทบาทเป็นพารามิเตอร์ใน SemanticsModifier ที่คลิกได้ เลือกได้ และสลับได้ เปลี่ยนแปลงแล้ว Modifier.progressSemantics เพื่อให้ Slider ใช้งานได้ (I216cd)
- API ใหม่ที่อิงตาม Coroutine
Animatable
เพื่อให้มั่นใจว่าไม่มีการแบ่งแยก ท่ามกลางภาพเคลื่อนไหว- DecayAnimationSpec ใหม่เพื่อรองรับภาพเคลื่อนไหวลดลงหลายมิติ
- (I820f2, b/168014930)
เวอร์ชัน 1.0.0-alpha09
16 ธันวาคม 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha09
แล้ว เวอร์ชัน 1.0.0-alpha09 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- KeyEvent.Alt ที่เลิกใช้งานแล้วถูกนำออกแล้ว ใช้ KeyEvent.isAltPressed แทน (Idd695)
- เลิกใช้งาน Modifier.keyInputFilter และ Modifier.previewKeyInputFilter กับ Modifier.onKeyEvent และ Modifier.onPreviewKeyEvent แทน (Idbf1b, b/175156384)
- Modifier. นั่นคือObserver เลิกใช้งานแล้ว ใช้ Modifier.onFocusChanged หรือ Modifier.onFocusEvent แทน (I30f17, b/168511863, b/168511484)
- สำหรับการระงับ API อินพุตตัวชี้ เปลี่ยนชื่อ HandlePointerInputScope กับ AwaitPointerEventScope และ ManagePointerInput() ไปยัง awaitPointerEventScope() (Idf0a1, b/175142755)
- ขณะนี้ API ป้อนข้อความอัตโนมัติเป็น API ที่อยู่ระหว่างการทดลองและต้องมีการเลือกใช้ (I0a1ec)
- การเพิ่มการประกาศการยกเลิกโครงสร้างเพื่อสร้างอินสแตนซ์ FocuSRequester (I35d84, b/174817008)
- ได้เปลี่ยนชื่อ AccessibilityLabel เป็น contentDescription AccessibilityValue เปลี่ยนชื่อเป็น statusDescription แล้ว (I250f2)
- นำเหตุการณ์ที่กำหนดเองออกจาก API การป้อนตัวชี้การระงับ (Ia54d5, b/175142755) แล้ว
- ได้เปิดตัวฟังก์ชันใหม่หลายอย่างใน SelectionRegistrar รวมถึงเปลี่ยนชื่อ onPositionChange เป็นแจ้งให้ทราบPositionChange (Ifbaf7)
- สมาชิกจำนวนมากขึ้นของ LayoutNode ที่เราทำเครื่องหมายว่าเป็นภายใน (I443c6)
- มีการนำเสนอ LayoutInfo ให้นำมาใช้โดยการใช้เครื่องมือและการทดสอบ (I9b190)
- AndroidOwner สร้างภายใน (Ibcad0, b/170296980)
- นำคำอธิบายประกอบ ExperimentalPointerInput ออกแล้ว (Ia7a24)
- เพิ่มระบบการเลื่อนที่ซ้อนกันแล้ว ดูรายละเอียดเพิ่มเติมได้ที่ Modifier.nestedscroll สำหรับรายละเอียดเพิ่มเติม (I36e15, b/162408885)
- subcomposeInto(LayoutNode) ได้รับการสร้างขึ้นภายใน (Id724a)
มีการเปลี่ยนแปลงอินเทอร์เฟซของ
Applier
เพื่อลดความซับซ้อน สร้างต้นไม้จากล่างขึ้นบนแทนที่จะสร้างจากด้านบนเมธอด
insert()
เปลี่ยนชื่อเป็นinsertTopDown()
แล้วเพิ่มเมธอด
insertBottomUp()
ใหม่แล้วแอปพลิเคชันจะแทรกโหนดลงในแผนผังที่กำลังแก้ไข โดยใช้
insertTopDown()
หรือinsertBottomUp()
ขึ้นอยู่กับ ซึ่งทำงานได้ดีกว่าต้นไม้บางต้น เช่น
LayoutNode
และView
จะมีขนาดใหญ่กว่า มีประสิทธิภาพในการสร้างจากล่างขึ้นบน มากกว่าจากด้านบนลงล่าง ก่อนการเปลี่ยนแปลงนี้ ต้องมีกลุ่มของส่วนแทรกในการใช้งานจากล่างขึ้นบน จำเป็นต้องคัดลอกไปยังเครื่องมือทั้งหมดที่ต้องขึ้นไปด้านล่าง ที่ช่วยเพิ่มประสิทธิภาพ การเปลี่ยนแปลงนี้จะทำให้Applier
ลบล้างinsertBottomUp()
เพื่อสร้างแผนผังต้นไม้และinsertTopDown()
เพื่อสร้างแผนผังต้นไม้ (Icbdc2)เพิ่มพร็อพเพอร์ตี้ cancelOnBackPress และ pressOnClickExternal ใน AndroidDialogProperties ตัวเลือกเหล่านี้ช่วยให้กำหนดค่าได้เมื่อมีการเรียกใช้ onCancelRequest lambda ของกล่องโต้ตอบ (If5e17)
เพิ่ม API ของ PainterResource แล้ว เพื่อจัดการกับการโหลดวัตถุ Painter ที่ไม่สม่ำเสมอ จากรูปแบบชิ้นงานแรสเตอร์ (เช่น PNG) หรือ VectorDrawables ผู้บริโภคไม่มี เพื่อระบุประเภทของเนื้อหาล่วงหน้า และสามารถเรียกใช้เมธอดนี้เพื่อรับออบเจ็กต์ Painter เพื่อใช้ใน Image Composables หรือ Painters (I2c703, b/173818471)
เพิ่ม Modifier.clearAndSetSemantics เพื่อล้างองค์ประกอบสืบทอด และตั้งความหมายของคำใหม่ (I277ca)
ย้าย ContentDrawScope ไปยังกราฟิก UI แล้ว กับ DrawScope (Iee043, b/173832789)
เปิดตัว API กราฟิก PathEffect เพื่อสร้างรูปแบบต่างๆ ของรูปร่างที่วาดด้วยเส้นโครงร่าง เลิกใช้งาน NativePathEffect แล้ว ของการคาดการณ์/การนำ PathEffect มาใช้จริง (I5e976, b/171072166)
เพิ่มอินเทอร์เฟซ IdlingResource ใน Compose เป็น Compose ทรัพยากรที่ไม่มีการใช้งานของ Espresso ในรูปแบบที่รองรับ พวกเขาสามารถลงทะเบียนได้ และไม่ได้ลงทะเบียนผ่าน ComposeTestRule (I433f3)
นำการลงทะเบียน ComposeIdlingResource ทั่วโลกและ (ยกเลิก) ออกแล้ว การลงทะเบียน (ยกเลิกการลงทะเบียน) ของนาฬิกาไปยัง ComposeIdlingResource (I32660) ทั่วโลก
แก้ไขข้อบกพร่อง
- ตอนนี้ Lambda ในตัวแก้ไขออฟเซ็ตจะแสดงผล IntOffset แทนที่จะเป็น Float (Ic9ee5, b/174137212, b/174146755)
นำ SlotTable, SlotReader และ ออกแล้ว SlotWriter จาก API สาธารณะ โดยทำเครื่องหมายเป็น InternalComposeAPI ไว้ก่อนหน้านี้ แต่เป็นการใช้งานภายใน ไปยังโมดูลการเขียน
เพิ่ม CompositionData และ CompositionGroup เป็น การแทนที่ ui-tooling API เพื่อใช้ในการดึงข้อมูล ข้อมูลการเรียบเรียง รายการเหล่านี้เป็นแบบสาธารณะแต่ไม่ใช่ ใช้สำหรับภายนอก UI-tooling API เนื่องจากมี ข้อมูลดิบที่ API ของเครื่องมือ UI ตีความ (I31a9c)
เปลี่ยนตัวแปร ShaderBrush เป็น สร้างอินสแตนซ์ตัวปรับแสงเงาเมื่อ ข้อมูลของขนาดภาพวาด ที่มีอยู่ วิธีนี้มีประโยชน์ในการกำหนดการไล่ระดับสีที่ อยู่ในขอบเขตการวาดของ Composable ในเวลาเขียน โดยไม่ต้อง ติดตั้งใช้งาน DrawModifier ที่กำหนดเอง
API ตัวสร้างฟังก์ชันการไล่ระดับสีที่เลิกใช้งานแล้ว ในวิธีจากโรงงานกับวัตถุการไล่ระดับสี (I511fc, b/173066799)
เลิกใช้งาน LazyColumnFor, LazyRowFor, LazyColumnForIndexed และ LazyRowForIndexed ใช้ LazyColumn และ LazyRow แทน (I5b48c)
BuildCompat.isAtLeastR (Idb37e) ที่เลิกใช้งานแล้ว
เพิ่มฟังก์ชันค่าเริ่มต้น createAnnotatedString ในลำดับ เพื่อสร้าง AnnotatedString สตริงที่มีคำอธิบายประกอบที่เลิกใช้งานแล้ว เครื่องมือสร้างขึ้นมา (Idfe0b)
นำวิธีการของส่วนขยายออกแล้ว ใน Float และ Double เพื่อแปลงค่า เป็นเรเดียน ย้ายไปเป็นฟังก์ชันส่วนตัวแล้ว ภายใน PathParser ที่มีการใช้งาน ซึ่งเป็นที่เดียวที่มีการใช้งาน (I25f52)
เวอร์ชัน 1.0.0-alpha08
2 ธันวาคม 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha08
แล้ว เวอร์ชัน 1.0.0-alpha08 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ปิดการดำเนินการเพิ่มความหมาย (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)
- มีการเพิ่มเมธอดใหม่ Placeable.placeWithLayer() และ Placeable.placeRelativeWithLayer() ซึ่งช่วยให้ใช้เลย์เอาต์ที่กำหนดเองและตัวปรับแต่งเลย์เอาต์เพื่อวางตำแหน่งเด็กด้วยการแนะนำเลเยอร์กราฟิกสำหรับการวาดภาพได้ เพราะเราจะเพิ่มประสิทธิภาพการวาดซ้ำได้ก่อน ดังนั้นเมื่อต้องการย้ายเด็ก เราจึงไม่ต้องวาดเนื้อหาซ้ำ วิธีที่ 2 คือเราสามารถใช้การเปลี่ยนรูปแบบการวาดสำหรับเด็กได้ (Ibd8f6, b/170296989, b/171493718, b/173030831)
- นํา
<T>
ออกจากการประกาศ SubcomposeLayout คุณสามารถใช้โดยไม่ต้องระบุประเภทได้เลย (Ib60c8) - เพิ่ม Modifier.scale/rotate แล้ว
API ช่วยอำนวยความสะดวกสำหรับ DrawLayer
- เปลี่ยนชื่อ
Modifier.drawOpacity
เป็นModifier.alpha
แล้ว - เปลี่ยนชื่อ
Modifier.drawShadow
เป็นModifier.shadow
(I264ca, b/173208140) แล้ว
- เปลี่ยนชื่อ
- สร้างระยะเวลาทำงานของ PointerInputData และ ฟิลด์ตำแหน่งต้องไม่เป็นค่าว่าง (Id468a)
- ตอนนี้ MaterialTheme จะตั้งค่าสีที่ถูกต้องสำหรับแฮนเดิลการเลือกและพื้นหลังของการเลือก แอปที่ไม่ใช่ Material สามารถใช้ AmbientTextSelectionColors เพื่อปรับแต่งสีที่ใช้ในการเลือกได้ (I1e6f4, b/139320372, b/139320907)
- เพิ่ม WindowManager.isWindowFocused เพื่อตรวจสอบว่าหน้าต่างโฮสต์อยู่ในโฟกัสหรือไม่ และ WindowFocusObserver ที่แสดง Callback onWindowFocusChanged (I53b2a, b/170932874)
- อัปเดต TransformOrigin API แล้ว
มีไวยากรณ์ที่ทำลายโครงสร้างแล้วให้แสดงผล
pivotFractionX
และpivotFractionY
เป็นcomponent1
และcomponent2
(If43c4, b/173586560) - เพิ่มการตรวจสอบ Lint สำหรับการตั้งชื่อและตำแหน่งของพารามิเตอร์ lambda ที่ประกอบกันได้ เพื่อตรวจสอบความสอดคล้องของหลักเกณฑ์การเขียน
รวมทั้งย้ายข้อมูล API บางรายการโดยใช้
children
เป็นชื่อสำหรับ lambda ต่อท้ายcontent
ตามการตรวจสอบ Lint และคำแนะนำ (Iec48e) - เพิ่ม API เพื่อตรวจสอบว่ามีการกดแป้น Alt, Ctrl, Meta หรือ Shift ในตัวเมื่อมีการส่งเหตุการณ์คีย์ (I50ed9)
- เพิ่ม
Modifier.drawLayer()
โอเวอร์โหลดใหม่แล้ว ซึ่งจะนำบล็อก lambda ใน GraphicsLayerScope ใหม่ที่คุณกำหนดพารามิเตอร์เลเยอร์ในลักษณะที่ทำให้ข้ามการจัดองค์ประกอบใหม่และรีเลย์เอาท์เมื่อมีการเปลี่ยนสถานะได้ ขณะนี้ DrawLayerModifier เป็นระบบภายในเพื่อเตรียมพร้อมที่จะย้ายข้อมูลตรรกะเข้าสู่เมธอด Placeable.placeWithLayer() ของ LayoutModifier (I15e9f, b/173030831) - แอมเบียนท์ที่เลิกใช้งานซึ่งตั้งชื่อด้วย
Ambient
เป็นคำต่อท้าย และแทนที่ด้วยพร็อพเพอร์ตี้ใหม่ที่ขึ้นต้นด้วย "แอมเบียนท์" ตามหลักเกณฑ์อื่นๆ ของแอมเบียนท์และ Compose API (I33440) - ย้าย
androidx.compose.ui.text.Typeface
ไปที่androidx.compose.ui.text.font.Typeface
(Ic2b81) - เปลี่ยนชื่ออาร์กิวเมนต์ "MergeAllDescendants" แล้วเป็น MergeDescendants (Ib6250)
- ตัวตรวจจับท่าทางสัมผัสการลากแบบใหม่ที่ระงับเคอร์เซอร์ API ของอินพุต รวมถึงการล็อกการวางแนว (Icef25)
- เปลี่ยนชื่อ VectorAsset เป็น ImageVector แล้ว ย้ายและเปลี่ยนชื่อ VectorAsset เป็น Builder เป็นคลาสภายในของ ImageVector ตาม หลักเกณฑ์ API เพิ่ม typealias ของ VectorAssetBuilder แล้ว ลิงก์ไปยัง ImageVector.Builder สำหรับความเข้ากันได้ (Icfdc8)
- เปลี่ยนชื่อ ImageAsset และ เมธอดที่เกี่ยวข้องกับ ImageBitmap (Ia2d99)
- เพิ่มพารามิเตอร์ zIndex สำหรับ PlaceScope() เพื่อให้ Modifier.zIndex() ทำงานเป็น LayoutModifier และเลย์เอาต์ที่กําหนดเองจะสามารถตั้งค่า zIndex สําหรับรายการย่อยในการบล็อกตำแหน่ง (I711f7, b/171493718)
- ย้ายคุณสมบัติพื้นฐานทางอรรถศาสตร์เป็น UI (I6f05c) แล้ว
- สถานที่ที่เลิกใช้งาน(ออฟเซ็ต) และ PlaceRelative(ออฟเซ็ต) ใช้โอเวอร์โหลดที่มีออฟเซ็ต Int แทน (I4c5e7)
- ก่อนหน้านี้มีการนำ API ที่เลิกใช้งานออก: นำ Modifier.onPositioned ออก โปรดใช้ Modifier.onGloballyPositioned Modifier.onDraw ถูกนำออกแล้ว ให้ใช้ Modifier.onDrawBehind นำ Modifier.plus ออกแล้ว โปรดใช้ Modifier นำ Color.Unset ออกแล้ว โปรดใช้ Color.Unidentifier นำคลาส PxBounds ออกแล้ว โปรดใช้ Rect แทน (Ie9d02, b/172562222)
- อัปเดตอินเทอร์เฟซการปรับแนวและทำให้ใช้งานได้แล้ว (I46a07, b/172311734)
- ตัวตรวจจับท่าทางสัมผัสสำหรับการแตะ แตะสองครั้ง กดค้าง และสัญลักษณ์การกดถูกเพิ่มโดยใช้ตัวชี้การระงับใหม่ อินพุต มีการเพิ่มยูทิลิตีบางอย่างด้วย ซึ่งทำให้ง่ายขึ้น ให้นักพัฒนาซอฟต์แวร์เขียนตัวตรวจจับท่าทางสัมผัสของตนเอง (I00807)
id
เปลี่ยนชื่อเป็นlayoutId
สำหรับLayoutIdParentData
แล้ว เปลี่ยนชื่อMeasurable.id
เป็นMeasurable.layoutId
แล้ว (Iadbcb, b/172449643)- ตัวตรวจจับท่าทางสัมผัสแบบมัลติทัชแบบใหม่ ได้แก่ ในการตรวจหาการหมุน การซูม และการเลื่อน (Ic459d)
- เปิดตัว SweepGradientShader และ SweepGradientBrush API (Ia22c1)
- การควบคุมเวลาในการทดสอบ (TestAnimationClock และการใช้งาน) คือ อยู่ในขั้นทดลอง (I6ef86, b/171378521)
เพิ่ม API การเลื่อนที่ใช้โครูทีน:
เพิ่ม LazyListState.snapToItem และ LazyListState.smoothscrollBy รวมถึงระดับต่ำลง API สำหรับการควบคุมการเลื่อน API เหล่านี้มีอินเทอร์เฟซการระงับเพื่อควบคุมการเลื่อน ที่รอจนการเลื่อนเสร็จสิ้นจึงค่อยกลับมา (Ie5642)
ต้องเพิ่ม Modifier.focusable ในพื้นฐาน ใช้ฟีเจอร์นี้เพื่อเพิ่มลักษณะการทำงานที่โฟกัสได้ลงในคอมโพเนนต์ โดยใช้ความหมายและการช่วยเหลือพิเศษที่ถูกต้อง (I41eb9, b/152525426, b/162865824)
ระบุการติดตั้งใช้งานเริ่มต้นของวิธีการและพร็อพเพอร์ตี้ใน AnimationClockTestRule ที่สามารถมอบสิทธิ์ให้กับ
clock
ได้ (I7ea3d, b/173399709)ตอนนี้ AndroidComposeTestRule สามารถยอมรับกิจกรรมที่กำหนดเองแล้ว Launcher (Ib8288, b/153623653, b/154135019)
เลิกใช้งาน TextLayoutผลลัพธ์.getLineVisibleEnd แล้ว ตอนนี้ TextLayoutResult.getLineEnd ที่มาแทนที่จะมีพารามิเตอร์ใหม่ที่มองเห็นได้ (I73282)
API TextFieldValue ที่อัปเดต
- ทำให้ TextFieldValue.composition เป็นแบบอ่านอย่างเดียว
- มีการส่งข้อยกเว้นออกสำหรับช่วงการเลือกที่ไม่ถูกต้อง (I4a675, b/172239032)
สนับสนุน TTAnnotation สำหรับเครื่องมือการแปลงข้อความเป็นเสียงพูด (I54cc6)
API ใหม่สำหรับการเรียกใช้ภาพเคลื่อนไหวในโครูทีน (Ied662)
แก้ไขข้อบกพร่อง
- พารามิเตอร์การจัดแนวของ Box เปลี่ยนชื่อเป็น contentAlignment แล้ว (I2c957)
- เปลี่ยนชื่อตัวปรับแต่งออฟเซ็ตPx เป็นออฟเซ็ต ตอนนี้จะใช้พารามิเตอร์ lambda แทน State แล้ว (Ic3021, b/173594846)
- เพิ่มพารามิเตอร์resetInput ลงใน TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
- เพิ่มการตรวจสอบ Lint สำหรับพารามิเตอร์ตัวปรับแต่งในฟังก์ชัน Composable การตรวจสอบ Lint นี้จะตรวจสอบการตั้งชื่อ ประเภทการแสดงผล ค่าเริ่มต้น และลำดับของพารามิเตอร์เพื่อให้สอดคล้องกับหลักเกณฑ์การเขียน (If493b)
- เพิ่มตัวเลือกชั่วคราวเพื่ออนุญาตให้ TestAnimationClock ขับเคลื่อนโดย MonotonicFrameClock (I1403b, b/173402197)
- เพิ่ม Wrapper ของแบบอักษร Android แล้ว คุณสามารถโหลด Android
แบบตัวพิมพ์ผ่านฟังก์ชัน
typeface
เช่นtypeface(Typeface.DEFAULT)
และเปลี่ยนชื่อtypefaceFromFontFamily()
เป็นtypeface()
(I52ab7) ด้วย - เพิ่มการตรวจสอบ Lint เพื่อดูว่าฟังก์ชันจากโรงงานของ Modifier ถือเป็นส่วนขยายใน Modifier เพื่อให้เชื่อมต่อกันได้อย่างคล่องแคล่ว (I07981)
- นำโมดูลการทดสอบ UI เก่าและสตับของโมดูลออก (I3a7cb)
- Recomposer ไม่ยอมรับ EmbeddingContext อีกต่อไป ต้องระบุ ทรัพยากร Dependency ของกำหนดการจะดึงมาจาก EffectCoroutineContext เลิกใช้งาน FrameManager แล้ว การผสานรวมแพลตฟอร์มควรเริ่มต้น การจัดการสแนปชอตทั่วโลกของตนเอง (I02369)
- ส่งข้อมูลรูปแบบไปยังโหนดการช่วยเหลือพิเศษ (If5e8d)
- TextUnit.Inherit เปลี่ยนชื่อเป็น TextUnit ไม่ระบุเพื่อให้สอดคล้องกับหน่วยอื่นๆ (กรณีที่ 19)
Compose UI เวอร์ชัน 1.0.0-alpha07
11 พฤศจิกายน 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha07
แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดตัว ScaleFactor
คลาสแบบอินไลน์เพื่อแสดงสัดส่วน
ปัจจัยสำหรับแนวนอนและแนวตั้ง
แกนที่เป็นอิสระจากกันตามลำดับ
เพื่อรองรับ Use Case ของการปรับขนาดที่ไม่ใช่แบบเดียวกัน
- เพิ่มเมธอด computeScaleFactor ไปยัง สเกลเนื้อหา
- เพิ่ม ContentScale.FillBounds เพื่อดำเนินการ การปรับขนาดไม่เป็นแบบเดียวกันเพื่อยืด src ขอบเขตเพื่อให้ครอบคลุมปลายทางทั้งหมด
- เพิ่มเมธอดโอเปอเรเตอร์ที่จะประมวลผลแล้ว พารามิเตอร์ ScaleFactor ที่มีพารามิเตอร์ขนาด
- (Ic96a6, b/172291582)
- มีการเพิ่มโรงงาน BiasAlignment และ BiasAbsoluteAlignment สำหรับการสร้างการจัดแนว (Iac836, b/169406772)
- อนุญาตให้นักพัฒนาซอฟต์แวร์บังคับล้างโฟกัส (I90372)
- แก้ไขข้อบกพร่องที่ทำให้ไม่มีการวาดระดับความสูงเพื่อดูภายในการเขียนแล้ว (If7782)
- สร้าง onDrawBehind API ภายใน ContentDrawScope ให้ตรงกับรูปแบบการตั้งชื่อกับ Modifier.drawBehind (I4fc3a, b/171955269)
- เพิ่มการรองรับระยะห่างของกล้อง เพื่อเสริมการแปลง 3 มิติ การหมุนเวียนX/rotationY บน API ของเลเยอร์ (I40213, b/171492100)
- เพิ่ม SelectionContainer โดยไม่มี Callback (Ibfadb) แล้ว
- ลบคำอธิบายประกอบ ExperimentalSubcomposeLayoutApi แล้ว ตอนนี้สามารถใช้ SubcomposeLayout ได้โดยไม่ต้องเพิ่ม @OptIn (I708ad)
- FirstBaseline และ LastBaseline ย้ายไปยังแพ็กเกจ androidx.compose.ui.layout (Ied2e7) แล้ว
- นำความทึบแสงออกจากตัวปรับราคาเสนอ DrawShadow() ตามเดิม ทำให้เกิดความสับสน (I82c62, b/171624638)
- ย้าย Measureผลลัพธ์ ออกจาก MeasureScope (Ibf96d, b/171184002)
- มีการย้ายสัญลักษณ์ที่เกี่ยวข้องกับเลย์เอาต์หลายรายการจาก androidx.compose.ui ไปยัง androidx.compose.layout.ui (I0fa98, b/170475424)
- นำ FocusState2 ที่เลิกใช้งานแล้วออก (I686cb, b/168686446)
- ขณะนี้ ZIndexModifier เป็นระบบภายใน (I1808b, b/171493718)
- อัปเดตประเภทการแสดงผล lerp ในพารามิเตอร์ขนาดที่จะแสดงผล ขนาดที่ไม่ใช่ null เพื่อหลีกเลี่ยงที่ไม่จำเป็น ชกมวย (Ib0044)
- เพิ่ม TestMonotonicFrameClock สำหรับการทดสอบโค้ดที่อาศัย MonotonicFrameClock ของ Compose สำหรับรอเหตุการณ์ของเฟรมองค์ประกอบ การใช้ RunblockTest (I4402f) ของ kotlinx-coroutines-test
- นำ ท่าทางสัมผัสScope.localToGlobal แล้ว (I15299, b/171462785)
- ตัวค้นหา
onAllNodesWithSubstring
ที่เพิ่ม (I81dd7, b/171462889) - เลิกใช้งานโมดูล androidx.ui.test แล้ว โปรดย้ายข้อมูลไปที่ androidx.compose.ui.test และ androidx.compose.ui.test.junit4 (I452e8)
แก้ไขข้อบกพร่อง
- ย้าย CaptureToBitmap ไปยัง CaptureToImage แล้ว (I86385)
- Foundation.Text เลิกใช้งานแล้วและแทนที่ด้วย Material.Text สำหรับ API ข้อความพื้นฐานที่ไม่ถูกตัดสินซึ่งไม่ใช้ค่าจากธีม โปรดดู androidx.compose.foundation.BasicText (If64cb)
- อัปเดตฟิลด์ข้อความเพื่อยอมรับ KeyboardOptions (Ida7f3)
- เปลี่ยนชื่อ KeyboardOptions เป็น ImeOptions (I82f36)
- ย้าย KeyboardType และ ImeAction ลงใน KeyboardOptions (I910ce)
- มีการเพิ่ม ProvideDefault เป็นอีกทางเลือกหนึ่งสำหรับการระบุแอมเบียนท์ และสามารถใช้เพื่อระบุค่าแอมเบียนท์ที่จะตั้งค่าเมื่อไม่มีการระบุค่าแอมเบียนท์เท่านั้นได้ (Id6635, b/171024925)
- เลิกใช้งาน BaseTextField แล้ว โปรดใช้ BasicTextField แทน (I896eb)
- แนะนำโมดูล ui-test-junit4 (Ib91f8)
- เปลี่ยนชื่อ
relativePaddingFrom
เป็นpaddingFrom
แล้ว เพิ่มตัวแก้ไขpaddingFromBaseline
เพื่ออำนวยความสะดวกในการระบุระยะทางตั้งแต่ขอบเขตของเลย์เอาต์ไปจนถึงเส้นฐานข้อความ (I0440a, b/170633813) - LaunchedTask เปลี่ยนชื่อเป็น LaunchedEffect เพื่อความสอดคล้อง ด้วย API ของ SideEffect และ DisposableEffect LaunchedEffect ที่ไม่มี ไม่อนุญาตให้ใช้พารามิเตอร์หัวเรื่องเพื่อส่งเสริมแนวทางปฏิบัติแนะนำ (Ifd3d4)
- ได้แนะนำทรัพยากรที่ประกอบกันได้ซึ่งจะเขียนใหม่เมื่อการอัปเดตการกำหนดค่า (I6387c, b/167352819)
- ขณะนี้ Recomposer ต้องใช้ CoroutineContext ขณะสร้าง (Ic4610)
- รวมค่า
zIndex
เมื่อใช้Modifier.zIndex()
หลายค่า ก่อนหน้านี้เกมแรกชนะ (Ic514c, b/170623936) - การเปลี่ยนแปลงการใช้งาน SlotTable ภายในซึ่ง ไม่ส่งผลกระทบต่อ API สาธารณะ (If9828)
- เพิ่มตัวเลือก IME การแก้ไขอัตโนมัติบนแป้นพิมพ์ (I57b8d)
- ย้าย androidx.ui.test ไปยัง androidx.compose.ui.test (I9ffdb) แล้ว
- นำ KeyboardOptions.toImeOptions ออกจาก API สาธารณะแล้ว (Ic2e45)
การสนับสนุนภายนอก
- ปิดใช้การเผยแพร่อาร์ติแฟกต์ภายใน androidx.compose.ui:ui-text-android (Ib93fa)
เวอร์ชัน 1.0.0-alpha06
28 ตุลาคม 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha06
แล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้ Recomposer ได้เป็น CompositionReference และเป็นลิงก์ที่ถูกต้องแล้ว องค์ประกอบหลัก ตอนนี้ลดจำนวนเครื่องมือปรับแต่ง Explicit Recomposer ในจำนวนน้อยลงแล้ว (I4036F)
- เลิกใช้งาน VectorPainter ใน โปรดจำ VectorPainter เพื่อ ระบุว่า Composable API ภายใน ใช้ประโยชน์จาก "การจดจำ" เพื่อคงข้อมูลไว้ งานประพันธ์ (Ifda43)
- อัปเดต Modifier.drawWithCache API เพื่อแสดง ContentDrawScope เป็นขอบเขตตัวรับ แทน DrawScope เพื่อให้ ความสามารถในการจัดเรียงใหม่ คำสั่งภาพวาด ซึ่งมีประโยชน์สำหรับการผสาน การแต้มสีกรณีการใช้งานซึ่งพิกเซลเนื้อหาต้อง จะแสดงผลก่อน เพื่อให้ ของโหมดผสานได้อย่างถูกต้อง (Ie7ec8)
- ย้าย SimpleContainer ไปยัง PopupTestUtils.kt (I78c57)
- ConsumedData ไม่ใช่คลาสข้อมูลอีกต่อไป ดูรายละเอียดได้ที่ https://android-review.googlesource.com/c/platform/frameworks/support/+/1455219 (I1737f)
- แก้ไขตำแหน่งแฮนเดิล Rtl (I6e1e0)
- เปลี่ยนโครงสร้างของ DrawScope และ
ContentDrawScope จะเป็นอินเทอร์เฟซ
แทนที่จะเป็นคลาสนามธรรม
- สร้างการใช้งาน CanvasDrawScope แล้ว ของ DrawScope
- การติดตั้งใช้งานแบบเปลี่ยนโครงสร้างภายในโค้ดของ DrawScope เพื่อใช้ CanvasScope แทน
- สร้าง DrawContext เพื่อรวมทรัพยากร Dependency แล้ว สำหรับ DrawScope
- นำวิธีการที่เลิกใช้งานออกจาก DrawScope แล้ว (I56f5e)
- การเปลี่ยนแปลงที่ทำลาย: นำค่าที่ส่งกลับออกจาก
PointerInputFilter.onPointerEvent(...)
เนื่องจากค่าเดียวที่ควรเปลี่ยนได้ในเหตุการณ์ตัวชี้คือข้อมูลการใช้งาน ตอนนี้คุณสามารถเปลี่ยนแปลงข้อมูลการใช้งาน PointerEvents ที่ส่งผ่านแทนการส่งคืนข้อมูลจากPointerInputFilter.onPointerEvent(...)
ได้ (I6acd0) - MeasureScope และ IntrinsicMeasureScope สร้างเป็นอินเทอร์เฟซ (I1a087, b/170461665)
- ฟังก์ชันผสานสำหรับ AlignmentLine ถูกซ่อนไว้ (I9da1a, b/170612900, b/170611568)
- เพิ่มความสามารถในการระบุข้อมูลเครื่องมือตรวจสอบในตัวปรับแต่งที่เขียน (Idee08, b/163494569)
- เพิ่มตัวเลือก SelectAll ในเมนูการเลือกแล้ว (Ief02b)
- อัปเดต DrawTransform.rotate เพื่อใช้
พารามิเตอร์ Pivot เริ่มต้นของศูนย์ที่จะจับคู่
เอกสารประกอบ
- อัปเดต DrawScope.rotateRad เพื่อใช้ค่าออฟเซ็ตสำหรับ จุด Pivot ให้ตรงกับวิธีการเปลี่ยนรูปแบบอื่นๆ
- DrawScope.rotateRad การใช้งานที่เกินการใช้งานที่เลิกใช้งานแล้ว จะลอยสำหรับพิกัด x และ y ของจุดหมุน
- (Iffcbb, b/170434992)
แก้ไขข้อบกพร่อง
- เปิดใช้การตรวจสอบ Lint ของ API สำหรับ MissingGetterMatchingBuilder ใน androidx (I4bbea, b/138602561)
- เพิ่มการทดสอบ (I6b8ae)
- เปิดใช้การเปลี่ยนใน ComposeTestRule ลบตัวเลือกในการ เปิดใช้เคอร์เซอร์ที่กะพริบจาก ComposeTestRule (If0de3)
- เพิ่มตัวเลือก IME สำหรับ KeyboardCapitalization (I8ac38)
- เพิ่มตัวเลือกแป้นพิมพ์บรรทัดเดียวใน CoreTextField (I72e6d)
- ย้าย SimpleContainer ไปยัง PopupTestUtils.kt (I65c3e)
- เปลี่ยนชื่อ Radius API เป็น CornerRadius แสดงออกได้ดียิ่งขึ้น วิธีใช้งานใน Compose อัปเดตเอกสารประกอบเพื่อระบุว่า รัศมีมุมลบถูกบีบ เป็น 0 (I130c7, b/168762961)
- ปรับปรุงการทำงานร่วมกันของ Android โดยการส่ง MotionEvents ไปยัง Android View ย่อยที่ส่งคืนค่า False สำหรับ onTouchEvent สำหรับการดำเนินการทั้งหมดยกเว้น
ACTION_DOWN
(I94c5a, b/170320973) - Box สร้างฟังก์ชันในบรรทัด (Ibce0c, b/155056091)
การสนับสนุนภายนอก
- รองรับภาษา
AnnotatedString.capitalize
และAnnotatedString.decapitalize
(I4aa7f)
เวอร์ชัน 1.0.0-alpha05
14 ตุลาคม 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha05
แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม DSL เพื่อระบุข้อมูลเครื่องมือตรวจสอบ (Ic9a22)
- เลื่อน LongPress ไปไว้ในข้อความ (Iff2bc)
- เชิงทดลอง Modifier.pointerInput ตัวปรับแต่งอินพุตระงับ (Ia77d2)
- เพิ่มการดำเนินการช่วยเหลือพิเศษการคัดลอก/วาง/ตัด (I6db4f)
- ลบเครื่องมือสร้างสาธารณะสำหรับ AndroidOwner ออกแล้ว (Iacaef)
- ป๊อปอัปและกล่องโต้ตอบรับค่า FLAG_SECURE จากหน้าต่างระดับบนสุดแล้ว นอกจากนี้ยังเพิ่มตัวเลือกเพื่อกำหนดค่านี้อย่างชัดเจน (I64966, b/143778148, b/143778149)
ขณะนี้ข้อมูลการรับชมจะเปลี่ยนแปลงไม่ได้ และ ฟังก์ชันการโทรไปยังส่วนขยายที่บริโภค จะไม่แสดงผล PointerInputChange ใหม่อีกต่อไป โดยเปลี่ยนรูปแบบ PointerInputChange ที่ระบุแทน
นี่เป็นขั้นตอนแรกในกระบวนการ 2 ขั้นตอนเพื่อ ทำให้ข้อมูล PointerEvent เปลี่ยนแปลงได้ ไม่สามารถแก้ไขข้อมูลตัวชี้ด้วยรหัสผู้ใช้ ขั้นตอนที่ 2 คือการนำ ประเภทการคืนสินค้า
List<PointerInputChange>
ประเภทจากPointerInputFilter.onPointerEvent(...)
(Id067e)ปิดใช้การเลือกในข้อความและการสาธิต (Ie7e97)
Made onGloballyPositioned เป็นฟังก์ชันในบรรทัด (I15830)
OnPositionedModifier เปลี่ยนชื่อเป็น OnGloballyPositionedModifier และ onPositioned() จะเปลี่ยนชื่อเป็น onGloballyPositioned() (I587e8, b/169083903)
เพิ่มพร็อพเพอร์ตี้ hasPendingMeasureOrLayout ลงใน Owner เพื่อบอกว่าเจ้าของมีเลย์เอาต์ที่รอดำเนินการอยู่หรือไม่ (I3d9f8, b/169038599)
เพิ่ม API ในการล้างโฟกัสแบบเป็นโปรแกรม (Ie1dc2, b/161487952)
นำ
PointerInputFilter.onPointerInput(...)
ออกแล้ว ควรใช้PointerInputFilter.onPointerEvent(...)
แทน (I6F04a)การเปลี่ยนแปลงขนาด
- นำ Size.getFlped ออกแล้ว
- นำ Size.rem ออกแล้ว
- นำ Size.truncDiv (Ief44d, b/169790720) ออกแล้ว
ในฐานะส่วนหนึ่งของการกำหนดมาตรฐาน ของค่าที่ส่งสำหรับคลาสในบรรทัด เปลี่ยนชื่อสี ยกเลิกการตั้งค่าเป็นสี ไม่ระบุ เพื่อความสอดคล้องกับคลาสแบบอินไลน์อื่นๆ (I97611, b/169797763)
แนะนำ TextOverflow.None เมื่อส่วนเพิ่มเติมเป็น "ไม่มี" Text จะไม่จัดการกับส่วนเพิ่มเติมอีกต่อไป และจะรายงานขนาดจริงไปยัง LayoutNode (I175c9, b/158830170)
พารามิเตอร์ขอบเขตภายใน AnnotatedString.Builder.addStringAnnotation เปลี่ยนชื่อเป็นแท็กเพื่อความสอดคล้องของ API (I7c8cb)
แก้ไขข้อบกพร่อง
- ประสิทธิภาพการเลื่อนของ LazyColumn/Row ดีขึ้นโดยลดองค์ประกอบย่อยในการเลื่อนแต่ละครั้ง เพิ่มเมธอด hasทันทีหลังจากการทำซ้ำ() แบบใหม่สำหรับคลาสการเรียบเรียง เมธอด hasPendingChanges() จาก Recomposer ถูกเปลี่ยนชื่อเป็น hasให้สอดคล้องกับ() (Ib2f32, b/168293643, b/167972292, b/165028371)
- ขนาดที่อัปเดตแล้ว ไม่ระบุ ให้เป็น Float.NaN แทน Float.POSITIVE_INFINITY อัปเดตการติดตั้งใช้งาน Painter เป็น ตรวจสอบกับ Size.Unidentifier ด้วย เป็นขนาดแบบไม่จำกัด (I95a7e)
- ตอนนี้ลำดับของการเรียก Place() ในเลย์เอาต์ที่กำหนดเองจะเป็นตัวกำหนดลำดับการวาดสำหรับเด็กแล้ว (Ibc9f6)
- รองรับการแปลง AnnotatedString เป็น SAttachableString สำหรับการเข้าถึง (Ief907)
- ตัวยึดตำแหน่งสำหรับชั้นเรียน Android ที่เปิดอยู่ แพลตฟอร์มเก่าเพื่อเลี่ยงการใช้การสะท้อนความรู้สึกหากเป็นไปได้ (Ia1790)
- แก้ไขข้อบกพร่องแล้ว: หากซอฟต์แวร์แป้นพิมพ์แสดงขึ้นเป็นสาเหตุ แอปที่จะแปล พิกัดการป้อนตัวชี้จะกลายเป็น ไม่ถูกต้อง (Ic4cec, b/163077821)
เวอร์ชัน 1.0.0-alpha04
1 ตุลาคม 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha04
แล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม OwnerScope เพื่ออนุญาตให้เก็บรวบรวม และวาดขอบเขตสังเกตการณ์ ใช้ไม่ได้อีกต่อไป (Ic4cf8)
- เพิ่ม OnRemeasuredModifier และ onSizeChanged() ลงใน ได้รับการติดต่อกลับเมื่อมีการวัดเลย์เอาต์เนื้อหาอีกครั้งและ ขนาดก็เปลี่ยนไปตามลำดับ (I657cf, b/154108792)
- เพิ่มการทำงานของความหมายของคลิกยาว (I6281b, b/156468846)
- กำหนดให้ FocusManager เป็นแบบส่วนตัว (I7872F)
อัปเดตการติดตั้งใช้งานเพื่อสร้าง การใช้งาน DrawCacheModifier โดยเฉพาะ แทนการเพิ่มคุณสมบัติตัวเลือกใน DrawModifier
อัปเดตเอกสารประกอบสำหรับวิธีการต่างๆ (Ibd166)
ทำให้ TextRange แทรกในบรรทัดเพื่อหลีกเลี่ยงการสร้างออบเจ็กต์ (Id034b)
LocationScope#parentWidth และ PlacementScope#parentLayoutDirection จะอ่านจากบล็อกตำแหน่งของเลย์เอาต์ที่กำหนดเองไม่ได้อีกต่อไป (Icc1ae, b/168295623)
เพิ่ม AccessibilityscrollState ลงในพร็อพเพอร์ตี้ความหมาย (Ifeda9)
เปิดตัว Modifier.drawWithCache เพื่อรองรับการสร้างวัตถุภาพวาด ที่สร้างทรัพยากร Dependency ใหม่แบบมีเงื่อนไข ขึ้นอยู่กับข้อมูลขนาด/สถานะ (I376dc)
นำ ParagraphConstraints ออกแล้ว ระบบจะส่งความกว้างไปยังย่อหน้าโดยตรงตอนนี้ (Ica712)
แก้ไขข้อบกพร่อง
- อัปเดต 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)
- ที่มีคำอธิบายประกอบrootAnimationClockfactor, การเปลี่ยนเปิดใช้, blinkingCursorEnabled และ textInputServiceFactory กับ @VisibleForTesting, ทำให้เป็น API ภายในและซ่อน kdoc (I554eb, b/168308412)
- นำ SelectionContainer ออกจากด้านบนเพื่อปิดใช้การเลือกเริ่มต้นและหลีกเลี่ยงลักษณะการทำงานที่ไม่คาดคิด เราสามารถใช้ SelectionContainer เพื่อรวมเนื้อหาที่ต้องเลือกได้แทน (I8dfe0, b/158459594)
เวอร์ชัน 1.0.0-alpha03
16 กันยายน 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha03
แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นําการดําเนินการตามความหมายของการเลื่อนไปข้างหน้า/ถอยหลังออก ขั้นตอนที่เพิ่ม ใน AccessibilityRangeInfo (Ia47b0)
- นำ
onInvalidate()
ออกจากOwner
--OwnedLayer
แล้ว แฮนเดิลการทำให้ใช้งานไม่ได้ (Ica72b, b/162061312) นำเมธอดโอเปอเรเตอร์ออกจาก "ขนาด" แล้ว API ที่ใช้พารามิเตอร์ออฟเซ็ต ผลของการดำเนินการเหล่านี้ไม่ชัดเจน และผลการค้นหาเป็นประเภทที่ไม่คาดคิด สำหรับสิ่งเหล่านี้ เช่น ควรขนาด - ผลลัพธ์ออฟเซ็ต ออฟเซ็ตหรือผลลัพธ์ขนาดแตกต่างกันอย่างไร
และนำวิธีการที่เลิกใช้งานออกไปในคลาส Size ด้วย (Iec902, b/166514214)
แก้ไขข้อบกพร่อง
- แก้ไขรายการ LazyColumn ที่วาดไม่ถูกต้องในบางครั้ง ซึ่งก็ทำให้เกิดข้อขัดข้องในบางเงื่อนไขด้วย (Ibcf17, b/163066980, b/165921895)
- DpConstraints และ API ที่ใช้เลิกใช้งานแล้ว (I90cdb, b/167389835)
- ย้าย
createAndroidComposeRule
และAndroidInputDispatcher
จากandroidx.ui.test.android
ไปยังandroidx.ui.test
(Idef08, b/164060572) - มีการเปลี่ยนชื่อการใช้แรงโน้มถ่วงอย่างต่อเนื่องเพื่อจัดแนวหรือจัดแนวใน API เลย์เอาต์ (I2421a, b/164077038)
- เพิ่ม onNode และเมธอดส่วนกลางอื่นๆ ใน ComposeTestRule เป็น เราจะเลิกใช้งานรายการสากลปัจจุบัน (Ieae36)
เวอร์ชัน 1.0.0-alpha02
2 กันยายน 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha02
แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำ Callback ออกเพื่อแจ้งเจ้าของเมื่อขอบเขตของโหนดเลย์เอาต์เปลี่ยนแปลง (If654e, b/166106882)
- เพิ่มการรองรับfilltype แล้ว พารามิเตอร์บนเส้นทางกราฟิกเวกเตอร์ เพื่อรองรับรอยบากของรูปร่าง เป็นกฎการเติมเส้นทาง Odd หรือ NonZero (I43dd2)
- ระยะเวลาทำงานและอัตราความเร็วเปลี่ยนเป็นคลาสแบบอินไลน์แล้ว (I48f4a)
- ระยะเวลาเป็นคลาสในหน้าแล้ว (I565eb)
- เพิ่ม Callback เพื่อแจ้งเจ้าของเมื่อขอบเขตของโหนดเลย์เอาต์เปลี่ยนแปลง (Ic40b3)
แก้ปัญหาที่มีตัวสร้างฟังก์ชันสี่เหลี่ยมผืนผ้า ที่มีออฟเซตและรัศมีจะสร้างสี่เหลี่ยมผืนผ้าในภาพ ลำดับของซ้าย ขวา บน ล่าง แทนที่จะเป็น ซ้าย บน ขวา ล่าง
นำวิธีการที่แสดงร่วมกันที่เลิกใช้งานแล้วออกจาก Rect in ของเครื่องมือสร้างฟังก์ชัน
เพิ่มการทดสอบเพื่อยืนยันเมธอดใน Rect.kt (I08460, b/165822356)
แก้ไขข้อบกพร่อง
- เพิ่ม MutableRect ซึ่งเป็นสี่เหลี่ยมผืนผ้าที่แก้ไขได้ (I71bd2, b/160140398)
- Matrix4 ถูกแทนที่ด้วย Matrix ส่วนอื่นๆ ทั้งหมด ของแพ็กเกจเวกเตอร์คณิตศาสตร์ได้ถูกลบออกแล้ว (Ibd665, b/160140398)
แบบแผนการเรียกใช้สำหรับฟังก์ชันที่ประกอบกันได้มี มีการเปลี่ยนแปลง นี่เป็นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบไบนารี ห้องสมุดทั้งหมดต้องเป็น ได้รับการคอมไพล์ซ้ำเพื่อให้ทำงานร่วมกับปลั๊กอินคอมไพเลอร์ Compose เวอร์ชันนี้ได้
การเปลี่ยนแปลงนี้จะไม่สร้างการเปลี่ยนแปลงช่วงพักโฆษณาระดับแหล่งที่มาเนื่องจาก เฉพาะ API ที่มีการเปลี่ยนแปลงคือ API ของคอมไพเลอร์ที่มีโค้ด เลือกใช้ (I7afd2, b/158123185)
แก้ไขข้อขัดข้องที่อาจเกิดขึ้นเมื่อ การส่งไปยัง PointerInputFilter อาจทำให้ PointerInputFilter จะถูกนำออกแบบซิงโครนัส (I58f25)
เวอร์ชัน 1.0.0-alpha01
26 สิงหาคม 2020
ปล่อย androidx.compose.ui:ui-*:1.0.0-alpha01
แล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตเหล่านี้
เวอร์ชัน 0.1.0-dev
เวอร์ชัน 0.1.0-dev17
19 สิงหาคม 2020
ปล่อย androidx.compose.ui:ui-*:0.1.0-dev17
แล้ว เวอร์ชัน 0.1.0-dev17 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
emitView
เลิกใช้งานแล้ว ใช้AndroidView
แทนหากทำได้เพื่อปล่อย View ภายใน Compose โปรดทราบว่าระบบจะไม่รองรับการเขียน View และ ViewGroups โดยตรงในอนาคตเว้นแต่จะออกมาอยู่ในแผนผังองค์ประกอบ ทั้งในกรณีที่ใช้ AndroidView ได้ (I29b1e, b/163871221)FocusState2
เลิกใช้งานแล้วและแทนที่ด้วยFocusState
(Ia8b79, b/160822876, b/160923332)- ระบบนำโอเวอร์โหลด AndroidView ที่เลิกใช้งานแล้วออก (I946b9, b/163802393)
- ตอนนี้การปล่อยที่กำหนดเองจะประกาศว่ามีตัวตั้งค่าอย่างน้อย 1 ตัว สามารถข้ามและเขียนใหม่ได้อย่างอิสระโดยไม่ขึ้นอยู่กับการปล่อย (Ibbd13)
เปลี่ยนคลาสเวกเตอร์เป็นไม่อีกต่อไป เป็นคลาสข้อมูลเพราะอินสแตนซ์ของออบเจ็กต์เดียวกัน ใช้ในการประพันธ์เพลง
เพิ่ม Flag mutableStateOf สำหรับ VectorPainter เพื่อวาดซ้ำแบบมีเงื่อนไขหากเนื้อหาของ การเปลี่ยนแปลงเวกเตอร์
อินสแตนซ์ VectorComponent ที่เปลี่ยนโครงสร้างเป็น ของ VectorPainter เมื่อมีการใช้ซ้ำ ในบทประพันธ์เพลง
GroupComponent และ PathComponent ที่อัปเดต ให้ฟิลด์ชื่อเปลี่ยนแปลงได้ (Ieae45, b/151378808)
นำ
onChildPositioned
และOnChildPositionedModifier
ออกแล้ว นักพัฒนาแอปควรใช้onPositioned
และOnPositionedModifier
ในเลย์เอาต์ย่อยแทน (I4522e, b/162109766)ออฟเซ็ตได้กลายเป็นคลาสอินไลน์ (Iaec70)
เพิ่มพารามิเตอร์ตัวแก้ไขลงใน SelectionContainer (I4aada, b/161487952)
นำ FocusModifier ที่เลิกใช้งานแล้วออก (I0b4ba, b/160922116, b/160821157, b/162441435, b/160822875, b/160921940)
เพิ่ม
mergePolicy
lambda ลงในSemanticsPropertyKey
แล้ว ประเภท ใช้เพื่อกำหนดนโยบายที่กำหนดเองสำหรับความหมายการผสานAllDescendants การผสาน นโยบายเริ่มต้นคือใช้ค่าระดับบน หากมีอยู่แล้ว ปรากฏ หรือไม่ก็มีค่าย่อย (Iaf6c4, b/161979921)ขณะนี้ข้อจำกัดเป็นคลาสอินไลน์ (I88736)
เพิ่ม FocusManager ที่ย้ายตรรกะโฟกัสทั่วไปออกจาก AndroidComposeView (I528ef, b/161487952, b/162206799)
ชื่อ PointerEventPass ที่อัปเดตแล้วสำหรับรุ่นอัลฟ่า (Ifda6f)
ตอนนี้ IntOffset เป็นคลาสแบบอินไลน์ (Iac0bf)
IntSize เป็นคลาสแบบอินไลน์แล้วในตอนนี้ (I2bf42)
PlacementScope.placeAbsolute()
เปลี่ยนชื่อเป็นPlacementScope.place()
และPlacementScope.place()
ก่อนหน้านี้เปลี่ยนชื่อเป็นPlacementScope.placeRelative()
ด้วยเหตุนี้ เมธอดPlacementScope.place()
จะไม่มิเรอร์ตำแหน่งในบริบทแบบขวาไปซ้ายโดยอัตโนมัติอีกต่อไป หากต้องการ โปรดใช้PlacementScope.placeRelative()
แทน (I873ac, b/162916675)ตอนนี้ AlertDialog ใช้ FlowRow สำหรับปุ่มต่างๆ (I00ec1, b/161809319, b/143682374)
ทำยูทิลิตีทดสอบบางอย่างที่ไม่ใช่ สาธารณะเพราะพวกเขาไม่ใช่ที่ ที่ควรจะเป็น จะมีการเผยแพร่ต่อสาธารณะในอนาคต (I32ab1)
เปลี่ยนโครงสร้างของการป้อนตัวชี้ใหม่ โค้ด (Ie3f45)
PxBound ที่เลิกใช้งานแล้วใน ชอบสี่เหลี่ยมผืนผ้า อัปเดตการใช้งานทั้งหมดแล้ว ของ PxBounds พร้อมรูปสี่เหลี่ยมและเพิ่ม การเลิกใช้งาน/แทนที่ด้วย เพื่อช่วยเสริม การย้ายข้อมูล (I37038, b/162627058)
นำ KeyEvent2 ที่เลิกใช้งานแล้วออก ใช้ KeyEvent แทน (Ied2d0, b/162097587)
KeyEvent มีพร็อพเพอร์ตี้ Unicode ที่ใช้เพื่อรับอักขระ Unicode ที่สร้างขึ้นจากชุดค่าผสมคีย์ที่ระบุและสถานะคีย์เมตา (If3afc)
สร้างเหตุการณ์ DelayUp ที่กําหนดเอง และคลาสที่เกี่ยวข้องการเลือกใช้ API ก็น่าจะเปลี่ยนแปลงไปอย่างมาก (I56d6f)
นำ PointerEventPass ออก 2 รายการที่ไม่ได้ใช้แล้ว ที่จำเป็น (I3dd9d)
เพิ่มสีพารามิเตอร์ เงา และการตกแต่งข้อความลงใน Paragraph.paint ฟังก์ชันนี้มีประโยชน์เพื่อหลีกเลี่ยงการสร้างย่อหน้าที่ไม่จำเป็น (I81689)
แก้ไขข้อบกพร่อง
- นำ onFocusChanged Callbacks ออกจาก TextField แล้ว ใช้ Modifier.FocusObserver แทน (I51089, b/161297615)
- เลิกใช้งาน Modifier.drawBorder แล้ว ใช้ Modifier.border แทน คลาสข้อมูลเส้นขอบถูกแทนที่ด้วย BorderStroke (I4257d, b/158160576)
นำการเรียก FrameManager ที่เลิกใช้งานแล้วออก
มีการเปลี่ยนแปลง API การเขียนภายในเพื่อลดจำนวน ค่าใช้จ่ายในการดำเนินการเพื่อติดตามวัตถุสถานะ เช่น
mutableStateof()
(I80ba6)Verticalscroller และ Horizontalscroller ออกแล้ว โปรดใช้ ScrollableColumn/Row แทน นำ Modifier.drawBackground ออกแล้ว ใช้ Modifier.background (I73b0d, b/163019183)
ขัดข้องเมื่อมีการแก้ไขสิ่งที่บันทึกสถานะไว้ภายในสำหรับวนซ้ำ การมีคีย์เดียวกันใน savedInstanceState() ได้รับอนุญาตแล้ว ตอนนี้ API ของ UiSavedStateRegistry จึงมีการปรับตามข้อกำหนดใหม่นี้ (I4ab76, b/160042650, b/156853976, b/159026663, b/154920561)
ขณะนี้ Composable ของ
state { ... }
เลิกใช้งานแล้วเพื่อให้ การเรียกไปที่remember { mutableStateOf(...) }
อย่างชัดแจ้งเพื่อความชัดเจน การดำเนินการนี้จะลดแพลตฟอร์ม API โดยรวมและจำนวนแนวคิดสำหรับสถานะ การจัดการ และตรงกับรูปแบบby mutableStateOf()
สำหรับชั้นเรียน การมอบสิทธิ์พร็อพเพอร์ตี้ (Ia5727)เปลี่ยนชื่อ Rect เป็น RoundRect แล้ว เพื่อให้พอดีกับรูปแบบการตั้งชื่อ สร้างตัวสร้างฟังก์ชันที่คล้ายกัน ไปยัง "Rect" และเลิกใช้งานฟังก์ชัน RRect แล้ว เครื่องมือสร้าง (I5d325)
เวอร์ชัน 0.1.0-dev16
5 สิงหาคม 2020
ปล่อย androidx.compose.ui:ui-*:0.1.0-dev16
แล้ว เวอร์ชัน 0.1.0-dev16 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เลิกใช้งาน OnChildPositioned แล้ว ใช้ OnPositioned ในหน้าย่อยแทน (I87f95, b/162109766)
- เลิกใช้งาน setViewContent แล้ว ควรใช้ setContent แทน (I7e497, b/160335130)
- เพิ่ม AndroidViewBinding API สำหรับการพองและเขียนทรัพยากรการออกแบบโดยอิงตาม ViewBinding (I081c6)
- KeyEvent2 ถูกแทนที่ด้วย KeyEvent (I2d770, b/162097585)
- เพิ่มการรองรับคีย์ฮาร์ดแวร์ Alt (I9036b)
- เลิกใช้งาน FocusManager แล้ว โปรดใช้ Modifier.Focus(), Modifier.focusObserver() และ Modifier.FocusRequester() แทน (I74ae4, b/162211322)
- loadVectorResource สนับสนุนแอตทริบิวต์ TriPath (I808fe)
- ย้ายกล่องโต้ตอบไปยัง UI (I47fa6)
- นำ PointerEventPass ออก 2 รายการที่ไม่ได้ใช้แล้ว ที่จำเป็น (I33ca7)
- ใช้งาน PointerInteropModifier ซึ่งช่วยให้ ความสามารถในการรับ MotionEvents และโต้ตอบกับ Compose ราวกับว่าคุณกำลังใช้งาน Android View (Ieb08c)
- นำตัวแก้ไขแท็กที่เลิกใช้งานแล้วออก โปรดใช้LayoutId แทน (Idaa05, b/162023919)
- API สำหรับการสนับสนุนข้อความจากขวาไปซ้ายได้รับการอัปเดตแล้ว เพิ่ม LayoutDirectionAmbient แล้วซึ่งใช้เพื่ออ่านและเปลี่ยนทิศทางเลย์เอาต์ได้ นำ Modifier.rtl และ Modifier.ltr ออกแล้ว (I080b3)
- การตัดเส้นทางการสนับสนุนในกราฟิกเวกเตอร์ (Ie16c9, b/158188351)
- เพิ่ม Modifier.layout() ที่ช่วยให้สร้างตัวแก้ไขเลย์เอาต์ที่กำหนดเองได้อย่างสะดวก (I73b69, b/161355194)
- เพิ่ม AndroidView API ใหม่และเลิกใช้งาน API ที่มีอยู่แล้ว (I5bcfd)
- เลิกใช้งาน Modifier.plus แล้ว โปรดใช้ Modifier.then แทน "จากนั้น" มีสัญญาณในการจัดลำดับมากกว่า ในขณะเดียวกันก็ห้ามพิมพ์
Modifier.padding().background() + anotherModifier
ทำให้เชนหลุดและอ่านยากขึ้น (Iedd58, b/161529964) - เพิ่มคลาสย่อย [Abstract]ComposeView View สำหรับการโฮสต์ Compose เนื้อหาในลำดับชั้นการแสดงผล (I46357)
- ตอนนี้
Row
และColumn
เปลี่ยนเป็นฟังก์ชันในบรรทัดแล้ว ซึ่งช่วยลดค่าใช้จ่ายในการใช้งาน (I75C10) - เพิ่ม SubcomposeLayout แล้ว เป็นค่าพื้นฐานระดับต่ำที่ช่วยให้สร้างองค์ประกอบย่อยระหว่างการวัดค่าได้ หากเราต้องการใช้ค่าที่มีอยู่ภายหลังในระหว่างการวัดสําหรับองค์ประกอบของแผนผังย่อย ตัวอย่างเช่น ไม่ได้ติดตั้งใช้งาน WithConstraints โดยใช้ SubcomposeLayout (I25cc8)
- เพิ่ม
SemanticsNode.positionInRoot
เพื่อรับตำแหน่งของ SemanticsNode ที่สัมพันธ์กับรูทของลำดับชั้น Compose (Icdf26, b/161336532) - Motion Events ผ่านมาแล้ว จาก Android ไปยัง Compose และ กลับมาใช้ Android (I14be8, b/158034713)
- นำเมนูแบบเลื่อนลงป๊อปอัปออกแล้ว (I00430)
- ตำแหน่งป๊อปอัปคงที่บนจอแสดงผลที่ตัดออก (Idd7dd)
- เพิ่มการดำเนินการช่วยเหลือพิเศษเพื่อรับ TextLayoutผลลัพธ์ (I9d6e6)
- เพิ่ม RemeasurementModifier แล้ว ซึ่งช่วยให้สามารถวัดเลย์เอาต์ได้พร้อมกัน โดยทั่วไปแล้วคุณไม่จำเป็นต้องใช้ฟีเจอร์นี้เพราะการวัด/รีเลย์จะเกิดขึ้นโดยอัตโนมัติ แต่เรานำมาใช้ภายใน LazyColumnItems ระหว่างการเลื่อน (I5f331, b/160791058)
- นำ getLineEllipsisOffset/getLineEllipsisCount ออก ใช้ getLineVisibleEnd/getLineEnd/isLineEllipified แทน (I85aa2)
- เพิ่มเครื่องหมาย/คำอธิบายประกอบเพื่อเหตุผลของแนวทางปฏิบัติแนะนำ (I66B20)
- แสดง API บรรทัดเพิ่มเติมใน TextLayoutผลลัพธ์ (I79bd2)
- ตัวแปลงเวกเตอร์ในตัวเพื่อแปลงค่าในตัว ขณะนี้คุณสามารถเข้าถึงหน่วยโฆษณาผ่าน Foo.VectorConverter เช่น Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter ฯลฯ (I3e273)
แก้ไขข้อบกพร่อง
- แก้ไข API แบบกว้าง (I077bc)
- นำอินเทอร์เฟซ OffsetBase ที่ไม่ได้ใช้ออก
- จัดคลาสออฟเซ็ตและ IntOffset ให้มี แพลตฟอร์ม API ที่สอดคล้องกัน
- เปลี่ยนชื่อ IntOffset.Origin เป็น IntOffset.Zero เพื่อให้สอดคล้องกับ Offset API
- ย้ายเมธอด NativeCanvas ออกจาก Canvas แล้ว สำหรับสนับสนุนให้ผู้บริโภคสร้าง อินสแตนซ์ Canvas ของตัวเอง
- สร้างคลาส EmptyCanvas เพื่อเปลี่ยนโครงสร้างภายในโค้ดแล้ว DrawScope ให้เป็นพารามิเตอร์ที่ไม่ใช่ค่าว่างได้แทน lateinit และตรวจสอบว่าฟิลด์จะไม่เป็นโมฆะ
- เปลี่ยนชื่อ ClipOp enum เป็น Pascal Case แล้ว
- เปลี่ยนชื่อ enum ของFilterquality เป็น Pascal Case แล้ว
- เปลี่ยนชื่อ Strokeเข้าร่วม enum เป็น Pascal Case แล้ว
- เปลี่ยนชื่อ enum ของ PointMode เป็น Pascal Case แล้ว
- เปลี่ยนชื่อ enum ของ PaintingStyle เป็น Pascal Case แล้ว
- เปลี่ยนชื่อ PathFillType enum เป็น Pascal Case แล้ว
- เปลี่ยนชื่อ StrokeCap enum เป็น Pascal Case แล้ว
- อัปเดตการใช้งาน DrawCache เป็นไม่แล้ว ใช้พารามิเตอร์ Latinit
- อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบ Lazy อีกต่อไป สำหรับพารามิเตอร์ภายในfillPaint และ Straint
- อัปเดตรูปภาพที่ประกอบขึ้นได้เพื่อหลีกเลี่ยงการใช้ Box ลดค่าใช้จ่าย
- อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
- อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ วิธีการในแต่ละเส้นทาง
- อัปเดตองค์ประกอบย่อยเวกเตอร์เพื่อนำรายการที่ซ้ำซ้อนออก การตรวจสอบความเทียบเท่าแบบมีเงื่อนไขตามแฮนเดิลของการเขียนที่มีอยู่แล้ว พวกมัน
- เลิกใช้งานเมธอดตัวสร้างโฆษณาที่แสดงร่วมรูปสี่เหลี่ยมผืนผ้าที่ต้องการแล้ว ของตัวสร้างฟังก์ชัน
- อัปเดตคลาสของแปรงและเครื่องมือสร้างฟังก์ชันด้วย API @ที่เปลี่ยนแปลงไม่ได้และ @เสถียร
- อัปเดต enum VertexMode เป็น PascalCase
- อัปเดต DrawScope เมธอด SelectPaint เป็นแบบมีเงื่อนไข เขียนทับพารามิเตอร์เส้นโครงร่างในการแสดงผล หากมี เปลี่ยนแปลงแล้ว
- อัปเดตขนาดเพื่อเพิ่ม API ที่ทำลายโครงสร้างแล้ว เปลี่ยนชื่อ UnidentifierSize เป็น "Unidentifier [ไม่ระบุ]" และ "นำเมธอดที่ไม่ได้ใช้ออก"
- อัปเดตการใช้ Compose BlendMode API แล้ว เพื่อแมประหว่าง BlendModes ของเฟรมเวิร์ก Android ได้อย่างเหมาะสม และโหมด PorterDuff ขึ้นอยู่กับระดับ API แนะนำ BlendMode#isSupported API เพื่อดำเนินการ เป็นการค้นหาความสามารถเพื่อระบุว่า BlendMode บนอุปกรณ์ก่อนใช้งาน (I0ef42)
- เพิ่ม LazyItemScope สำหรับพารามิเตอร์ itemContent ของรายการแบบ Lazy โดยให้ตัวแก้ไขเพื่อเติมขนาดสูงสุดระดับบนสุดซึ่งจะแก้ปัญหา Use Case เมื่อรายการควรเติมเต็มวิวพอร์ต และ Modifier.fillMaxSize() ปกติจะไม่ทำงานเนื่องจากมีการวัดรายการด้วยข้อจำกัดอนันต์ (Ibd3b2, b/162248854)
- นำ
SemanticsNodeInteraction.performPartialGesture
ออกแล้ว ใช้SemanticsNodeInteraction.performGesture
แทน (Id9b62) - เปลี่ยนชื่อ
LazyColumnItems
เป็นLazyColumnFor
แล้วLazyRowItems
เปลี่ยนชื่อเป็นLazyRowFor
(I84f84) - แพ็กเกจ
foundation.shape.corner
ถูกแยกเป็นfoundation.share
(I46491, b/161887429) - เปลี่ยนชื่อ
AndroidComposeTestRule
เป็นcreateAndroidComposeRule
แล้ว (I70aaf) - เพิ่ม API ไปยัง
TextLayoutResult
แล้ว (รหัส 7e04) - เนื้อหา
FilledTextField
ได้เปลี่ยนชื่อเป็นTextField
และTextField
พื้นฐานได้เปลี่ยนชื่อเป็นBaseTextField
เพื่อให้ค้นพบและใช้ API ที่ต้องการได้ง่ายที่สุด (Ia6242, b/155482676) - Modifier.drawBackground ได้เปลี่ยนชื่อเป็น Modifier.background (I13677)
เวอร์ชัน 0.1.0-dev15
22 กรกฎาคม 2020
ปล่อย androidx.compose.ui:ui-*:0.1.0-dev15
แล้ว เวอร์ชัน 0.1.0-dev15 มีคอมมิตเหล่านี้
การอัปเดตการขึ้นต่อกัน
- หากต้องการใช้ Compose เวอร์ชัน
0.1.0-dev15
คุณจะต้องอัปเดตทรัพยากร Dependency ตามข้อมูลโค้ดใหม่ที่แสดงด้านบนในการประกาศทรัพยากร Dependency
การเปลี่ยนแปลง API
- FocusModifier เลิกใช้งานไปแล้วเพื่อใช้ Modifier.Focus, Modifier.focusRequester, Modifier.FocusObserver แทน FocusState และ FocusDescriptionState เลิกใช้งานแล้วเพื่อใช้ FocusState2 (I46919, b/160822875, b/160922136)
- เพิ่มตัวแก้ไขเพื่อสังเกตการเปลี่ยนแปลงสถานะโฟกัส (I05866, b/160924455, b/160923326)
- เพิ่มคีย์ตัวปรับแต่งในคำขอเปลี่ยนแปลงโฟกัส (I8dd73, b/161182057, b/160924778)
- ปรับเมนูแถบเครื่องมือเพื่อแสดงการคัดลอก ตัด วาง อย่างถูกต้อง (Id3955)
- ตอนนี้พร็อพเพอร์ตี้ความหมายค่าเดี่ยวใช้รูปแบบการเรียกแล้ว
ตัวอย่างเช่น 'ความหมาย { hide = true }' เขียนเป็น:
semantics { hidden() }
(Ic1afd, b/145951226, b/145955412) - เพิ่ม Modifier.Focus ซึ่งแทนที่ FocusModifier (Ib852a, b/160924778)
- เพิ่ม FloodToolbar สำหรับการเลือกฟิลด์ข้อความ (Ie8b07)
- เพิ่มคำอธิบายประกอบ API ทดลองสำหรับ API ที่เกี่ยวข้องกับอินพุตคีย์ (I53c0a)
- เพิ่มคำอธิบายประกอบ API ทดลองสำหรับ API ที่เกี่ยวข้องกับโฟกัสทั้งหมด (I53b24, b/160903352)
- เพิ่ม FocusState2 แล้ว ซึ่งจะแทนที่ FocusDetailsState (I0a3ba, b/160822595)
- เพิ่ม ExperimentalFocus ซึ่งเป็นคำอธิบายประกอบ @OptIn สำหรับ Focus API (I1544b, b/160820961)
- เพิ่มคลาสหน่วย IntBounds แล้ว ซึ่งแสดงขอบเขตพิกเซลที่เป็นจำนวนเต็มจากเลย์เอาต์ มีการอัปเดต API ของ PopupPositionProvider ให้ใช้งาน (I0d8d0, b/159596546)
- ขณะนี้ Applier ต้องใช้เมธอด clear() ในการกำจัด งานประพันธ์เพลง (Ibe697)
- KeyEvent เลิกใช้งานแล้วและแทนที่ด้วย KeyEvent2 (I68730)
- มีการเพิ่ม Flag useUnmergedTree ใหม่ที่ไม่บังคับให้กับตัวค้นหาการทดสอบ (I2ce48)
- Made LayoutNode รุ่นทดลอง (I4f2e9)
เพิ่มวิธีการคัดลอกไปยัง ประเภทคลาสในหน้า ได้แก่
- ออฟเซ็ต
- ขนาด
- รัศมี
- การเคลื่อนไหว
ต้นกำเนิดการแปลง
เมธอดออบเจ็กต์ที่แสดงร่วม Size.copy ที่เลิกใช้งาน วิธีการคัดลอกอินสแตนซ์ (Ife290, b/159905651)
ป๊อปอัป กล่องโต้ตอบ และเมนูกำลังรับค่า MaterialTheme ตามบริบท (Ia3665, b/156527485)
TextDirection เปลี่ยนชื่อเป็น ResolvedTextDirection (I3ff38)
นำพารามิเตอร์ทิศทางของเลย์เอาต์ออกจากบล็อกการวัดของฟังก์ชัน Layout() อย่างไรก็ตาม ทิศทางของเลย์เอาต์จะมีอยู่ใน Callback ผ่านออบเจ็กต์ Measure Scope (Ic7d9d)
เปลี่ยนโครงสร้างแฮนเดิลส่วนที่เลือกเพื่อนำมาใช้ใหม่ (I420e0)
"คลิกได้" ถูกนำออกแล้ว ใช้ Modifier.clickable (I84bdf)
ลบ TestTag และความหมายแล้ว ใช้ Modifier.testTag และ Modifier.semantics แทน (I15ff0, b/158841414)
ก่อนการเปลี่ยนแปลงนี้ ปลั๊กอินคอมไพเลอร์ของการเขียนจะสกัดกั้นการเรียกไปยังตัวสร้างภายในฟังก์ชัน @Composable หากมี (I5205a, b/158123804)
Modifier.tag เปลี่ยนชื่อเป็น Modifier.layoutId เพื่อหลีกเลี่ยงความสับสนกับ Modifier.testTag (I995f0)
ขณะนี้ตำแหน่ง Int ของเส้นจัดตำแหน่งที่แสดงผลจาก Placeable#get(AlignmentLine) ไม่เป็นค่าว่างแล้ว หากบรรทัดการปรับแนวที่ค้นหาขาดหายไป ระบบจะแสดงผล AlignmentLine.Unidentifier (I896c5, b/158134875)
มีการเพิ่มพารามิเตอร์ Composable ของ AndroidView แล้ว (I48a88, b/158746303)
เลิกใช้งาน Semantics() แล้ว ใช้ Modifier.semantics() แทน (I72407, b/158841414)
เพิ่ม viewModel() ที่เขียนได้ด้วย Composable ซึ่งช่วยให้สร้างหรือสร้าง ViewModel แล้ว ซึ่งคล้ายกับวิธีการทำงานในกิจกรรมหรือ Fragment (I5fdd1)
แทนที่การใช้ IntPx ด้วย Int. แทนที่ IntPxPosition ด้วย IntOffset แทนที่ IntPxSize ด้วย IntSize (Ib7b44)
ในการรวม จำนวนคลาสที่ใช้แสดง ข้อมูลขนาด, ทำให้เป็นมาตรฐาน เกี่ยวกับการใช้คลาส Size แทน ของ PxSize ซึ่งมีประโยชน์ ของคลาสในหน้าที่จะใช้ประโยชน์จาก เพื่อบรรจุค่าจำนวนลอยตัว 2 ค่าเพื่อแสดง ความกว้างและความสูงแสดงเป็นแบบลอย (Ic0191)
ในการรวม จำนวนคลาสที่ใช้แสดง ข้อมูลการวางตำแหน่ง, ทำให้เป็นมาตรฐาน เกี่ยวกับการใช้คลาสออฟเซ็ตแทน ของ PxPosition ซึ่งมีประโยชน์ ของคลาสในหน้าที่จะใช้ประโยชน์จาก เพื่อบรรจุค่าจำนวนลอยตัว 2 ค่าเพื่อแสดง x และออฟเซ็ต y แสดงเป็นเลขทศนิยม (I3ad98)
แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล ลบคลาส Px ทั้งหมดแล้ว (I3ff33)
แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I086f4)
แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (Id3434)
แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I97a5a)
เลิกใช้งาน TestTag แล้ว โปรดใช้ Modifier.testTag แทน (If5110, b/157173105)
ระบบนำการใช้งาน ParentDataModifier#modifyParentData ที่เป็นค่าเริ่มต้นออกแล้ว ซึ่งเทียบเท่ากับการไม่ใช้อินเทอร์เฟซตั้งแต่แรก (แนวคิด)
เลิกใช้งาน ScaleFit ไว้ก่อนหน้านี้เป็น ลบแล้ว โปรดใช้ ContentScale แทน (Ifbc5b)
แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I19d02)
เพิ่มคอมโพเนนต์เมนูแบบเลื่อนลงใน UI-material ซึ่งเป็นการใช้เมนูดีไซน์ Material (I9bb3d)
นำ LayoutTag() ที่เลิกใช้งานแล้วออก โปรดใช้ Modifier.tag() แทน นำ Modifier.matchParent() ที่เลิกใช้งานแล้วออก โปรดใช้ Modifier.matchParentSize() แทน (If8044)
แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I57bff)
เลิกใช้งาน Modifier.semantics เพื่ออนุญาตให้ใช้คอมโพเนนต์ระดับสูงได้ (I4cfdc)
การใช้ CanvasScope แบบรวม ตอนนี้ก็มีแค่ DrawScope และ ขอบเขตการวาดเนื้อหา เปลี่ยนชื่อ CanvasScope เป็น DrawScope อัปเดต DrawScope เพื่อใช้ความหนาแน่น อินเทอร์เฟซ และแสดง LayoutDirection ลบคลาสย่อย DrawScope ใน ContentDrawScope อัปเดต Painter และ PainterModifier แล้ว เพื่อไม่ให้มีพร็อพเพอร์ตี้ RTL อีกต่อไป และ DrawScope มีข้อมูลนี้แล้ว โดยไม่ต้องระบุด้วยตนเอง (I1798e)
Double TapGestureFilter เลย แยกความแตกต่างของ SingleTouchGestureFilter บนต้นไม้ (If92b1)
อัปเดต Alignment API และเพิ่มการรองรับการปรับแนวแบบสัมบูรณ์ (ซึ่งไม่มิเรอร์อัตโนมัติในบริบท Rtl) (I38cd3)
มีการเปลี่ยนแปลง API ตัวแก้ไข DrawLayer: outlineShape เปลี่ยนชื่อเป็นรูปร่าง และมีค่าเริ่มต้น RectangleShape และเปลี่ยนเป็นค่าที่ไม่มีค่าว่างแล้ว ClipToOutline เปลี่ยนชื่อเป็นคลิป นำคลิปToBounds ออกแล้วเนื่องจากเหมือนกับคลิป == true ที่มี RectangleShape (I7ef11, b/155075735)
อัปเดตระดับสูงขึ้นแล้ว เขียน API ที่เปิดเผย Canvas ต่อ แสดง CanvasScope แทน การดำเนินการนี้จะนำ ความต้องการของผู้บริโภคในการรักษา เป็นเจ้าของออบเจ็กต์ Paint สำหรับผู้บริโภคที่ ยังคงต้องการเข้าถึง Canvas ก็สามารถใช้ส่วนขยาย DrawCanvas ที่ให้ผลลัพธ์ Callback ไปยังปัญหา ให้วาดคำสั่งด้วยฟังก์ชัน Canvas (I80afd)
มีการเปลี่ยนแปลงด้วย WithConstraints ต่อท้าย lambda API จากนี้จะมีเพียง 2 พารามิเตอร์ แต่กลับมีขอบเขตตัวรับ ซึ่งนอกเหนือจากข้อจำกัดและการจัดวางDirection ยังมีคุณสมบัติ minWidth, maxWidth, minHeight และ maxHeight ใน Dp (I91b9a, b/149979702)
เปลี่ยนชื่อ LayoutModifier2 เป็น LayoutModifier (Id29f3)
นำอินเทอร์เฟซ LayoutModifier ที่เลิกใช้งานแล้วออก (I2a9d6)
ฟังก์ชันการวัดภายในใน Layouts และ LayoutModifier2 มีตัวรับ IntrinsicMeasureScope ในปัจจุบันซึ่งมี API การค้นหาภายในพร้อมทิศทางของเลย์เอาต์ที่เผยแพร่โดยปริยาย (Id9945)
องค์ประกอบย่อยของเลย์เอาต์และ LayoutModifier วัดได้ด้วยทิศทางของเลย์เอาต์ที่แตกต่างกัน (Ibd731)
เพิ่ม Modifier.zIndex() ใหม่เพื่อควบคุมลำดับการวาดขององค์ประกอบย่อยภายในเลย์เอาต์หลักเดียวกัน พร็อพเพอร์ตี้ระดับความสูงใน DrawLayerModifier เปลี่ยนชื่อเป็น shadowElevation และไม่ได้ควบคุมลำดับการวาดอีกต่อไป ลำดับของพารามิเตอร์สำหรับ DrawShadow มีการเปลี่ยนแปลง: ตอนนี้ระดับความสูงเป็นรายการแรก และรูปร่างคือรูปร่างที่สองที่มีค่าเริ่มต้นเป็น RectangleShape (I20150, b/152417501)
นำ onSizeChange และ onPositionChange ในเจ้าของแล้ว (I5c718)
เพิ่ม Constraints2 ซึ่งเป็นสำเนาของข้อจำกัดที่มี รองรับเฉพาะค่าที่จำกัด Int แทนที่จะเป็น IntPx IntPx จะถูกลบและจะถือว่าข้อจำกัดจำนวนเต็มทั้งหมด เช่น Android
- มีการเพิ่ม IntSize ด้วย ซึ่งท้ายที่สุดแล้วจะมาแทนที่ IntPxSize (I4b43a)
ทำให้การปรับความสอดคล้องเป็นค่าที่กำหนดเองได้ เพิ่มการจัดแนว 1D แล้ว (Ia0c05)
alignToSiblings ยอมรับ "วัดแล้ว" แทนที่จะเป็น "ตำแหน่งได้" (I5788D)
-
- เปลี่ยนชื่อ ScaleFit เป็น ContentScale แล้ว
- ย้าย ContentScale จาก UI-graphics เป็น UI-core แล้ว อยู่ในโมดูลเดียวกับการจัดแนว API
- เปลี่ยนชื่อ FillMaxDimension เป็น Crop แล้ว
- เปลี่ยนชื่อ FillMinDimension เป็น Fit แล้ว
- เปลี่ยนชื่อ Fit เป็น "Inside" เพื่อการจับคู่ที่ดียิ่งขึ้น
- เทียบเท่า ImageView.ScaleType
- เพิ่มเอกสารประกอบที่ระบุว่าการผสม Crop และ Alignment.Center ได้ผลลัพธ์ที่เหมือนกัน เป็น ImageView.ScaleType.CENTER_CROP และ Fit ที่ใช้กับ Alignment.Center จะได้ผลลัพธ์เหมือนกับ ImageView.ScaleType.FIT_CENTER ภายในที่ใช้ร่วมกับ Alignment.Center ทำได้ดีเท่ากัน ผลลัพธ์เป็น ImageView.ScaleType.CENTER_INSIDE
การรองรับ Rtl สำหรับตัวปรับแต่งการวาด (I0aaf9)
เปิดตัว API สำหรับการเพิ่มยอดดู Android ให้เพิ่มขึ้นจาก XML ดูรายละเอียดเพิ่มเติมที่การสาธิต ViewInCompose (I42916)
ปรับปรุง DrawModifier API:
- สร้างขอบเขตตัวรับสำหรับDraw() ContentDrawScope
- นำพารามิเตอร์ทั้งหมดในDraw() ออก
- DrawScope มีอินเทอร์เฟซเดียวกันกับ CanvasScope เดิม
- ContentDrawScope มีเมธอดDrawContent() (Ibaced, b/152919067)
เพิ่มPositionInParent และ boundsInParent สำหรับ LayoutCoordinates แล้ว (Icacdd, b/152735784)
DrawLayerModifier และDrawLayer() สร้างคลิปToBounds ตามค่าเริ่มต้นแล้ว และClipToOutline เป็น "เท็จ" (I0eb8b, b/152810850)
เปลี่ยนชื่อ Layoutผลลัพธ์ เป็น MeasureResult แล้ว (Id8c68)
เพิ่ม LayoutModifier2 ซึ่งเป็น API ใหม่สำหรับกำหนดตัวแก้ไขเลย์เอาต์ LayoutModifier ที่เลิกใช้งานแล้ว (If32ac)
เปลี่ยนตัวปรับแต่งและโอเปอเรเตอร์ด้วยฟังก์ชันส่วนขยายจากโรงงาน (I225e4)
เพิ่มพร็อพเพอร์ตี้ TranslationX/Y ลงในการสนับสนุนแล้ว ออฟเซ็ตรายการคำสั่งวาดสำหรับ เลเยอร์หนึ่งๆ วิธีนี้มีประโยชน์ในการย้ายเนื้อหา เพื่อตอบสนองต่อภาพเคลื่อนไหวหรือเหตุการณ์การแตะ (I8641C)
เพิ่มพารามิเตอร์ PivotX, PivotY แล้ว เป็น Layer API เพื่อรองรับการหมุนและการปรับขนาด รอบจุดใดจุดหนึ่งบนเลเยอร์ (Icf7c3)
เพิ่ม OnPositionedModifier และ OnChildPositionedModifier เพื่อแทนที่ OnPositioned และ OnChildPositioned Composable (I2ec8f)
เพิ่ม LayerModifier ซึ่งเป็นตัวแก้ไขที่ช่วยให้ การเพิ่ม RenderNode สำหรับเลย์เอาต์ ช่วยให้สามารถตั้ง การตัด ความทึบแสง การหมุน การปรับขนาด และแสงเงา การดำเนินการนี้จะแทนที่ RepaintBoundary (I7100d, b/150774014)
ทำให้ทิศทางของเลย์เอาต์ได้รับการเผยแพร่จากโหนดเลย์เอาต์ระดับบนสุดไปยังโหนดย่อย เพิ่มตัวแก้ไขทิศทางของเลย์เอาต์แล้ว (I3d955)
คอมโพเนนต์ของสแต็กรองรับทิศทางจากขวาไปซ้าย (Ic9e00)
การสนับสนุนเบื้องต้นสำหรับ Rtl ในเลย์เอาต์ของการเขียน (Ia5519)
เราได้รวมความหนาแน่นและ DensityScope เป็นอินเทอร์เฟซเดียว ตอนนี้คุณใช้ DensityAmbient.current แทนเงื่อนไขแอมเบียนท์Density() ได้แล้ว แทน withDensity(density) เพียงด้วย(density) (I11cb1)
เปลี่ยน LayoutCoordinates เพื่อสร้าง providedAlignmentLines แล้ว ตั้งค่าแทนแผนที่ และให้ LayoutCoordinates นำ get() อีกครั้งสำหรับการดึงข้อมูลค่า วิธีนี้ทำให้ สำหรับตัวปรับแต่งเพื่อแก้ไขค่าของชุดอย่างน้อยหนึ่งค่าโดยไม่มี เพื่อสร้างคอลเล็กชันใหม่สำหรับคีย์ตัวปรับแต่งแต่ละตัว (I0245a)
LayoutCoordinates ไม่มีพร็อพเพอร์ตี้ตำแหน่งอีกต่อไป คุณสมบัติตำแหน่งไม่สมเหตุสมผลเมื่อพิจารณา LayoutModifier การหมุน หรือการปรับขนาด นักพัฒนาซอฟต์แวร์ควรใช้ parentCoordinates แทน และ childToLocal() เพื่อคำนวณการแปลงจาก เลย์เอาต์ประสานงานกับอีกส่วน
LayoutCoordinates ใช้ IntPxSize สำหรับคุณสมบัติขนาดแทน PxSize เค้าโครงจะใช้ขนาดพิกเซลที่เป็นจำนวนเต็มสำหรับการจัดวาง ดังนั้นขนาดเค้าโครงทั้งหมด ควรใช้จำนวนเต็ม ไม่ใช่ค่าทศนิยม (I9367b)
การปรับปรุงแพลตฟอร์ม API ของข้อจำกัด (I0fd15)
สร้าง CanvasScope API ที่รวม วัตถุ Canvas เพื่อแสดงเป็นแบบไม่เก็บสถานะและมีการประกาศ วาดเขียน API มีการเปลี่ยนรูปแบบ ภายในขอบเขตตัวรับและขนาดของข้อมูล ยังกำหนดขอบเขตไว้เป็นขอบเขตที่เกี่ยวข้องด้วย ผู้บริโภคไม่จำเป็นต้องรักษาสถานะ Paint ของตนเองไว้ สำหรับการกำหนดค่าการดำเนินการวาด
- เพิ่ม CanvasScopeSample รวมถึง อัปเดตแอปเดโมให้รวมกราฟิกประกาศ เดโม (Ifd86d)
นำ MaskFilter API ที่ไม่ได้ใช้ออกแล้ว เนื่องจากมีการใช้งานที่จำกัดและไม่ได้รับการเพิ่มประสิทธิภาพ สำหรับการเร่งฮาร์ดแวร์ในกรณีการใช้งานส่วนใหญ่ (I54f76)
RectangleShape ย้ายจาก androidx.ui.foundation.shape.* ไปยัง androidx.ui.graphics* (Ia74d5, b/154507984)
แทนที่การใช้สีที่เป็นค่าว่างทั้งหมดใน API ด้วย ไม่ใช่ค่าว่าง และใช้ Color.Unset แทนค่า Null (Iabaa7)
แนะนำสี่เหลี่ยมผืนผ้าเพิ่มเติม พารามิเตอร์ไปยัง ImagePainter เพื่อรองรับ วาดส่วนย่อยของ ImageAsset ที่เกี่ยวข้อง (I0ea9e)
เพิ่ม "สีที่ไม่ได้ตั้งค่า" เพื่อแสดงค่าที่ยังไม่ได้ตั้งค่าโดยไม่มีค่า สีชกมวย (If901a)
เพิ่ม Canvas.rotate และ วิธีการขยายเวลาของ Canvas.scale เพื่อ ใช้พิกัด Pivot ที่เป็นตัวเลือกสำหรับ การเปลี่ยนรูปแบบ ค่าเริ่มต้นเหล่านี้ ที่มุมซ้ายบนของ การแปลแคนวาสปัจจุบัน
และย้าย Canvas.rotateRad ไปยัง วิธีการขยายเวลาเพื่อความสอดคล้อง (Ibaca6)
สร้าง PixelMap API เพื่อรองรับการใช้งานแล้ว การค้นหาข้อมูลพิกเซลจาก ImageAsset (I69ad6)
เปลี่ยนชื่อเป็นFrameworkRect/toFrameworkRectF เป็น toAndroidRect/toAndroidRectF เพื่อให้ตรงกับรูปแบบการตั้งชื่อ สำหรับการแปลงออบเจ็กต์ระหว่างการเขียนและ Android เฟรมเวิร์ก API ที่ สร้างขึ้นมาต่อยอดกัน มีการอัปเดตด้วย เอกสารเกี่ยวกับ API เหล่านี้ (I86337)
เพิ่ม VectorPainter API ใน แทนที่ API องค์ประกอบย่อยที่มีอยู่สำหรับ กราฟิกเวกเตอร์ ผลลัพธ์ขององค์ประกอบย่อย เป็นออบเจ็กต์ VectorPainter แทนที่จะเป็น DrawModifier เลิกใช้ DrawVector ก่อนหน้า Composable ดีกว่า VectorPainter
เปลี่ยนชื่อ API ของ Image(Painter) เป็น PaintBox(Painter) สร้าง Vector Composable ที่มีลักษณะการทำงานเหมือน รูปภาพ Composable ยกเว้น VectorAsset แทน ของ ImageAsset (I9af9a, b/149030271)
เปลี่ยนชื่อ "รูปภาพ" เป็น ImageAsset เพื่อให้แยกความแตกต่างระหว่างข้อมูลรูปภาพกับ Image Composable ที่กำลังจะเกิดขึ้นซึ่งใช้ในการเข้าร่วมในเลย์เอาต์และการวาดเนื้อหา _Body:สร้างเมธอดส่วนขยายใน android.graphics.Bitmap, Bitmap.asImageAsset() ในการสร้างอินสแตนซ์ของ ImageAsset มีประโยชน์สำหรับการรวม Android ดั้งเดิมเข้าด้วยกัน การพัฒนาแอปพลิเคชันด้วยเฟรมเวิร์กการเขียน (Id5bbd)
เพิ่ม TextDirection.Content (I48f36)
เพิ่มโอเปอเรเตอร์ TextComposition.plus (I0ad1a)
นำ
Force
ออกจากค่า enum ของ TextDirectionAlgorithm (Icc944) แล้วTextDirectionAlgorithm เปลี่ยนชื่อเป็น TextDirection (I75ce8)
ใช้ LongPressAndDrag สำหรับการเลือกฟิลด์ข้อความ (I17919)
เพิ่ม AnnotatedString.getStringAlias ที่แสดงคำอธิบายประกอบทั้งหมดภายในช่วง (I1fa00)
เปลี่ยนชื่อแพ็กเกจสำหรับ Locale และ LocaleList จาก androidx.ui.text ไปยัง androidx.ui.intl (I8132c)
เคอร์เซอร์ของ TextField มีภาพเคลื่อนไหวกะพริบ (Id10a7)
การเปลี่ยนแปลง API: AnnotatedString(builder: Builder) ถูกเปลี่ยนชื่อเป็น {5/}dString(builder: Builder) (Ia6377)
การเปลี่ยนแปลง API: AnnotatedString.Item เปลี่ยนชื่อเป็น AnnotatedString.Range (I2d44d)
เปลี่ยนชื่อ AnnotatedString.Builder.addAnnotationString เป็น addStringAnnotation (I5059e)
ตอนนี้คุณสามารถซ่อน/แสดงแป้นพิมพ์ของซอฟต์แวร์ได้โดยใช้ SoftwareKeyboardController ที่นำส่งโดย onTextInputStarted Callback (I8dc44, b/151860051)
เพิ่มโอเปอเรเตอร์บวกสำหรับรูปแบบ (ข้อความ/ย่อหน้า/Span) มอบสิทธิ์ไปที่ฟังก์ชันMerge() (Ia1add)
Fontweight.lerp ไม่สแนปอีกต่อไป โดยยังคงเป็นคลาสข้อมูลอยู่ (I521c2)
ขณะนี้ตัวสร้าง Fontweight เป็นแบบสาธารณะ ซึ่งไม่ใช่คลาสข้อมูลอีกต่อไป (Id6b1f)
เพิ่ม getLineStart, getLineEnd, getEllipsisOffset และ getEllipsisCount ลงใน TextLayoutผลลัพธ์ (Ibc801)
โมดูลข้อความ UI เปลี่ยนชื่อเป็น ui-text-core (I57dec)
นำคลาส Size ที่ไม่ได้ใช้ออกแล้ว เพราะมีคลาสขนาดซ้ำกัน ในโมดูล UI-geometry ที่ ที่กำลังรับชมอยู่ (I1B602)
เพิ่ม AdapterList ซึ่งเป็นคอมโพเนนต์รายการแบบเลื่อนที่ เขียนและจัดเลย์เอาต์รายการที่ปรากฏ ปัญหาที่ทราบในปัจจุบัน รวมว่าเป็นการแสดงแนวตั้งเท่านั้นและไม่ได้จัดการทั้งหมด เมื่อมีการเปลี่ยนแปลงกับองค์กรย่อยๆ (Ib351B)
เพิ่มระยะห่างจากขอบ เส้นขอบ รูปร่าง และพารามิเตอร์พื้นหลังลงใน Box (I05027, b/148147281)
แก้ไขข้อบกพร่อง
- onFocusChange Callback ในช่องข้อความที่เปลี่ยนชื่อเป็น onFocusChanged (Ida4a1)
- เลิกใช้งาน Vertical Scroller และ Horiziontalscroller แล้ว ใช้ ScrollableColumn และ ScrollableRow สำหรับประสบการณ์แบบบิวท์อินที่มีลักษณะการทำงานของคอลัมน์/แถวและพารามิเตอร์ หรือใช้ Modifier.verticalscroll และ Modifier.โมการเพิ่มแนวนอนในองค์ประกอบของคุณเอง ในทำนองเดียวกัน ScrollerPosition ถูกเลิกใช้งานเพื่อใช้ ScrollState แล้ว (I400ce, b/157225838, b/149460415, b/154105299)
runOnIdleCompose
เปลี่ยนชื่อเป็นrunOnIdle
(I83607)- มีการเปลี่ยนชื่อ API การทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น ทั้งหมด searchXYZ API ได้เปลี่ยนชื่อเป็น onNodeXYZ เปลี่ยนชื่อ API ของ doXYZ ทั้งหมดเป็น OperatXYZ (I7F164)
- ตอนนี้ UI เขียนสามารถเขียนภายใน ViewGroups ได้โดยไม่ต้องมีการเรียบเรียงใหม่ ดูตัวอย่างใน ViewInteropDemo (I9ab0b, b/160455080)
- เพิ่ม SortWith และ removeRange ไปยัง MutableVector (Icccf7)
- ใช้แฮนเดิลการเลือกการลากเพื่อเปลี่ยนการเลือกสำหรับ TextField (I27032)
- ลบคลาส Shader inline ที่ รวมคลาส NativeShader คาดหวัง เปลี่ยนชื่อ NativeShader เป็น Shader คลาส Shader inline ที่รวมไว้ได้ ไม่เพิ่มสิ่งใดก็ตามที่มีคุณค่าลงในแพลตฟอร์ม API และเป็นคลาสแบบอินไลน์ ดังนั้นโปรดใช้ NativeShader โดยตรง (I25e4d)
ตัวปรับแต่งจิตรกรแบบเปลี่ยนโครงสร้าง เพื่อไม่ให้มีการปรับขนาดตาม ข้อจำกัดและ ContentScale ที่ระบุ พารามิเตอร์ การใช้งานช่างทาสี คือการปรับขนาดเนื้อหาภาพวาด ด้วยตนเองตามขนาดที่ระบุ DrawScope ที่พวกเขากำลังวาดรูป
แก้ปัญหาแคชของ VectorPainter ปรับขนาดบิตแมปตามขนาดเริ่มต้นแล้ว แทนที่จะเป็นขนาดที่กำหนดเพื่อดึงข้อมูล
อัปเดต ImagePainter เพื่อปรับขนาด เนื้อหาแทนการใช้ PainterModifier เพื่อดำเนินการดังกล่าวในนามขององค์กร (I6ba90)
เพิ่มฟังก์ชัน withFrameNanos ระดับบนสุดสำหรับเวลาของภาพเคลื่อนไหว (Ie34c5)
เลิกใช้งานคำอธิบายประกอบ @ที่ไม่ได้ติดตามแล้ว แทนที่ด้วย @ComposableContract(tracked=false) (Id211e)
androidx.ui.foundation.TextFieldValue และ เลิกใช้งาน androidx.ui.input.EditorValue แล้ว ฟิลด์ข้อความ FilledTextField และ CoreTextField ที่ใช้ Composable ที่ใช้ ประเภทนั้นก็เลิกใช้งานแล้วด้วย โปรดใช้ androidx.ui.input.TextFieldValue แทน (I4066d, b/155211005)
แก้ปัญหาการป้อนเคอร์เซอร์ การมอบหมายงานจะก่อให้เกิดข้อขัดข้องหาก PointerInputFilter ถูกนำออกผ่าน และองค์ประกอบย่อยระหว่างการแยกส่วน ซึ่งตอนนี้ปัญหาได้รับการแก้ไขแล้ว (I1f48b, b/157998762)
แก้ปัญหาที่การส่งอินพุตตัวชี้จะ ทำให้การทำงานขัดข้องหาก PointerInputFilter ถูกนำออกผ่าน และองค์ประกอบย่อยระหว่างการแยกส่วน ซึ่งตอนนี้ปัญหาได้รับการแก้ไขแล้ว (Iab398, b/157998762)
คลาสรัศมีแบบปรับโครงสร้างใหม่ให้เป็น ในบรรทัด นำการสร้างโฆษณาที่แสดงร่วมออกแล้ว เมธอดที่ใช้กับตัวสร้างฟังก์ชัน พร้อมด้วยพารามิเตอร์เริ่มต้นให้มีรัศมี ตามแกน y ให้ตรงกับค่าของ พารามิเตอร์รัศมีแกน x
อัปเดต DrawScope.drawRoundRect เพื่อใช้งาน พารามิเตอร์รัศมีเดียว แทนที่จะเป็นพารามิเตอร์แยกกัน 2 ตัว ค่าจำนวนลอยตัวของรัศมีตามด้าน x และ y แกน (I46d1b)
การ Compose ที่เรียบเรียงใหม่จะไม่ใช่สิ่งที่มีประโยชน์อีกต่อไป การจัดองค์ประกอบใหม่ส่วนใหญ่ควรเป็นผลมาจากการกำหนด MutableState สำหรับสิ่งอื่นนอกเหนือจากนี้ ขอแนะนำให้คุณใช้ฟังก์ชัน
invalidate
เพื่อทริกเกอร์การจัดองค์ประกอบขอบเขตปัจจุบันใหม่ (Ifc992)แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (Iede0b)
เปลี่ยนกลยุทธ์การสร้างโค้ดของคอมไพเลอร์ของ Compose ก่อนการเปลี่ยนแปลง คอมไพเลอร์การเขียนจะเปลี่ยนรูปแบบการเรียกไปยังฟังก์ชันที่ประกอบกันได้ จากการเปลี่ยนแปลงนี้ เราจึงเปลี่ยนรูปแบบการทำงานของฟังก์ชัน Composable และไม่เปลี่ยนแปลง Callsite (ส่วนใหญ่)
ซึ่งหมายความว่าตรรกะที่สื่อสารกับรันไทม์การเขียนส่วนใหญ่จะเกิดขึ้นที่จุดเริ่มต้นของส่วนเนื้อหาของฟังก์ชัน ไม่ใช่ที่ Callsite
การเปลี่ยนแปลงนี้ควรเป็นการเปลี่ยนแปลงที่เข้ากันได้กับต้นทางสำหรับการใช้งานการเขียนทั้งหมด ผู้ใช้การเขียนส่วนใหญ่ไม่ควรต้องอัปเดตโค้ดใดๆ จากการเปลี่ยนแปลงนี้
เพื่อที่จะรองรับงานนี้ ลายเซ็น JVM ของฟังก์ชัน Composable ทั้งหมดมีการเปลี่ยนแปลง ฟังก์ชัน Composable ที่ยอมรับพารามิเตอร์เดียวจะเปลี่ยนเป็นฟังก์ชันที่รับพารามิเตอร์ 3 รายการ พารามิเตอร์เพิ่มเติมคือ Composer ซึ่งเป็นจำนวนเต็ม "key" จำนวนเต็มบิตมาสก์ที่ใช้เผยแพร่ข้อมูลเมตาผ่านการเรียกใช้
ขณะนี้ Compose จะเปลี่ยนอาร์กิวเมนต์เริ่มต้นเป็นฟังก์ชัน Composable ด้วย โดยไม่เพิ่มภาระงานสังเคราะห์ที่เกินจากปกติของฟังก์ชันเอง ดังนั้นการเปลี่ยนแปลงนี้จะส่งผลให้มีการกำหนดฟังก์ชันน้อยลง
การเปลี่ยนแปลงพฤติกรรมโดยเจตนาที่ทราบซึ่งเกิดจากสิ่งต่อไปนี้
- การโทรบางครั้งจะข้ามจากที่ที่ไม่เคยทำมาก่อน
- นิพจน์ที่ประกอบกันได้ในนิพจน์อาร์กิวเมนต์เริ่มต้นได้รับการติดตามและจัดการอย่างถูกต้อง
งานนี้มีการเพิ่มประสิทธิภาพบางอย่าง: 1. ผลลัพธ์ของการเปรียบเทียบพารามิเตอร์จะเผยแพร่ผ่านการเรียกใช้กราฟไปยังฟังก์ชันที่ประกอบกันได้อื่นๆ ซึ่งจะส่งผลให้การเปรียบเทียบน้อยลงขณะรันไทม์ ลดขนาดตารางช่อง รวมถึงการข้ามฟังก์ชันที่ประกอบกันได้ซึ่งก่อนหน้านี้ไม่ได้ข้ามได้มากขึ้น 2. ระบบจะไม่เปรียบเทียบหรือจัดเก็บพารามิเตอร์ที่พิจารณาแล้วว่าเป็น "คงที่" ในเวลาคอมไพล์อีกต่อไป ซึ่งจะลดจำนวนการเปรียบเทียบและลดขนาดตารางช่อง 3. ระบบจะใช้โครงสร้างการควบคุมโฟลว์ของฟังก์ชันเพื่อลดจำนวนกลุ่มที่สร้างขึ้น การดำเนินการนี้จะลดขนาดตารางของช่องและทำให้งานสำหรับรันไทม์ลดลงด้วย 4. พารามิเตอร์การจ่ายงานและตัวรับสัญญาณที่ไม่ได้ใช้กับฟังก์ชันจะไม่รวมอยู่ในการพิจารณาความสามารถในการข้ามของฟังก์ชันหากไม่ได้ใช้ภายในส่วนเนื้อหาของฟังก์ชัน
การเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นส่วนใหญ่เกี่ยวข้องกับ API ที่คอมไพเลอร์กำหนดเป้าหมายโดยตรง และการใช้งานการเขียนโดยทั่วไปจะไม่ได้รับผลกระทบ ดังนี้ 1. Composer::startExpr ถูกนำออกแล้ว 2. นำ Composer::endExpr ออกแล้ว 3. Composer::call เลิกใช้งานแล้ว 4. นำไฟล์ที่ไม่ใช่ภาษาวาร์อาร์เกินโหลดของ
key
ออกแล้ว โปรดใช้เวอร์ชันvararg
นับจากนี้ไป 5. เลิกใช้งานคำอธิบายประกอบ Pivotal แล้ว โปรดใช้key
เป็นการแทน 6. เปลี่ยนแปลง ScopeUpdateScope::updateScope 7. startableFunction และRestartableFunctionN แล้วเพื่อรวมพารามิเตอร์เวลาการคอมไพล์เพิ่มเติม (I60756, b/143464846)นำตัวปรับแต่ง LayoutAlign ที่เลิกใช้งานแล้วออก (I10877)
นำ RepaintBoundary ออกเพื่อใช้ DrawLayerModifier (I00aa4) แทน
ตอนนี้ปุ่ม, FloodActionButton และ Clickable ได้จะมีพารามิเตอร์
enabled
แยกต่างหากแล้ว มีการเปลี่ยนชื่อหรือจัดเรียงพารามิเตอร์บางรายการบนปุ่ม (I54b5a)แทนที่ ButtonStyle ด้วยฟังก์ชันที่แตกต่างกันและข้อความ (สตริง) ที่ถูกนำออกมากเกินไป ดูตัวอย่างที่อัปเดตสำหรับข้อมูลการใช้งาน (If63ab, b/146478620, b/146482131)
การเปลี่ยนแปลงที่ส่งผลกับ Environments API ดูรายละเอียดในบันทึกและเอกสาร
Ambient<T>
(I4c7ee, b/143769776)เปลี่ยนลักษณะการทํางานของ TextDirection เริ่มต้นให้กําหนดแล้ว ตาม LayoutDirection เช่น หาก LayoutDirection เป็น RTL ให้ใช้ค่าเริ่มต้น TextDirection จะเป็นแบบ RTL ก่อนหน้านี้คือ TextDirection.ContentOrLtr/Rtl (I4e803)
แก้ไขข้อบกพร่อง: เมื่อน้ำหนักและรูปแบบของแบบอักษรฝังอยู่ใน AnnotatedString ข้อความจะไม่แสดงอย่างถูกต้อง (I77a9d)
เพิ่มพารามิเตอร์ที่ใช้กันโดยทั่วไปลงใน Text() หากคุณกำลังสร้างรูปแบบข้อความในตัวเครื่องเพื่อส่งผ่านพารามิเตอร์เหล่านี้จำนวนเล็กน้อย เช่น Text(style = TextStyle(textAlign = TextAlign.Center)) ตอนนี้คุณสามารถระบุพารามิเตอร์ได้โดยตรง เช่น Text(textAlign = TextAlign.Center) (I82768)
โมดูลข้อความ UI-android เปลี่ยนชื่อเป็น ui-text-android (I68cbe)