Compose Foundation

เขียนแอปพลิเคชัน Jetpack Compose ด้วยองค์ประกอบพร้อมใช้และต่อยอดจากรากฐานเพื่อสร้างชิ้นงานของระบบการออกแบบของคุณเอง
อัปเดตล่าสุด รุ่นที่เสถียร ตัวเลือกถอนการอ้างสิทธิ์ รุ่นเบต้า รุ่นอัลฟ่า
4 กันยายน 2024 1.7.0 - - 1.8.0-alpha01

โครงสร้าง

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

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

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

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

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

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

ดึงดูด

dependencies {
    implementation "androidx.compose.foundation:foundation:1.7.0"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:1.7.0")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

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

ความคิดเห็น

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

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

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

เวอร์ชัน 1.8

เวอร์ชัน 1.8.0-alpha01

4 กันยายน 2024

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

เวอร์ชัน 1.7

เวอร์ชัน 1.7.0

4 กันยายน 2024

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

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

  • ประสิทธิภาพของ Modifier.clickable, Modifier.focusable, Modifier.indication, Modifier.scrollable และ Modifier.draggable ดีขึ้นอย่างมาก การเปลี่ยนแปลง API ต่อไปนี้เกิดขึ้นเพิ่มเติมจากการเปลี่ยนแปลงภายในด้วยความพยายามนี้
    • เพิ่ม IndicationNodeFactory ของ Indation API ใหม่แล้ว การดําเนินการนี้ทําให้การใช้งานการบ่งชี้ที่มีประสิทธิภาพมากขึ้นเมื่อเทียบกับ API ของ rememberUpdatedInstance ก่อนหน้านี้ (ปัจจุบันเลิกใช้งานแล้ว) สำหรับข้อมูลการย้ายข้อมูล โปรดดู developer.android.com
    • clickable / combinedClickable / selectable / toggleable ยอมรับพารามิเตอร์ MutableInteractionSource ที่เป็นค่าว่างแล้ว หากไม่มีค่า และการบ่งชี้ที่ระบุเป็น IndicationNodeFactory ระบบจะสามารถสร้างตัวบ่งชี้แบบ Lazy Loading ได้เมื่อจำเป็นเท่านั้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพ หากคุณไม่ได้รอกและใช้ MutableInteractionSource เราขอแนะนำให้ส่ง null แทนการส่งผ่าน remember { MutableInteractionSource() }
    • Indication#rememberUpdatedInstance เลิกใช้งานแล้ว เนื่องจากมีบทลงโทษด้านประสิทธิภาพสูงที่หลีกเลี่ยงไม่ได้และขัดขวางการเพิ่มประสิทธิภาพอื่นๆ คุณควรใช้ IndicationNodeFactory API ใหม่แทน
  • BasicTextField ที่ใช้ TextFieldState มีความเสถียรแล้วในตอนนี้ และเราขอแนะนำให้ไซต์การโทรทั้งหมดเริ่มย้ายข้อมูลจาก BasicTextField(value, onValueChange) ไปยัง BasicTextField(TextFieldState)
  • เลิกใช้งาน ClickableText แล้ว หากต้องการเพิ่มลิงก์ที่คลิกได้ลงในข้อความ ให้ใช้ BasicText พร้อมคำอธิบายประกอบใหม่ของ LinkAnnotation ใน AnnotatedString LinkAnnotation อนุญาตให้มีการจัดรูปแบบที่กำหนดเองตามสถานะลิงก์ (เช่น โฟกัสอยู่ วางเมาส์เหนือ)
  • ขอแนะนำ ContextualFlowRow และ Enhanced FlowRow/Column พร้อม MaxLines และ Overflow เรามีความยินดีที่จะประกาศเกี่ยวกับการปรับปรุง FlowRow และ FlowColumn เวอร์ชันทดลอง โดยตอนนี้มี maxLines และการสนับสนุนเพิ่มเติม ควบคู่กับการเปิดตัว ContextualFlowRow และ ContextualFlowColumn การอัปเดตนี้ออกแบบมาเพื่อมอบองค์ประกอบที่มีประสิทธิภาพสูงสุด โดย ContextualFlow* เหมาะสำหรับรายการจำนวนมากที่ใช้การกำหนดค่า maxLines ขนาดเล็กและ +N แบบไดนามิกจะเห็นปุ่มมากขึ้น และ FlowRow และ FlowColumn เหมาะสำหรับรายการที่มีจำนวนไม่มาก แต่ไม่เกิน 100 รายการ สำคัญ: หากต้องการคงลักษณะการทำงานที่มีอยู่ใน FlowRow หรือ FlowColumn ซึ่งมีการเขียนข้อความทั้งหมด ไม่ว่ารายการเหล่านั้นจะพอดีกับค่าสูงสุดของแกนไขว้หรือไม่ ให้ตั้งค่ารายการเพิ่มเติมเป็น FlowRowOverflow.Visible หรือ FlowColumnOverflow.Visible ในระหว่างการเริ่มต้น สำรวจ ContextualFlowRowSample และ FlowRowSample เพื่อดูตัวอย่างการใช้งานฟีเจอร์ใหม่เหล่านี้ (Ib9135, b/293577082)
  • เพิ่มการรองรับลักษณะที่ปรากฏของรายการและภาพเคลื่อนไหวจากการหายไปใน LazyColumn และ LazyRow แล้ว ก่อนหน้านี้ คุณสามารถเพิ่มตัวแก้ไข Modifier.animateItemPlacement() เพื่อรองรับภาพเคลื่อนไหวตำแหน่งโฆษณา (การจัดเรียงใหม่) เราเลิกใช้งานตัวแก้ไขนี้และเปิดตัวตัวแก้ไขใหม่ที่ไม่ใช่เวอร์ชันทดลองซึ่งมีชื่อว่า Modifier.animateItem() ซึ่งช่วยให้คุณรองรับภาพเคลื่อนไหวทั้ง 3 ประเภท ได้แก่ ลักษณะที่ปรากฏ (เฟดเข้า) การหายไป (จางลง) และการจัดเรียงใหม่ (I2d7f7, b/150812265)
  • รองรับเวอร์ชันทดลองสำหรับภาพหน้าจอแบบยาวในคอนเทนเนอร์ Compose ของคอนเทนเนอร์โดยใช้ Android API อย่างเป็นทางการ (ScrollCaptureCallback)
  • UserInput และ SideEffect จะมาแทนที่แหล่งที่มาการลากและวาง NestedScroll เพื่อรองรับคำจำกัดความแบบขยายของแหล่งที่มาเหล่านี้ ซึ่งตอนนี้จะมีภาพเคลื่อนไหว (เอฟเฟกต์ด้านข้าง) และล้อเลื่อนของเมาส์ (UserInput)
  • ตอนนี้เราทำเครื่องหมายคำขอที่ดึงข้อมูลล่วงหน้า LazyLayout รายการเป็น "ด่วน" ได้ ซึ่งหมายความว่าเราคาดว่าจะต้องใช้รายการนี้ในเฟรมถัดไปและไม่ต้องสนใจงบประมาณเฟรมเพื่อให้ทำงานล่วงหน้าได้มากขึ้น (Id513f)
  • รองรับฟีเจอร์การเขียนด้วยลายมือโดยใช้สไตลัสในอุปกรณ์หลังจาก Android U (I002e4)
  • API ต่างๆ ได้รับการโปรโมตให้มีความเสถียร
    • เพจเจอร์ การสแนป ส่วนแทรกหน้าต่าง

เวอร์ชัน 1.7.0-rc01

21 สิงหาคม 2024

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

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

  • แก้ไขการถดถอยซึ่งเกิดข้อขัดข้องเมื่อองค์ประกอบใดก็ตามโฟกัสอยู่ภายในองค์ประกอบระดับบนสุดที่โฟกัสได้ (หรือคลิกได้) และปิดใช้ได้ (b/317561689)

เวอร์ชัน 1.7.0-beta07

7 สิงหาคม 2024

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

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

  • ตอนนี้ฟังก์ชัน SemanticsNodeInteraction ที่เกี่ยวข้องกับการป้อนข้อความ performTextReplacement, performTextInput และ performTextClearance จะแสดงข้อผิดพลาดเกี่ยวกับการยืนยันเมื่อเรียกใช้ฟังก์ชัน TextFields แบบอ่านอย่างเดียว (I4ae8f)
  • แก้ไขข้อบกพร่องของภาพในไฮเปอร์ลิงก์ (I23311)
  • แก้ไขแป้นกดร่วม contentReceiver ที่ไม่ทำงานกับ IME บางรายการ
  • การสร้างอัตราความเร็ว: ป้องกันการเผยแพร่ค่า NaN ใน Compose UI และ Foundation

เวอร์ชัน 1.7.0-beta06

24 กรกฎาคม 2024

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

เวอร์ชัน 1.7.0-beta05

10 กรกฎาคม 2024

ปล่อย androidx.compose.foundation:foundation-*:1.7.0-beta05 แล้ว เวอร์ชัน 1.7.0-beta05 มีสัญญาผูกมัดเหล่านี้

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

  • แก้ไขการรักษาค่า Nan ใน SnapFlingBehavior และ เพจเจอร์

เวอร์ชัน 1.7.0-beta04

26 มิถุนายน 2024

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

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

  • หลีกเลี่ยงข้อขัดข้องเมื่อวัดบรรทัดข้อความขนาดใหญ่มาก (เช่น 10,000 อักขระ) (8157ab)
  • แก้ไขการวัดข้อความขนาดใหญ่มากที่ทำให้เกิดข้อขัดข้องใน BasicTextField ใหม่ (6b7575)
  • เปลี่ยนกลับการเปลี่ยนแปลงลักษณะการทำงานในการวัดแถว/คอลัมน์ที่ทำให้การใช้ข้อความทำงานผิดในบางสถานการณ์ (69e8ba)

เวอร์ชัน 1.7.0-beta03

12 มิถุนายน 2024

ปล่อย androidx.compose.foundation:foundation-*:1.7.0-beta03 แล้ว เวอร์ชัน 1.7.0-beta03 มีสัญญาผูกมัดเหล่านี้

เวอร์ชัน 1.7.0-beta02

29 พฤษภาคม 2024

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

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

  • เพิ่ม API ทดลองสำหรับการกำหนดค่าพฤติกรรมการดึงข้อมูลล่วงหน้าของ LazyGrids ที่คล้ายกับ API ทดลองที่มีอยู่สำหรับ LazyLists ซึ่งรวมถึงการรองรับการดึงข้อมูลรายการล่วงหน้าใน LazyGrids ที่ฝังไว้ ค่าเริ่มต้นของการใช้งานเหมือนกับ LazyListPrefetchStrategy คือให้ดึงข้อมูลรายการที่ฝัง 2 รายการแรกของแต่ละตารางกริดล่วงหน้า แต่จะกำหนดค่าได้โดย API ของ LazyGridPrefetchStrategy(nestedPrefetchItemCount) และ LazyListPrefetchStrategy#onNestedPrefetch ใหม่ (I591c4)
  • เปลี่ยนชื่อ SemanticsProperties.Editable เป็น IsEditable และเปลี่ยน SemanticsPropertyReceiver.editable เป็น ค่า isEditable ตอนนี้พร็อพเพอร์ตี้นี้จะเป็นบูลีนและช่องข้อความจะระบุเสมอ (I8acd8)
  • ย้ายค่าเริ่มต้น basicMarquee ค่าไปยังออบเจ็กต์ MarqueeDefaults แล้ว (I12ff6)
  • เปลี่ยนชื่อพารามิเตอร์ delayMillis basicMarquee รายการเป็น repeatDelayMillis แล้ว (I12ff6)
  • อัปเดต API สำหรับการจัดรูปแบบลิงก์: ย้าย TextLinkStyles ไปที่ TextStyle และนำ TextDefaults ออกจากเนื้อหา (I5477b)

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

  • เปลี่ยนชื่อ LayoutCoordinates.introducesFrameOfReference เป็น LayoutCoordinates.introducesMotionFrameOfReference แล้วเพื่อให้สื่อถึงวัตถุประสงค์ได้ดียิ่งขึ้น เปลี่ยนชื่อฟังก์ชันที่เกี่ยวข้องเพื่อคำนวณพิกัดตามค่าสถานะนั้น (I3a330)
  • นำ "ค่าเริ่มต้น" ออกแล้ว จากพร็อพเพอร์ตี้ MarqueeDefaults (I1d8a0)
  • นำ "Marquee" ออกแล้ว จากพร็อพเพอร์ตี้ MarqueeDefaults รายการ (Iad4f4)
  • นำ TextLinkStyles ออกจากชั้นเรียน TextStyle แล้ว แต่ TextLinkStyles เป็นส่วนหนึ่งของตัวสร้าง LinkAnntation และเมธอด AnnotatedString.fromHtml (I90b2b)
  • แก้ไขข้อบกพร่องที่เพจเจอร์จะสแนปเมื่อเลื่อนไปยังเส้นแบ่งขณะอยู่ในเส้นแบ่งแล้ว (I9f373, b/339171222)
  • ตอนนี้ BTF2 มีท่าทางสัมผัสการเลือกเมาส์ที่ถูกต้อง (Ibe8c6)

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

  • ส่ง "สร้างประเภทเนื้อหาการคำนวณเวลาเขียน/วัดโดยดึงข้อมูลล่วงหน้าเพื่อปรับปรุงความแม่นยำ" อีกครั้ง (Iea622)
  • กำหนดประเภทเนื้อหาคำนวณเวลาเขียน/วัดโดยดึงข้อมูลล่วงหน้าเพื่อปรับปรุงความแม่นยำ (Ibccb1)
  • ทำให้ตัวแก้ไข WindowInsetsPadding พร้อมใช้งานจากชุดแหล่งที่มาทั่วไป (I070b2)

เวอร์ชัน 1.7.0-beta01

14 พฤษภาคม 2024

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

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

  • เพิ่มพร็อพเพอร์ตี้ KeyboardOptions.shouldShowKeyboardOnFocus กลับมาเนื่องจากเลิกใช้งานไปแล้วเพื่อความเข้ากันได้ของไบนารี (I15cfe)
  • ตอนนี้ Modifier.anchoredDraggable จะเปลี่ยนกลับเดลต้าการลากโดยค่าเริ่มต้นสำหรับคอมโพเนนต์ที่มีการวางแนวแบบแนวนอนเมื่อใช้ในเลย์เอาต์ RTL (I3c6d9)
  • AnnotatedString.hasEqualsAnnotations เปลี่ยนชื่อเป็น hasEqualAnnotations แล้ว (I685c0)
  • อัปเดต API เพื่อรับลิงก์ธีม Material ในข้อความ กล่าวโดยเจาะจงคือ ได้นำเมธอดออกจาก TextDefaults สำหรับการสร้าง LinkAnnotations ตามธีมและแยกวิเคราะห์ HTML ที่มีลิงก์ที่มีธีม แต่ได้เพิ่มคลาส TextLinkStyles ที่อนุญาตให้จัดรูปแบบลิงก์เป็นพารามิเตอร์ไปยัง Text Composable แทน (I31B93)
  • แทนที่ onDragStarted และ onDragStopped ด้วย Callback ที่มีการระงับแล้ว (I59de8)

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

  • แก้ไขข้อบกพร่องที่เพจเจอร์ขัดข้องเมื่อ contentPadding ใหญ่กว่าข้อจำกัดขาเข้า ตอนนี้เพจเจอร์บังคับค่าลบที่แสดงผลจาก PageSize เป็น 0 (Iba5d8, b/314008560)

เวอร์ชัน 1.7.0-alpha08

1 พฤษภาคม 2024

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

ฟีเจอร์ใหม่

  • เพิ่มเมนูตามบริบทแบบคลิกขวาใน BasicTextField และ SelectionContainer พร้อมรายการสำหรับตัด คัดลอก วาง และเลือกการดำเนินการทั้งหมด (If8c93, Ia2b49, I6f268)

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

  • ตอนนี้เราทำเครื่องหมายคำขอที่ดึงข้อมูลล่วงหน้า LazyLayout รายการเป็น "ด่วน" ได้ ซึ่งหมายความว่าเราคาดว่าจะต้องใช้รายการนี้ในเฟรมถัดไปและไม่ต้องสนใจงบประมาณเฟรมเพื่อให้ทำงานล่วงหน้าได้มากขึ้น (Id513f)
  • เปลี่ยนชื่อ isPositionedByParentWithDirectManipulation เป็น introducesFrameOfReference แล้ว โปรดทราบว่าตอนนี้การตั้งค่าจะเกิดการย้อนกลับ ซึ่งหมายความว่าโดยค่าเริ่มต้น LayoutCoordinates ส่วนใหญ่จะใช้กรอบอ้างอิง และเมื่ออยู่ภายใต้การควบคุมโดยตรง พร็อพเพอร์ตี้จะเป็นเท็จเท่านั้น หากต้องการค้นหาตำแหน่งที่มีเฉพาะรายการที่มีกรอบอ้างอิง ให้ใช้ positionInLocalFrameOfReference(...) หรือ positionInLocalLookaheadFrameOfReference จาก LookaheadScope (Ifc5f7)
  • เปลี่ยนชื่อ onClicked เป็น onClick ใน LinkInteractionListener (Iaa35c)
  • เปลี่ยนการดำเนินการ lambda สำหรับ getScrollViewportLength ตามความคิดเห็นเกี่ยวกับ API ของสภา (Ibc74a)
  • เปลี่ยนชื่อ API การมอบสิทธิ์การเขียนด้วยลายมือโดยใช้สไตลัส (Ica45f, b/327271923)
  • เปลี่ยนชื่อ TextInclusionStrategy.isInside เป็น isIncluded ทำให้ประเภทผลลัพธ์ Paragraph/MultiParagraph#getRangeForRect() เป็นค่าว่างไม่ได้ (I51F26)

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

  • เพิ่ม "เลือกทั้งหมด" แล้ว เมนูตามบริบทของข้อความทั้งหมดใน SelectionContainer (Ib750e, b/240143283)
  • แก้ไขการจับภาพหน้าจอแบบยาวสำหรับคอนเทนเนอร์แบบเลื่อนด้วย reverseScrolling=true (I7c59C)
  • แก้ไขปัญหาที่ currentValue ของ AnchoredDraggableState จะเปลี่ยนแปลงเมื่อเข้าใกล้ขอบเขตของรัฐ (Iea30b, b/333846848)

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

  • เปลี่ยนชื่อ PrefetchExecutor แล้ว -> PrefetchScheduler เพื่อให้สอดคล้องกับความรับผิดชอบมากขึ้น (Ib9154)
  • เพิ่มการรองรับสำหรับการดึงข้อมูลรายการล่วงหน้าใน LazyLists ที่ฝังไว้ (เช่น LazyColumn ที่แสดงผล LazyRows ที่ฝัง) การเปลี่ยนแปลงนี้คาดว่าจะช่วยลดการลดลงของเฟรมระหว่างการเลื่อนสำหรับ LazyLists เหล่านี้ ค่าเริ่มต้นของการใช้งานคือให้ดึงข้อมูลรายการที่ฝัง 2 รายการแรกไว้ล่วงหน้า อย่างไรก็ตาม API ของ LazyLayoutPrefetchStrategy(nestedPrefetchItemCount) และ LazyListPrefetchStrategy#onNestedPrefetch ใหม่จะควบคุมลักษณะการทำงานนี้ได้ (I51952)

เวอร์ชัน 1.7.0-alpha07

17 เมษายน 2024

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

ฟีเจอร์ใหม่

  • เพิ่มออบเจ็กต์ TextDefaults ที่มีวิธีสร้าง LinkAnnotation และแยกวิเคราะห์สตริงที่ติดแท็ก HTML ซึ่งใช้ MaterialTheme กับลิงก์ (I98532, b/139312671)
  • เพิ่มการรองรับลักษณะที่ปรากฏของรายการและภาพเคลื่อนไหวจากการหายไปใน LazyVerticalGrid และ LazyHorizontalGrid แล้ว ก่อนหน้านี้ คุณสามารถเพิ่มตัวแก้ไข Modifier.animateItemPlacement() เพื่อรองรับภาพเคลื่อนไหวตำแหน่งโฆษณา (การจัดเรียงใหม่) เราเลิกใช้งานตัวแก้ไขนี้และเปิดตัวตัวแก้ไขใหม่ที่ไม่ใช่เวอร์ชันทดลองซึ่งมีชื่อว่า Modifier.animateItem() ซึ่งช่วยให้คุณรองรับภาพเคลื่อนไหวทั้ง 3 ประเภท ได้แก่ ลักษณะที่ปรากฏ (เฟดเข้า) การหายไป (จางลง) และการจัดเรียงใหม่ (Ib7d12, b/330510929)
  • เพิ่มการรองรับลักษณะที่ปรากฏของรายการและภาพเคลื่อนไหวจากการหายไปใน LazyVerticalStaggeredGrid และ LazyHorizontalStaggeredGrid แล้ว ก่อนหน้านี้ คุณสามารถเพิ่มตัวแก้ไข Modifier.animateItemPlacement() เพื่อรองรับภาพเคลื่อนไหวตำแหน่งโฆษณา (การจัดเรียงใหม่) เราเลิกใช้งานตัวแก้ไขนี้และเปิดตัวตัวแก้ไขใหม่ที่ไม่ใช่เวอร์ชันทดลองซึ่งมีชื่อว่า Modifier.animateItem() ซึ่งช่วยให้คุณรองรับภาพเคลื่อนไหวทั้ง 3 ประเภท ได้แก่ ลักษณะที่ปรากฏ (เฟดเข้า) การหายไป (จางลง) และการจัดเรียงใหม่ (I69bc9, b/330511290)

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

  • เพิ่ม ContextMenuColors และ LocalContextMenuTheme ProvidableCompositionLocal ที่เชื่อมโยง สีของเมนูตามบริบทในช่องข้อความและข้อความที่เลือกได้สามารถแก้ไขได้ด้วยการระบุองค์ประกอบที่มีอยู่ในเครื่อง (Ifa154)
  • ลิงก์ข้อความได้รับตัวเลือกการจัดรูปแบบสถานะที่กดนอกเหนือจากการจัดรูปแบบปกติ วางเมาส์เหนือ และโฟกัส (I5f864, b/139312671)
  • แนะนำ ViewConfiguration.HandwritingGestureLineMargin สำหรับท่าทางสัมผัสการเขียนด้วยลายมือ รองรับท่าทางสัมผัสการเขียนด้วยลายมือสำหรับBasicTextField (Ie6e13, b/325660505)
  • นำ DelegatableNode.scrollIntoView สำหรับรุ่น 1.7 ออกแล้วเนื่องจากเราไม่มีเวลาในการแก้การสั่นไหวส่วนที่เหลือของแพลตฟอร์ม API ที่เกี่ยวข้องให้เสร็จสิ้น ฟังก์ชันนี้จะเปิดตัวอีกครั้งใน 1.8 (I6cf61, b/333421581, b/332900232)
  • เมื่อค้นหาพิกัดของเลย์เอาต์ ตอนนี้คุณสามารถใช้อาร์กิวเมนต์ excludeDirectManipulationOffset เพื่อยกเว้นออฟเซ็ตที่เลย์เอาต์ระดับบนสุดซึ่งวางองค์ประกอบระดับล่างโดยใช้ Placeable.PlacementScope.withDirectManipulationPlacement ได้แล้ว ในทำนองเดียวกัน เลย์เอาต์ที่เปลี่ยนตำแหน่งรายการย่อยบ่อยๆ อาจวางเลย์เอาต์โดยใช้ withDirectManipulationPlacement (เช่น เลื่อน ซึ่งมีการใช้งานโดยค่าเริ่มต้น) วิธีนี้จะช่วยให้ภาพเคลื่อนไหวที่อิงตาม approachLayout ใช้งานง่ายขึ้น ทำให้มีโอกาสแยกความแตกต่างของออฟเซ็ตที่จะสร้างภาพเคลื่อนไหว และสิ่งที่จะนำไปใช้โดยตรงเมื่อตัดสินใจเลือกภาพเคลื่อนไหว (I60ec7)
  • แนะนำ requestScrollToItem ในราคา LazyStaggeredGrid สำหรับ Measure Pass แต่ละรายการ ตอนนี้ลูกค้าสามารถเลือกไม่ใช้การรักษาดัชนีตามคีย์โดยโทรหา requestScrollToItem การดําเนินการนี้จะไม่เปลี่ยนแปลงลักษณะการทำงานที่มีอยู่แต่อย่างใด เว้นแต่มีการเรียก requestScrollToItem (I63983)
  • แนะนำ requestScrollToPage ในเพจเจอร์ สำหรับ Measure Pass แต่ละรายการ ตอนนี้ลูกค้าสามารถเลือกไม่ใช้การรักษาดัชนีตามคีย์โดยโทรหา requestScrollToPage การดําเนินการนี้จะไม่เปลี่ยนแปลงลักษณะการทำงานที่มีอยู่แต่อย่างใด เว้นแต่มีการเรียก requestScrollToPage (Ic4213)
  • แนะนำ requestScrollToItem สำหรับ LazyGrids สำหรับ Measure Pass แต่ละรายการ ตอนนี้ลูกค้าสามารถเลือกไม่ใช้การรักษาดัชนีตามคีย์โดยโทรหา requestScrollToItem การดําเนินการนี้จะไม่เปลี่ยนแปลงลักษณะการทำงานที่มีอยู่แต่อย่างใด เว้นแต่มีการเรียก requestScrollToItem (I0a7a0)
  • ทำเครื่องหมาย ClickableText ว่าเลิกใช้งานแล้ว หากต้องการเพิ่มลิงก์ไปยังข้อความ ให้สร้าง AnnotatedString ที่มี LinkAnnotation ที่สอดคล้องกับลิงก์ของคุณ แล้วส่ง AnnotatedString นี้ไปยัง Text ที่เขียนด้วย Compose (I34d4b, b/323346994)
  • UrlAnnotation เลิกใช้งานแล้ว โปรดใช้ LinkAnnotation.Url แทน หากคุณใช้ธีม Material ให้ใช้ออบเจ็กต์ TextDefaults เพื่อสร้างคำอธิบายประกอบที่มีการใช้ธีม Material (I8d180, b/323346545)
  • String.parseAsHtml เปลี่ยนชื่อเป็น AnnotatedString.Companion.fromHtml (I43dcd)
  • เพิ่มอาร์กิวเมนต์การจัดรูปแบบ (linkStyle, focusedLinkStyle, hoveredLinkStyle) และ Listener การโต้ตอบลิงก์ให้กับเมธอด parseAsHtml เมื่อแยกวิเคราะห์สตริงที่ติดแท็ก HTML ด้วยแท็ก <a> เมธอดจะสร้าง LinkAnnotation.Url สำหรับแท็กดังกล่าวแต่ละแท็ก และส่งออบเจ็กต์การจัดรูปแบบและ Listener การโต้ตอบลิงก์ไปยังคำอธิบายประกอบแต่ละรายการ (I7c977)
  • ตอนนี้ LinkAnnotation จะใช้อาร์กิวเมนต์การจัดรูปแบบตามสถานะและ LinkInteractionListener เพิ่มคำอธิบายประกอบนี้ใน AnnotatedString เพื่อรับไฮเปอร์ลิงก์ เมื่อส่งผ่าน focusedState และ/หรือ hoveredState คุณจะสามารถกำหนดการกำหนดค่าภาพสำหรับลิงก์เมื่อลิงก์ถูกโฟกัสและ/หรือวางเมาส์เหนือ (I81ce4, b/139312671)
  • มีการนำแฟล็กฟีเจอร์สำหรับภาพหน้าจอแบบยาวออก (I28648, b/329128246)
  • ตอนนี้ LazyColumn จะแสดงส่วนหัวแบบติดหนึบอย่างถูกต้องในภาพหน้าจอขนาดยาว (I8d239, b/329296635)
  • ปรับให้ API ทดลองที่เหลือส่วนใหญ่ที่เริ่มใช้ด้วย BasicTextField ใหม่มีความเสถียร (I714e2)
  • เพิ่มพารามิเตอร์ textObfuscationCharacter ใน BasicSecureTextField ที่ควบคุมอักขระที่จะใช้ขณะที่ปรับเนื้อหาให้ยากต่อการอ่าน (Obfuscate) (I0588B)
  • UserInput และ SideEffect จะมาแทนที่แหล่งที่มาการลากและวาง NestedScroll เพื่อรองรับคำจำกัดความแบบขยายของแหล่งที่มาเหล่านี้ ซึ่งตอนนี้จะมีภาพเคลื่อนไหว (เอฟเฟกต์ด้านข้าง) และล้อเลื่อนของเมาส์ (UserInput) (I40579)
  • แนะนำ LocalBringIntoViewSpec ซึ่งเป็นลักษณะการเลื่อนโฟกัสที่ขึ้นอยู่กับแพลตฟอร์มและนำไปใช้กับเลเยอร์ตัวปรับแต่งแบบเลื่อนได้ (I27aa5, b/317453911)
  • นำ TextFieldCharSequence ออกแล้ว TextFieldBuffer.originalValues จะถูกแทนที่ด้วย TextFieldBuffer.originalText และ TextFieldBuffer.originalSelection (I2c7d6)
  • ImeOptions.hintLocales เป็นค่าว่างไม่ได้แล้ว หากคุณต้องการส่งรายการภาษาที่ว่างเปล่า โปรดใช้ LocaleList.Empty (Ic5bc4)
  • เปลี่ยนชื่อ getOffsetFractionForPage เป็น getOffsetDistanceInPages แล้ว (Ia05e2)

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

  • เมื่อ InputTransformations รวมเข้ากับ next ระบบจะรวม KeyboardOptions อย่างถูกต้องตามตัวเลือกแต่ละรายการโดยใช้เมธอด KeyboardOptions.merge ใหม่ (Ie5304, b/295951492)
  • ในตอนนี้ targetValue ของ AnchoredDraggableState ไม่พิจารณาเกณฑ์ตำแหน่งอีกต่อไป ตอนนี้มีเกณฑ์โดยนัยอยู่ที่ 50% ซึ่งหมายความว่า targetValue จะเปลี่ยนแปลงที่จุดกึ่งกลางระหว่าง Anchor 2 รายการ (I82c2c)

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

  • เปลี่ยนชื่อ API การเลื่อน 2 รายการ (I56a75)

เวอร์ชัน 1.7.0-alpha06

3 เมษายน 2024

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

ฟีเจอร์ใหม่

  • เพิ่มการรองรับลักษณะที่ปรากฏของรายการและภาพเคลื่อนไหวจากการหายไปใน LazyColumn และ LazyRow แล้ว ก่อนหน้านี้ คุณสามารถเพิ่มตัวแก้ไข Modifier.animateItemPlacement() เพื่อรองรับภาพเคลื่อนไหวตำแหน่งโฆษณา (การจัดเรียงใหม่) เราเลิกใช้งานตัวแก้ไขนี้และเปิดตัวตัวแก้ไขใหม่ที่ไม่ใช่เวอร์ชันทดลองซึ่งมีชื่อว่า Modifier.animateItem() ซึ่งช่วยให้คุณรองรับภาพเคลื่อนไหวทั้ง 3 ประเภท ได้แก่ ลักษณะที่ปรากฏ (เฟดเข้า) การหายไป (จางลง) และการจัดเรียงใหม่ (I2d7f7, b/150812265)
  • ตอนนี้ลูกค้าของ LazyColumn/LazyRow สามารถเลือกไม่ใช้การรักษาดัชนีตามคีย์สำหรับ Measure-Pass ที่กำลังจะมีขึ้น โดยการเรียกใช้ LazyListState.requestToScroll ที่ไม่ถูกระงับ (I98036, b/209652366)
  • เพิ่มเมธอด parseAsHtml สำหรับสตริงที่มีการจัดรูปแบบ: ช่วยให้แปลงสตริงที่มีเครื่องหมายแท็ก HTML เป็น AnnotatedString ได้ โปรดทราบว่าระบบยังไม่รองรับแท็กบางรายการ เช่น คุณจะยังแสดงรายการหัวข้อย่อยไม่ได้ (I84d3d)
  • รองรับเวอร์ชันทดลองสำหรับภาพหน้าจอแบบยาวในคอนเทนเนอร์ Compose ของคอนเทนเนอร์โดยใช้ Android API อย่างเป็นทางการ (ScrollCaptureCallback) ฟีเจอร์นี้ยังอยู่ระหว่างการทดสอบและอาจไม่สามารถจัดการได้ในทุกกรณีอย่างถูกต้อง ด้วยเหตุนี้ ระบบจึงปิดใช้ฟีเจอร์นี้โดยค่าเริ่มต้น หากต้องการเลือกใช้ ให้ตั้งค่าแฟล็ก ComposeFeatureFlag_LongScreenshotsEnabled เป็น "จริง" การแจ้งว่าไม่เหมาะสมนี้จะถูกนำออกก่อนรุ่นเบต้า 1.7 (I2b055, b/329296471)
  • เปิดตัว API ใหม่ของ GraphicsLayer เพื่อให้ตำแหน่งและการแสดงผลของอินสแตนซ์ GraphicsLayer มีความยืดหยุ่นมากขึ้น รวมถึงรองรับฟีเจอร์การแสดงผลภายในโดยไม่ต้องทำงานร่วมกับการใช้งาน Composable เพื่อระบุอินสแตนซ์ที่มีตัวแก้ไข GraphicsLayer

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

  • ตอนนี้พารามิเตอร์ KeyboardOptions ทั้งหมดจะมีค่าที่ไม่ระบุโดยค่าเริ่มต้น เพิ่ม KeyboardOptions.merge วิธีแล้ว
  • เปลี่ยนชื่อ KeyboardOptions.autoCorrect เป็น autoCorrectEnabled และทำให้เป็นค่าว่างได้ โดยค่า Null บ่งบอกว่าไม่ได้ระบุค่าใดๆ (Ia8ba0, b/295951492)
  • เปลี่ยนชื่อ outOfBoundsPageCount เป็น beyondViewportPageCount แล้ว (I129c6)
  • fun ClipEntry.getMetadata() เปลี่ยนเป็น val ClipEntry.clipMetadata (I50155)
  • นำ TextFieldState.valueAsFlow() ออกแล้ว ต้องการใช้ snapshotFlow { state.text } หรือ snapshotFlow { TextFieldCharSequence(state.text, state.selection) } (I7d629)
  • จัดระเบียบพารามิเตอร์ InputTransformation.transformInput ใหม่แล้ว นำ originalValue: TextFieldCharSequence ออกแล้ว ตอนนี้ TextFieldBuffer จะมีค่านี้ในชื่อเดียวกันแทน นำพารามิเตอร์ valueWithChanges: TextFieldBuffer ออกด้วย ตอนนี้ TextFieldBuffer จะเป็นขอบเขตตัวรับในฟังก์ชันแล้ว (I919cc)
  • ตอนนี้ตัวแปร BasicTextField(state) และ BasicSecureTextField ใช้ KeyboardActionHandler แทน KeyboardActions ในการประมวลผลการดำเนินการที่ทำโดยซอฟต์แวร์แป้นพิมพ์ (I58dda)
  • API การมอบสิทธิ์การเขียนด้วยลายมือโดยใช้สไตลัสเพื่อรองรับการเขียนด้วยลายมือโดยใช้สไตลัสในรูปแบบ "ปลอม" ช่องป้อนข้อความ (I9c09c, b/327271923)
  • เปลี่ยนชื่อ KeyboardOptions.shouldShowKeyboardOnFocus เป็น showKeyboardOnFocus แล้ว (Ib4b7a, b/295951492)
  • นำพารามิเตอร์ hintMediaTypes ออกจาก Modifier.contentReceiver แล้ว เราแนะนำให้นักพัฒนาแอปตรวจสอบประเภทสื่อของ TransferableContent ที่ได้รับแล้ว เนื่องจากอาจใช้ร่วมกับ hintMediaTypes ที่กำหนดค่าไว้ไม่ได้ (I82f99)
  • เรียงลำดับพารามิเตอร์ของ BasicSecureTextField ใหม่ นำพารามิเตอร์ keyboardType และ imeAction ออกเพื่อใช้คลาส KeyboardOptions แบบเต็ม แต่ยังคงเก็บค่าเริ่มต้นเดิมที่เหมาะสำหรับ BasicSecureTextField ไว้ นำพารามิเตอร์ scrollState ออกด้วย (Ibbfa9)
  • เปลี่ยนประเภทของ TextFieldState.text จาก TextFieldCharSequence เป็น CharSequence เท่านั้น ดังนั้น ให้เพิ่ม TextFieldState.selection: TextRange และ TextFieldState.composition: TextRange? เพื่ออ่านค่าการเลือกและองค์ประกอบปัจจุบันจากออบเจ็กต์สถานะโดยตรง
  • นำ TextFieldState.forEachTextValue ออกแล้ว (Idb2a2)
  • นำฟังก์ชัน ClipboardManager.getClipMetadata และ ClipboardManager.hasClip ออกแล้ว โปรดใช้ clipEntry.getMetadata() เพื่ออ่านข้อมูลเมตาของรายการคลิปปัจจุบัน นอกจากนี้ โปรดตรวจสอบผลลัพธ์ของ ClipboardManager.getClip ว่าเป็นค่าว่างหรือไม่ เพื่อดูว่าคลิปบอร์ดมีคลิปปัจจุบันหรือไม่ (I50498)
  • ClipboardManager.setClip ยอมรับค่า Null เพื่อล้างคลิปบอร์ดแล้ว (I7d2e9)
  • ReceiveContentListener แปลงเป็นอินเทอร์เฟซของฟังก์ชันแล้ว นอกจากนี้ Modifier.receiveContent โอเวอร์โหลดที่ใช้ lambda จะถูกนำออกเนื่องจาก ReceiveContentListener เป็นอินเทอร์เฟซฟังก์ชันในขณะนี้
  • Modifier.receiveContent เปลี่ยนชื่อเป็น Modifier.contentReceiver แล้ว (I1e6af)
  • เปลี่ยนชื่อ TransferableContent.consumeEach เป็น TransferableContent.consume แล้ว (I1e462)
  • rememberTextFieldState เปลี่ยนไปใช้ API เวอร์ชันเสถียรแล้ว (I37999)

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

  • แก้ไขข้อบกพร่องที่รูปแบบ BasicTextField(state) ใช้ไม่ได้กับแป้นพิมพ์ CJK(ตามองค์ประกอบ) (I54425)
  • แก้ไขข้อบกพร่องที่ Modifier.dragAndDropTarget() อ้างอิงข้อมูลที่ไม่มีอัปเดตในบางสถานการณ์ได้โดยใช้ Modifier.Node ซ้ำ (I05bb1)
  • เปลี่ยนกลับการเปลี่ยนแปลงสัญญาล่าสุดซึ่งการเรียกใช้ AnchoredDraggableState#anchoredDrag จะสแนปเมื่อสิ้นสุดการดำเนินการ anchoredDrag (I95715)

เวอร์ชัน 1.7.0-alpha05

20 มีนาคม 2024

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

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

  • นำองค์ประกอบ LocalTextLinkStyle แบบทดลองในเครื่องออกสำหรับการจัดรูปแบบไฮเปอร์ลิงก์ (Iebfa7)
  • นำการลบล้างทดสอบของ BasicText ที่มีอาร์กิวเมนต์ onLinkClicked ออกแล้ว API ทดแทนสำหรับการสนับสนุนไฮเปอร์ลิงก์ในอนาคตจะตามมาในอนาคต (I107d5)
  • นำเมธอดและพร็อพเพอร์ตี้ที่เกี่ยวข้องกับ Codepoints ออกจาก TextFieldState และ TextFieldBuffer แล้ว นำคำต่อท้าย inChars ออกจาก API ที่เกี่ยวข้องกับการเลือกและการเรียบเรียงที่เหลือด้วย (Ief7ce)
  • currentValue ของ AnchoredDraggable จะอัปเดตเมื่อผ่านจุดยึด ใช้ settledValue เพื่อรับความหมาย currentValue ก่อนหน้า ซึ่งจะอัปเดตก็ต่อเมื่ออยู่ในจุดยึด ตอนนี้ความคืบหน้าจะแสดงเป็นฟังก์ชัน (ต้องใช้จุดเริ่มต้นและจุดสิ้นสุด) แทนพร็อพเพอร์ตี้ (Ibe6e8, b/318707189, b/298271489, b/294991954)
  • BasicTextField(state), TextFieldState, InputTransformation, OutputTransformation, TextFieldLineLimits, TextFieldDecorator เลื่อนระดับเป็นเสถียรแล้ว (I9582B)
  • เปิดตัว InterceptPlatformTextInput เพื่อช่วยเขียนการทดสอบที่เกี่ยวข้องกับ IME ระดับต่ำและกรณีการใช้งาน IME ระดับต่ำอื่นๆ PlatformTextInputTestOverride เลิกใช้งานแล้ว (I862ed, b/322680547)
  • แยก restrictedConstraints() เป็น 2 วิธี: fitPrioritizingWidth() และ fitPrioritizingHeight() (I6d7fd)

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

  • เพิ่ม API ใหม่ 2 รายการ isLastScrollForward/isLastScrollBackward เพื่อตรวจสอบทิศทางการเลื่อนสำหรับการเลื่อนล่าสุด แสดงค่า "เท็จ" หากยังไม่ได้เลื่อน (I63a0e)

เวอร์ชัน 1.7.0-alpha04

6 มีนาคม 2024

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

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

  • รองรับฟีเจอร์การเขียนด้วยลายมือโดยใช้สไตลัสในอุปกรณ์หลังจาก Android U (I002e4)
  • เพิ่ม hintLocales ใน KeyboardOptions เพื่อให้ TextFields มีความสามารถในการแนะนำ IME กับภาษาเฉพาะเพื่อตั้งค่าภาษาที่เลือกไว้ล่วงหน้า (รหัส 18c2)
  • นำโอเวอร์โหลด BasicTextField2 และ BasicSecureTextField แบบทดลองที่ใช้พารามิเตอร์ value: String และ onValueChange: () -> String ออก (I568b4)
  • เพิ่มฟังก์ชัน applySemantics (ไม่บังคับ) ลงใน InputTransformation เพื่อกำหนดความหมายของ BasicTextField2 ที่จะใช้กับฟังก์ชันดังกล่าว (I74a2f, b/170648072)
  • ใน CL นี้ เราจะเพิ่มการทำงานเชิงความหมาย GetScrollViewportLength เพื่อให้เราสามารถเชื่อมโยงข้อมูลเกี่ยวกับคอมโพเนนต์ที่กำลังเลื่อนในการเขียนไปยังระบบ a11y ได้ CL นี้ยังนำการใช้งานพร็อพเพอร์ตี้ดังกล่าวในรายการแบบเลื่อนได้ของพื้นฐานไปใช้ด้วย (Ic5fa2)
  • BasicTextField2 เปลี่ยนชื่อเป็น BasicTextField แล้ว (Ie5713)
  • FocusRequester.createRefs มีความเสถียรแล้ว (I4d92c, b/261436820)
  • เปิดตัว DelegatableNode.scrollIntoView() เพื่อให้โหนดตัวปรับแต่งส่งคำขอ scrollIntoView ได้โดยตรง (I2b3b7, b/299939840)
  • เปิดตัว DelegatableNode.requireView() เพื่อให้โหนดตัวแก้ไขรับ View ของ Android ในปัจจุบันได้โดยไม่ต้องอ่านการเรียบเรียงเพลงในเครื่อง (I40768)
  • ขอแนะนำข้อมูลเลย์เอาต์ตามบริบทภายในขอบเขตของแถวโฟลว์บริบทและขอบเขตของคอลัมน์โฟลว์บริบท ซึ่งแสดงดัชนีเส้น ตำแหน่ง และข้อจำกัดต่างๆ ที่ความกว้างและความสูงสูงสุดเพื่ออยู่ในตำแหน่งที่ระบุไว้ รายการที่เกินความกว้าง/ความสูงสูงสุดอาจย้ายไปอยู่บรรทัดถัดไปหรือละเว้นตามการตั้งค่ารายการเพิ่มเติม (Id13f8, b/292114798)

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

  • แก้ไขข้อบกพร่องที่ในบางเงื่อนไขที่สลับแอตทริบิวต์ enabled หรือ readOnly ของ TextField จะทำให้เกิดข้อขัดข้อง (Iae17b)

เวอร์ชัน 1.7.0-alpha03

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

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

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

  • แนะนำ DelegatableNode.requireLayoutCoordinates() เพื่อเป็นวิธีรับ LayoutCoordinates ปัจจุบันของ Modifier.Node โดยไม่ต้องลบล้าง onPlaced และจัดเก็บพิกัดในพร็อพเพอร์ตี้ด้วยตนเอง (Ia8657)
  • แนะนำ DelegatableNode.currentLayoutCoordinates เพื่อเป็นวิธีรับ LayoutCoordinates ปัจจุบันของ Modifier.Node โดยไม่ต้องลบล้าง onPlaced และจัดเก็บพิกัดในพร็อพเพอร์ตี้ด้วยตนเอง (Iaebaa)
  • การเพิ่มประสิทธิภาพการทำงานใน DraggableAnchors ใช้โดย AnchoredDraggable (I89cff)
  • ย้าย BasicTextField2 และ API ที่เกี่ยวข้องภายใต้แพ็กเกจ androidx.compose.foundation.text2 ไปยัง androidx.compose.foundation.text แล้ว (I9F635)
  • BasicTextField2 ไม่รับพารามิเตอร์ CodepointTransformation แล้ว ใช้ BasicSecureTextField หรือ OutputTransformation (Id34ff)
  • เพิ่มวิธีการเปรียบเทียบเฉพาะคำอธิบายประกอบของ AnnotatedStrings 2 รายการ (I32659)
  • ขอแนะนำ 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)

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

  • ภาพเคลื่อนไหวของเคอร์เซอร์ไม่ขอเฟรมระหว่างสถานะเปิดและปิดอีกต่อไป (Ia2253)
  • KeyboardOptions นาที เครื่องมือสร้างสำเนาที่เลิกใช้งานแล้วจะคัดลอกคุณสมบัติทั้งหมดอย่างถูกต้อง (If12de)

เวอร์ชัน 1.7.0-alpha02

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

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

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

  • HorizontalPager, VerticalPager และ PagerState ได้รับการโปรโมตเป็นเวอร์ชันเสถียร (I67660, b/316966909)
  • เพิ่มองค์ประกอบ LocalTextLinkStyle ในเครื่องที่ช่วยให้เปลี่ยนรูปแบบของลิงก์ในข้อความในแอปได้ หากคุณใช้ธีมของคุณเองในแอป คุณควรตั้งค่าการเรียบเรียงนี้ตามธีมของคุณ เมื่อใช้ธีม Material สีของลิงก์จะตั้งเป็นสีหลักของ Material โดยค่าเริ่มต้น (I7eb10)
  • เปิดตัวตัวแก้ไข receiveContent ที่ช่วยให้นักพัฒนาซอฟต์แวร์รับเนื้อหาอย่างละเอียดใน Jetpack Compose
  • receiveContent ทำงานร่วมกับ BasicTextField2 เพื่อยอมรับเนื้อหาแบบสมบูรณ์ที่มาจากซอฟต์แวร์แป้นพิมพ์ หรือผ่านการดำเนินการวางคลิปบอร์ด (I81B72)
  • ในการเปลี่ยนแปลงครั้งนี้ เราจะแทนที่ SnapFlingBehavior ด้วย TargetedFlingBehavior ในเพจเจอร์เพื่อปลดล็อกกรณีการใช้งานอื่นๆ และมีความยืดหยุ่นมากขึ้น (I762ea)
  • ในการเปลี่ยนแปลงนี้ เราจะทำให้ Snapping API เสถียร นอกจากนี้ เรายังล้างโค้ดการทดสอบบางส่วนและเพิ่มตัวอย่างไปยังการสแนปด้วย (Id8da9)
  • แนะนำ TargetedFlingBehavior ซึ่งเป็น FlingBehavior ที่อนุญาตให้เผยแพร่ข้อมูลเกี่ยวกับสถานะของภาพเคลื่อนไหวที่ต่อเนื่องและออฟเซ็ตการเลื่อนเป้าหมาย (I6a207)

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

  • ตอนนี้ BasicTextField2 จะคงเคอร์เซอร์ไว้ในมุมมองขณะพิมพ์เมื่อเลื่อนออกจากมุมมองหรือเลื่อนออกจากมุมมองเนื่องจากการป้อนข้อมูล (Ieb856, b/237190748)

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

  • เพิ่ม API ทดลองเพื่อกำหนดค่าลักษณะการดึงข้อมูลล่วงหน้าของ LazyLists (I022a4)

เวอร์ชัน 1.7.0-alpha01

24 มกราคม 2024

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

ฟีเจอร์ใหม่

  • เพิ่ม Indication API ใหม่เป็น IndicationNodeFactory แล้ว ซึ่งจะทําให้การใช้งาน Indication มีประสิทธิภาพมากขึ้นเมื่อเทียบกับ rememberUpdatedInstance API ก่อนหน้านี้ (ปัจจุบันเลิกใช้งานแล้ว) สำหรับข้อมูลการย้ายข้อมูล โปรดดู developer.android.com
  • clickable / combinedClickable / selectable / toggleable ยอมรับพารามิเตอร์ MutableInteractionSource ที่เป็นค่าว่างแล้ว หากค่า Null และ Indication ที่ระบุเป็น IndicationNodeFactory คุณจะสร้าง Indication แบบ Lazy Loading ได้เมื่อจำเป็นเท่านั้น ซึ่งจะช่วยปรับปรุงประสิทธิภาพ หากคุณไม่ทำการรอกและใช้ MutableInteractionSource ขอแนะนำให้ส่งผ่านค่า Null

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

  • แนะนำ DecayAnimation ใน AnchoredDraggable การเปลี่ยนแปลงนี้จะเพิ่มพารามิเตอร์ decayAnimationSpec ลงใน AnchoredDraggable ทำให้สามารถใช้ภาพเคลื่อนไหวแบบลดลงเมื่อลงไปอยู่ใน Anchor ตัวใดตัวหนึ่ง การเปลี่ยนแปลงนี้ยังรวมถึงการเปลี่ยนชื่อ animationSpec ที่มีอยู่เป็น snapAnimationSpec เพื่อช่วยให้เข้าใจกรณีการใช้งานของข้อกำหนดแต่ละรายการด้วย
  • BasicTextField2 เปิดให้ทดลองใช้แล้ว ซึ่งควรอยู่ในระดับใกล้เคียงของฟีเจอร์กับ BasicTextField และลักษณะการทำงานควรพร้อมใช้งานเวอร์ชันที่ใช้งานจริง แต่ขณะนี้ API ดังกล่าวยังอยู่ระหว่างการทดสอบ ก่อนที่จะลดการสั่นไหว ระบบจะเปลี่ยนชื่อเป็น BasicTextField และย้ายไปอยู่ในแพ็กเกจเดียวกัน
  • แนะนำฉบับร่างแรกของ OutputTransformation API สำหรับ BasicTextField2 API นี้มาแทนที่ Use Case ส่วนใหญ่ของ VisualTransformation ใน BasicTextField แบบเก่า อย่างไรก็ตาม การทดสอบดังกล่าวยังไม่สมบูรณ์และบางอย่างอาจทำงานไม่ถูกต้อง แต่เราจะขอความคิดเห็นใดๆ เกี่ยวกับความสามารถในการใช้งาน API สำหรับกรณีการใช้งานของคุณ (aosp/2708848)
  • แนะนำ LinkAnnotation ที่ช่วยให้เพิ่มลิงก์และคลิกได้ลงในข้อความ ฟีเจอร์ลิงก์ยังไม่สมบูรณ์และจะมีการเปลี่ยนแปลง API เพิ่มเติม
  • เปิดตัวตัวแก้ไข receiveContent ที่ช่วยให้นักพัฒนาซอฟต์แวร์รับเนื้อหาอย่างละเอียดใน Jetpack Compose
  • receiveContent ทำงานร่วมกับ BasicTextField2 เพื่อยอมรับเนื้อหาแบบสมบูรณ์ที่มาจากซอฟต์แวร์แป้นพิมพ์ หรือผ่านการวางจากคลิปบอร์ด
  • KeyboardOptions.shouldShowKeyboardOnFocus อนุญาตให้คุณปิดใช้ลักษณะการทำงานเริ่มต้นของ BasicTextField ในการขอซอฟต์แวร์แป้นพิมพ์ที่โฟกัสได้
  • TextInputService และ LocalTextInputService เลิกใช้งานแล้ว โปรดใช้ PlatformTextInputModifierNode เพื่อผสานรวมกับ IME API ของแพลตฟอร์มโดยตรงแทน (aosp/2862698)
  • Indication#rememberUpdatedInstance เลิกใช้งานแล้ว เนื่องจากมีบทลงโทษด้านประสิทธิภาพสูงที่หลีกเลี่ยงไม่ได้และขัดขวางการเพิ่มประสิทธิภาพอื่นๆ คุณควรใช้ IndicationNodeFactory API ใหม่แทน

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

  • ตอนนี้ BasicTextField จะตรวจสอบการแมปออฟเซ็ตบางส่วนที่เลือกไว้ล่วงหน้าเมื่อผ่าน VisualTransformation ซึ่งจะช่วยตรวจหาข้อผิดพลาดที่พบบ่อยในการเขียนโค้ดซึ่งนำไปสู่ข้อยกเว้นที่กู้คืนไม่ได้ในการวัดผลในภายหลังหรือการสุ่มบัตรผ่าน การแสดงข้อผิดพลาดระหว่างการเรียบเรียงอาจทำให้นักพัฒนาแอปเห็นข้อผิดพลาดเหล่านี้ระหว่างการพัฒนามากขึ้น ซึ่งจะช่วยป้องกันข้อขัดข้องในการผลิต (I0fd42)
  • VisualTransformation จะไม่มีการส่งหากคุณแสดงผลดัชนีที่ไม่ถูกต้องสำหรับดัชนีที่ไม่ถูกต้อง (b/316401857 )

เวอร์ชัน 1.6

เวอร์ชัน 1.6.8

12 มิถุนายน 2024

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

เวอร์ชัน 1.6.7

1 พฤษภาคม 2024

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

เวอร์ชัน 1.6.6

17 เมษายน 2024

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

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

  • แก้ไขข้อบกพร่องที่ในบางเงื่อนไขที่สลับแอตทริบิวต์ enabled หรือ readOnly ของ TextField จะทำให้เกิดข้อขัดข้อง (Iae17b)

เวอร์ชัน 1.6.5

3 เมษายน 2024

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

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

  • เพิ่มบันทึกการแก้ไขข้อบกพร่องไปยังข้อบกพร่องที่ทำซ้ำได้ยากในแถว/คอลัมน์: (b/300280216 และ b/297974033)

เวอร์ชัน 1.6.4

20 มีนาคม 2024

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

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

  • ท่าทางสัมผัสการเลือกแบบกดค้างแล้วลากซึ่งย้ายออกจากขอบเขตของเลย์เอาต์ข้อความในเฟรมแรกของการลากจะไม่เกิดข้อขัดข้องอีกต่อไป (Icdf90, b/325307463)

เวอร์ชัน 1.6.3

6 มีนาคม 2024

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

เวอร์ชัน 1.6.2

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

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

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

  • แก้ไข AnimateContentSize ที่รีเซ็ตไม่ถูกต้อง (I07051)
  • แก้ไขปัญหาที่ข้อความ intrinsicHeight ถูกแคชมากเกินไปในบางสถานการณ์ (3cd398, b/217910352)

เวอร์ชัน 1.6.1

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

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

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

  • แก้ไขการวัดตารางกริดแบบสับเปลี่ยนเมื่อเลื่อนเกินขีดจำกัด (bffc39)
  • เพิ่มเครื่องหมายถูกสำหรับเลย์เอาต์ที่มีขนาดใหญ่ (e74af5)
  • แก้ไขตำแหน่งรายการขนาด 0 ที่จุดเริ่มต้นของตารางกริดที่จัดเรียงไว้ (785f94)
  • Callback ของ OnRelease ในลำดับเดียวกันกับ onForgotten (31ce3b)

เวอร์ชัน 1.6.0

24 มกราคม 2024

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

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

  • ตัวปรับแต่งใหม่ Modifier.anchoredDraggable ที่จะปลดล็อกความสามารถในการลากและเคลื่อนไหวระหว่างชุด Anchor ที่กำหนดไว้ล่วงหน้า ตัวแก้ไขนี้มีไว้เพื่อใช้แทน Modifier.swipeable ดูวิธีใช้และย้ายข้อมูลจาก Modifier.swipeable ในคำแนะนำในการย้ายข้อมูล
  • เพิ่มฟังก์ชันลากและวางระหว่างแอปและคอมโพเนนต์แล้ว โปรดดูที่ DragAndDropTarget, Modifier.dragAndDropSource และ API อื่นๆ เพื่อเริ่มต้นใช้งาน
  • Modifier.draggable2D เป็นแป้นกดร่วมแบบใหม่ที่ช่วยให้รองรับการลากแบบ 2 มิติได้อย่างง่ายดาย ดูตัวอย่าง
  • มีการเพิ่ม AndroidExternalSurface และ AndroidEmbeddedExternalSurface เพื่อให้เพิ่มคอมโพเนนต์ที่ขับเคลื่อนด้วยแพลตฟอร์มในการเขียนได้ง่ายขึ้น
  • การเปลี่ยนแปลงและการปรับปรุง API ต่างๆ ใน Pager และ snapFlingBehaviour
  • API ต่างๆ สำหรับโฟกัส ข้อความ และชิ้นงานได้รับการเลื่อนระดับเป็น API ที่เสถียร

เวอร์ชัน 1.6.0-rc01

10 มกราคม 2024

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

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

  • นำเครื่องมือสร้างส่วนขยาย DragAndDropTarget() ออกแล้ว สร้างอินสแตนซ์ใหม่โดยใช้ object: DragAndDropTarget {} (I32318)

เวอร์ชัน 1.6.0-beta03

13 ธันวาคม 2023

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

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

  • แก้ไขข้อขัดข้องที่ส่งผลต่อข้อความขนาดใหญ่มากซึ่งวัดด้วยข้อจำกัดไม่สิ้นสุด (I1a7df, b/312294386)
  • ขณะนี้ PlatformImeOptions เป็นคลาสที่เป็นรูปธรรมแทนที่จะเป็นอินเทอร์เฟซ (If40a4)

เวอร์ชัน 1.6.0-beta02

29 พฤศจิกายน 2023

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

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

  • แก้ไข canScroll ไม่ได้รับการอัปเดตหลังจากเลื่อนแบบ Relayout เท่านั้น (I60a86)
  • แก้ไข Modifier.animateItemPlacement() และ LookaheadScope หลังจากเลื่อนลงทีละน้อย (I3a2b7)

เวอร์ชัน 1.6.0-beta01

15 พฤศจิกายน 2023

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

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

  • ตอนนี้ตัวแก้ไข DragAndDropTarget จะรับ DragAndDropTarget อย่างชัดเจนและมี lambda สำหรับเลือกใช้เซสชันลากและวาง ตอนนี้ DragAndDropModifierNode มีฟังก์ชันจากโรงงาน 2 ฟังก์ชัน ช่องหนึ่งสำหรับรับการโอนข้อมูลและอีกช่องสำหรับโอนข้อมูล (I69481)
  • อัปเดต maximumFlingVelocity ให้แสดงเป็น "ลอย" แล้ว ปรับปรุงเอกสารประกอบเพื่อให้เข้าใจความเป็นเอกภาพของmaximumFlingVelocityชัดเจนยิ่งขึ้น (I8adc7)
  • onDragAndDropStart ในDragAndDropModifierNode เปลี่ยนชื่อโรงงานเป็น acceptDragAndDropTransfer แล้ว

    เพิ่ม acceptsDragAndDropTransfer ใน Modifier ของ dragAndDropTarget แล้วเพื่อยอมรับจากเซสชันการลากและวาง แลมบ์ดานี้คืนชีวิต DragAndDropTarget หากสนใจเซสชันลากและวาง มีการใช้พารามิเตอร์นี้แทน lambda อื่นๆ สำหรับการประมวลผลเหตุการณ์การลากแล้ว

    เพิ่มฟังก์ชันเริ่มต้น DragAndDropTarget เพื่อรับจากเซสชันการลากและวาง (Iebf3a)

  • การแสดง startDragImmediately ใน AnchoredDraggable ช่วยให้ควบคุมการตรวจหาท่าทางสัมผัสการลากได้เมื่อใช้ การตั้งค่านี้มีประโยชน์เมื่อวิดเจ็ตกำลังเคลื่อนไหวไปยังจุดยึดเป้าหมาย ดูตัวอย่าง (Ie6d13, b/285139987)

  • ขณะนี้ API เคล็ดลับเครื่องมือพื้นฐานคือ @ExperimentalFoundationApi (I30b0b)

  • นำ DragAndDropInfo ที่เป็นประเภท DragAndDropModifierNode.drag ออกแล้วตอนนี้จะใช้พารามิเตอร์สำหรับ transferData, ขนาดการตกแต่ง และการตกแต่งแบบลาก DrawScope lambda ได้แล้ว

    DragAndDropTarget มีวิธีสําหรับเหตุการณ์ลากและวางบางอย่างแทนที่จะใช้วิธีนามธรรมวิธีเดียว

    onDragAndDropEvent ในฟังก์ชันเริ่มต้นสำหรับ DragAndDropModifierNode ได้เปลี่ยนชื่อเป็น onDragAndDropStart เพื่อให้สื่อสารได้ดียิ่งขึ้นว่า DragAndDropTarget ที่ระบุใช้ได้สำหรับเซสชันการลากและวางที่ระบุเท่านั้น

    นำ DragAndDropEventType ออกแล้ว (I645b1)

  • เปลี่ยนชื่อ PlatformTextInputModifierNode.runTextInputSession เป็น establishTextInputSession แล้ว (I03cd0)

  • แทนที่ OriginalText ด้วย TextSubstitution (Ifa5a8)

  • เปลี่ยนชื่อ PlatformTextInputModifierNode.textInputSession เป็น runTextInputSession แล้ว (Ie9c6b)

  • องค์ประกอบย่อยของ SubcomposeLayout (และเลย์เอาต์ เช่น LazyColumn ที่ขึ้นอยู่กับรายการนี้) ที่เก็บรักษาไว้เพื่อนำมาใช้ซ้ำในอนาคตจะถือว่าปิดใช้งานแล้ว มีการใช้ API ทดสอบ assertIsDeactivated() ใหม่เพื่อทดสอบโหนดดังกล่าว API ทดสอบที่เหลือจะกรองโหนดที่ปิดใช้งานออกโดยค่าเริ่มต้น (I2ef84, b/187188981)

  • เปลี่ยนชื่อพารามิเตอร์ clippingEnabled ของ Modifier.magnifier เป็น clip แล้ว

  • ทำให้พารามิเตอร์ magnifierCenter ของ Modifier.magnifier เป็นค่าว่างได้ โดยคงลักษณะการทำงานเริ่มต้นแบบเดิมไว้ (I6aa66)

  • ตอนนี้ Material SwipeToReveal API (สำหรับการ์ดและชิป) ใช้ API ตามสล็อต (ตามที่ Compose แนะนำ) แทนอินสแตนซ์ที่อิงตามคลาสข้อมูลเพื่อสร้างสล็อตแล้ว การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบ โปรดดูการสาธิตและโค้ดตัวอย่างเพื่อดูตัวอย่างวิธีใช้ API ใหม่ (Ia8943)

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

  • ใช้เท่ากับและแฮชโค้ดสำหรับ PageSize.Fixed (Ie3ede, b/300134276)
  • แก้ไขข้อบกพร่องที่ทำให้เลย์เอาต์ BasicText ไม่ย่อเมื่อเปลี่ยน minWidth และลด minWidth น้อยกว่าข้อจำกัดการวัดเริ่มต้น maxWidth (Idb19c)
  • เพิ่มการรองรับตัวแสดงผลสำหรับการไล่ระดับสีกวาดใน ArcLine (I4d5bb)
  • แก้ไขปัญหาความเข้ากันได้ของไบนารีที่มีการเปลี่ยนแปลง Window Inset (Iee695)
  • นำเลเยอร์หลักของวัสดุสำหรับชิป/ปุ่ม Material3 ออก เนื่องจากการเปรียบเทียบย่อยจะแสดงประสิทธิภาพที่ดีกว่าหากไม่มีข้อมูลเหล่านี้ (I55555)

เวอร์ชัน 1.6.0-alpha08

18 ตุลาคม 2023

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

ฟีเจอร์ใหม่

  • Modifier.draggable2D เป็นแป้นกดร่วมแบบใหม่ที่ช่วยให้รองรับการลากแบบ 2 มิติได้อย่างง่ายดาย ดูตัวอย่าง (Id95f5, b/214412658)

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

  • Modifier.dragAndDrawSource ได้เปลี่ยนชื่อ lambda ของ onDrawDragShadow เป็น drawDragDecoration และ DragAndDropInfo ได้เปลี่ยนชื่อพารามิเตอร์ขนาดเป็น dragDecorationSize (Id0e30, b/303904810)
  • พารามิเตอร์ decorationBox ของ BasicTextField2 เปลี่ยนชื่อเป็น decorator แล้ว และเปลี่ยนประเภทของรูปแบบเป็นอินเทอร์เฟซสนุกๆ ที่เทียบเท่า TextFieldDecorator ด้วย (I23c1c)

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

  • ปรับปรุงเอกสารประกอบเกี่ยวกับ BasicTextField เกี่ยวกับข้อกำหนดของ onValueChange (I90fc9, b/160257648)

เวอร์ชัน 1.6.0-alpha07

4 ตุลาคม 2023

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

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

  • แนะนำ PlatformTextInputMethodTestOverride สำหรับการทดสอบการเขียนสำหรับเครื่องมือแก้ไขข้อความที่กำหนดเอง (Id159b)
  • เปลี่ยนชื่อ GraphicsSurface เป็น AndroidExternalSurface (I11680) แล้ว
  • เพิ่ม Flag ชั่วคราว DisableNonLinearFontScalingInCompose เพื่อปิดใช้การปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้น ตั้งค่า DisableNonLinearFontScalingInCompose = true ในการทดสอบหากต้องการเวลาทำความสะอาด ระบบจะนำธงนี้ออกใน Compose 1.6.0-beta01 (Ic9486)
  • เพิ่มคอลเล็กชัน ColorList และ ColorSet ที่หลีกเลี่ยงการจัดสรร (I744bd)
  • การเปลี่ยนแปลงนี้จะนํา shortSnapVelocityThreshold ซึ่งเปลี่ยนเป็นรายละเอียดการติดตั้งใช้งาน SnapLayoutInfoProvider ออก (I65f6d)
  • เพิ่ม dragAndDropSource Modifier สำหรับการเริ่มเซสชันลากและวาง และ dragAndDropTarget Modifier สําหรับการรับจากเซสชันลากและวาง (Ib7828, b/286038936)
  • อัปเดตเอกสาร SnapPositionInLayout และวิธีจัดตำแหน่ง แนะนำระยะห่างจากขอบของเนื้อหาให้กับเมธอดการวางตำแหน่งใน SnapPositionInLayout (Id7938, b/300116110)
  • เพิ่ม UndoState ใน TextFieldState ที่ให้ความสามารถในการเลิกทำ/ทำซ้ำการเปลี่ยนแปลงที่ผู้ใช้ทำ (Icc024)

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

  • แก้ไขแล้ว basicMarquee ไม่เคลื่อนไหวหลังจากเปลี่ยนอัตราความเร็ว (รหัส 2e77, b/297974036)

เวอร์ชัน 1.6.0-alpha06

20 กันยายน 2023

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

ฟีเจอร์ใหม่

  • Wrapper ที่ประกอบกันได้ใหม่สำหรับ SurfaceView และ TextureView: GraphicsSurface() และ EmbeddedGraphicsSurface() API นี้เป็น API ทดลองและอาจมีการเปลี่ยนแปลงและแก้ไข (I9ddb2)
  • ตอนนี้ Modifier.magnifier() เป็น API ที่มีความเสถียรแล้ว ซึ่งรวมถึงการนำ MagnifierStyle ออกเพื่อใช้พารามิเตอร์แบบอินไลน์ในตัวแก้ไขเอง (I83bec, b/298381260, b/262367109, b/261438887)

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

  • เปิดตัว updateCurrentPage และ updateTargetPage ใน ScrollScope ซึ่งเป็นผลงานชิ้นสุดท้ายที่จำเป็นต่อการปรับแต่งการเลื่อนแบบเคลื่อนไหวผ่าน PagerState.scroll (I9cad5, b/267744105, b/243786897)
  • นำความหนาแน่นออกจาก SnapFlingBehavior การใช้งาน SnapLayoutInfoProvider ทั้งหมดมีวิธีเข้าถึงความหนาแน่นอยู่แล้ว ดังนั้นอาจมีการนำขอบเขตตัวรับออก ซึ่งจะทำให้การใช้งานทั้ง SnapFlingBehavior และ SnapLayoutInfoProviders มีความซับซ้อนน้อยลง (I153c3)
  • ตัวแก้ไขอื่นๆ ทำเครื่องหมายว่าเสถียรแล้ว (I56af1, b/298046462)
  • นำ SnapStepSize ออกจาก SnapLayoutInfoProvider แล้ว การคำนวณควรทำโดยใช้ข้อมูลเลย์เอาต์และให้ผ่านวิธีการหรือระยะสแนปออฟเซ็ต (If320C)

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

  • ตอนนี้การเขียนใช้การปรับขนาดแบบอักษรที่ไม่ใช่แบบเชิงเส้นเพื่อให้อ่านและช่วยเหลือพิเศษได้ง่ายขึ้น เมื่อปรับขนาดแบบอักษร > 100% ในการตั้งค่าระบบ ข้อความขนาดเล็กจะมีขนาดเพิ่มขึ้นตามปกติ แต่ข้อความขนาดใหญ่อยู่แล้วจะเพิ่มขนาดเพิ่มขึ้นเล็กน้อยเท่านั้น นอกจากนี้ ความสูงของบรรทัดที่กำหนดไว้ใน SP จะปรับโดยอัตโนมัติเพื่อให้เป็นสัดส่วนกับความสูงที่ต้องการมาตราส่วน 100% ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำในการปรับขนาดแบบอักษร (I11518)

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

  • นำการใช้ rememberSaveable สำหรับเคล็ดลับเครื่องมือออก (Icc131, b/299500338)

เวอร์ชัน 1.6.0-alpha05

6 กันยายน 2023

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

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

  • เพิ่มโอเวอร์โหลดสำหรับ BasicSecureTextField ที่ยอมรับค่าที่เปลี่ยนแปลงไม่ได้และ Callback เพื่อเปลี่ยนค่าดังกล่าว เช่นเดียวกับ API ของ BasicTextField ปัจจุบัน (Ia4882)
  • เพิ่ม Modifier.preferKeepClear() เพื่อทำเครื่องหมายเป็น Composable เป็นที่ต้องการเพื่อไม่ให้มีหน้าต่างแบบลอยใน API 33 ขึ้นไป (Ib51d5, b/297260115)
  • ความเร็วการลอยในคอมโพเนนต์ View เช่น ScrollView และ RecyclerView จำกัดอยู่ที่ ViewConfiguration.ScaledMaximumFlingVelocity การเขียนมี maximumFlingVelocity เวอร์ชันของตนเองซึ่งตอนนี้มีผลกับ Draggable (Ibf974)
  • นำโอเวอร์โหลด Pager และ PagerState ที่เลิกใช้งานแล้วออก (Iea07e)
  • เพิ่ม BasicTooltipBox ใน compose.foundation และอัปเดต PlainTooltipBox และ RichTooltipBox เพื่อใช้ TooltipBox กับ Composable ของ PlainTooltip และ RichTooltip ใหม่ (I79e1d)

เวอร์ชัน 1.6.0-alpha04

23 สิงหาคม 2023

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

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

  • เพิ่มอินเทอร์เฟซ ReusableComposition เพื่อจัดการวงจรและการใช้องค์ประกอบย่อยซ้ำ (I812d1, b/252846775)
  • Modifier.focusGroup ได้รับการโปรโมตเป็น API ที่เสถียรแล้ว (I7ffa3)
  • เพิ่มโอเวอร์โหลดสำหรับ BasicTextField2 ที่ยอมรับค่าที่เปลี่ยนแปลงไม่ได้และ Callback เพื่อเปลี่ยนค่าดังกล่าว เช่นเดียวกับ API ของ BasicTextField ปัจจุบัน (I3f2b8)
  • ตอนนี้ GridItemSpan::currentLineSpan เป็น API ที่มีความเสถียรแล้ว (Icc29c)
  • Canvas ที่ยอมรับ contentDescription เป็น API ที่เสถียรแล้ว (Ib3d29)
  • เปิดตัว viewportSize ใน ScrollState ซึ่งเป็นวิธีรู้ขนาด viewPort ของคอมโพเนนต์ที่ใช้ ScrollState หลังจากเกิดการวัดค่าแล้ว (I8b85a, b/283102682)
  • แก้ไขปัญหาที่การดึงข้อมูลล่วงหน้าในเพจเจอร์ไม่ตรงกับลักษณะการทำงานใน View (I93352, b/289088847)
  • Modifier.consumeWindowInsets(PaddingValues) มีความเสถียรแล้วตอนนี้
    • นำ API ของ Deprecated Modifier.consumedWindowInsets ออกแล้ว โปรดใช้ Modifier.consumeWindowInsets แทน (Id72bb)

เวอร์ชัน 1.6.0-alpha03

9 สิงหาคม 2023

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

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

  • เพิ่ม LazyLayout มากเกินไป แต่รับ lambda ของ LazyLayoutItemProvider ไม่ใช่ออบเจ็กต์ธรรมดาเหมือนก่อนหน้านี้ เลิกใช้งานโอเวอร์โหลดก่อนหน้านี้แล้ว (I42a5a)
  • เพิ่มการรองรับการกำหนดค่า privateImeOptions (Idb772)

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

  • ช่องข้อความที่แก้ไขแล้วที่แสดงแป้นพิมพ์และจะแก้ไขได้เมื่อ readOnly เป็นจริง รวมทั้งแก้ไขแป้นพิมพ์ไม่แสดงเมื่อเปลี่ยน readOnly จาก true เป็น false ขณะโฟกัสอยู่ (I34a19, b/246909589)

เวอร์ชัน 1.6.0-alpha02

26 กรกฎาคม 2023

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

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

  • เปิดตัว PagerLayoutInfo ด้วยข้อมูลที่รวบรวมหลังจากผ่านการตรวจสอบการวัดใน Pager รวมทั้งแนะนำ PageInfo ซึ่งเป็นข้อมูลเกี่ยวกับหน้าเว็บที่วัดหน้าเดียวใน Pager (Iad003, b/283098900)
  • คำอธิบายประกอบเพิ่มเติมเพื่อระบุอินพุตที่อนุญาตสำหรับ Composable (I51109)
  • เพิ่ม SemanticsNodeInteraction.requestFocus เพื่อให้การมุ่งเน้นในการทดสอบที่สะดวกและค้นพบได้มากขึ้น (Ie8722)
  • ออกแบบ API ของ PlatformTextInput* ใหม่ทั้งหมด (I6c93a, b/274661182, b/267235947, b/277380808)
  • SoftwareKeyboardController และ LocalSoftwareKeyboardController ไม่ใช่เวอร์ชันทดลองอีกต่อไป ตอนนี้ LocalSoftwareKeyboardController เป็น CompositionLocal ที่เหมาะสมแล้ว (I4c364)
  • ตอนนี้ Modifier.transformable ระบุเดลต้าในการแพนในพารามิเตอร์ canPan เพื่อช่วยกำหนดทิศทางของการเลื่อนเพื่ออนุญาตหรือไม่อนุญาต (I692aa, b/266829800)
  • อัปเดตตัวแก้ไข consumeWindowInsets เพื่อขยาย Superclass AbstractComposeView (Iacd74, b/269479941)

เวอร์ชัน 1.6.0-alpha01

21 มิถุนายน 2023

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

ฟีเจอร์ใหม่

  • เปิดตัว AnchoredDraggable API ใหม่ใน Foundation ซึ่งใช้สร้างคอมโพเนนต์ที่สามารถลากไปมาระหว่างสถานะที่แยกกันได้ เช่น Bottom Sheet ของโมดัล API นี้มาแทนที่ Swipeable API ของ Material (I4a2ed)

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

  • สนับสนุน InputConnection#requestCursorUpdates (I0c69b)
  • เปิดตัว scrollAnimationSpec เพื่ออนุญาตข้อกำหนดของภาพเคลื่อนไหวที่กำหนดเอง อัปเดตBringIntoViewCalculatorเป็น BringIntoViewScroller แล้ว (Idb741)
  • เพิ่มประเภท ResourceResolutionException เพื่อรวมเนื้อหาที่ส่งได้เมื่อพยายามโหลดเนื้อหาบิตแมปที่มีคําอธิบายเส้นทางของเนื้อหาที่โหลดไม่สําเร็จ (I19f44, b/230166331, b/278424788)
  • เพิ่มพร็อพเพอร์ตี้และการดำเนินการด้านอรรถศาสตร์เพื่อรองรับการแปลข้อความ (I4a6bc)
  • เปิดตัว API ของ BringIntoViewCalculator ที่สามารถใช้เพื่อปรับแต่งวิธีที่คอมโพเนนต์อย่าง Scrollable ตอบสนองต่อคำขอ bringIntoView เปลี่ยนการใช้งานที่เลื่อนได้มากเกินไปเพื่อยอมรับอินสแตนซ์ของ BringIntoViewCalculator แล้ว (Iaf5af)

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

  • เพิ่มการตรวจสอบ Lint เพื่อเตือนหากคุณกำลังสร้าง MutableInteractionSource ในการเรียบเรียงโดยที่จำไม่ได้ ซึ่งคล้ายกับการตรวจสอบ Lint สำหรับสร้างสถานะที่เปลี่ยนแปลงได้ / Animatable (I5daae)
  • เพิ่มการสนับสนุนสำหรับการเลือกด้วยเมาส์ การเลือกตามการแตะจะขยายทีละคำและย่อลงอักขระ (Ic0c6c, b/180639271)
  • เพิ่มอินเทอร์เฟซ FocusTargetModifierNode ที่สามารถใช้สร้าง FocusTarget ที่กำหนดเอง (I9790e)

รุ่น 1.5

เวอร์ชัน 1.5.4

18 ตุลาคม 2023

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

เวอร์ชัน 1.5.3

4 ตุลาคม 2023

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

รุ่น 1.5.2

27 กันยายน 2023

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

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

  • แก้ไขข้อบกพร่องในข้อความที่ทำให้เกิดข้อขัดข้องในบางสถานการณ์เมื่อความหมายไม่ถูกต้อง

รุ่น 1.5.1

6 กันยายน 2023

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

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

  • ช่องข้อความที่แก้ไขแล้วที่แสดงแป้นพิมพ์และจะแก้ไขได้เมื่อ readOnly เป็นจริง รวมทั้งแก้ไขแป้นพิมพ์ไม่แสดงเมื่อเปลี่ยน readOnly จาก true เป็น false ขณะโฟกัสอยู่ (I34a19, b/246909589)

เวอร์ชัน 1.5.0

9 สิงหาคม 2023

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

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

  • ตัวแก้ไขพื้นฐานหลายรายการ ได้แก่ Modifier.clickable,Modifier.draggable, Modifier.scrollable, ตัวแก้ไขเลย์เอาต์ และอื่นๆ ได้ย้ายข้อมูลไปยัง Modifier.Node API แล้ว ซึ่งจะช่วยลดโอเวอร์เฮดในการเรียบเรียงเบื้องต้น
  • การปรับปรุงความเสถียรของเพจเจอร์ ข้อบกพร่องจำนวนมากได้รับการแก้ไขแล้ว
  • ตอนนี้พารามิเตอร์ pageCount อยู่ใน PagerState แทนที่จะเป็น Pager

เวอร์ชัน 1.5.0-rc01

26 กรกฎาคม 2023

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

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

  • การตรวจสอบที่ไม่บังคับสำหรับแนะนำให้ย้ายข้อมูลการเรียก mutableStateOf() ไปยังประเภทเฉพาะที่เกี่ยวข้องสำหรับค่าพื้นฐานที่พร้อมใช้งาน รหัส Lint คือ AutoboxingStateCreation ซึ่งก่อนหน้านี้ ระบบจะเปิดใช้การตรวจสอบนี้โดยค่าเริ่มต้นสำหรับทุกโปรเจ็กต์ หากต้องการดูคำเตือนนี้ในตัวแก้ไขของ Android Studio และเอาต์พุต Lint ของโปรเจ็กต์ ให้เปลี่ยนความรุนแรงจากการให้ข้อมูลเป็นคำเตือน (หรือสูงกว่า) โดยประกาศ warning "AutoboxingStateCreation" ภายในการกำหนดค่า build.gradle หรือ build.gradle.kts ของโมดูลตามที่แสดงไว้ (I34f7e) ดังนี้

        android {
            lint {
                warning "AutoboxingStateCreation"
            }
            ...
        }
    

เวอร์ชัน 1.5.0-beta03

28 มิถุนายน 2023

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

เวอร์ชัน 1.5.0-beta02

7 มิถุนายน 2023

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

เวอร์ชัน 1.5.0-beta01

24 พฤษภาคม 2023

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

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

  • ใช้ PlatformDataProvider เพื่อระบุอัตราการเต้นของหัวใจและจํานวนก้าวในแต่ละวัน นำอินเทอร์เฟซ SensorGateway ออกจาก API สาธารณะแล้ว (I55b84)

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

  • ลดการจัดสรรในระหว่างรายการ/ตารางกริด/อื่นๆ แบบ Lazy Loading ค่าที่วัดได้ (Iaf9e2)
  • การจัดสรรที่ลดลงเมื่อใช้สแนปชอต (I65c09)
  • นำการจัดสรรออกจากภาพเคลื่อนไหวฤดูใบไม้ผลิ (Ie9431)
  • นำการจัดสรรออกจาก TextLayout (I0fd11) แล้ว
  • นำการจัดสรรหลายรายการในการติดตามอัตราความเร็วตัวชี้ (I26bae) ออก

เวอร์ชัน 1.5.0-alpha04

10 พฤษภาคม 2023

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

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

  • เพิ่ม TextStyle.merge(...) ที่เพิ่มประสิทธิภาพแล้วซึ่งมีรายการพารามิเตอร์ทั้งหมด (Iad234, b/246961787)
  • แนะนำ SnapLayoutInfoProvider ที่ใช้ได้กับ LazyGridState (I92134, b/269237141, b/260914964)
  • เพิ่ม Modifier.animateItemPlacement() เวอร์ชันทดลองสำหรับขอบเขตรายการแบบตารางกริดแบบ Lazy Loading แล้ว คุณสามารถนําไปใช้กับรายการเพื่อเปลี่ยนตําแหน่งอัตโนมัติ/จัดเรียงภาพเคลื่อนไหวได้ (I4b62d, b/257034719)
  • เลื่อนระดับ GridCells.FixedSize เป็นเสถียร FixedSize กำหนด LazyGrid ซึ่งแต่ละเซลล์มีขนาดที่แน่นอนบนแกนไขว้ และพื้นที่ว่างที่เหลือซึ่งกระจายตามการจัดเรียงแกนไขว้ (I8542F)
  • เริ่มใช้ขอบเขตตัวรับ PagerScope สำหรับเพจเจอร์และฟังก์ชันยูทิลิตีในการคำนวณการชดเชยหน้าที่ระบุ (If2577)
  • แนะนำ snapPositionalThreshold เมื่อสร้างลักษณะการสแนป ใช้พารามิเตอร์นี้เพื่อระบุเกณฑ์ของตำแหน่งสำหรับการสแนปสั้นๆ ในเพจเจอร์ (If8f7f)
  • แทนที่ SnapLayoutInfoProvider.calculateSnappingOffsetBounds ด้วย calculateSnappingOffset แล้ว ในวิธีการใหม่นี้ เราจะขอการชดเชยถัดไปเพื่อสแนปไป การคํานวณขอบเขตควรดําเนินการที่ระดับการใช้งาน เนื่องจากอาจแตกต่างออกไป โดยขึ้นอยู่กับว่ามีการสแนปเกิดขึ้นอย่างไร (I923a4)
  • LazyStaggeredGrid API ได้รับการโปรโมตให้มีความเสถียร (I633a5)
  • นำ pageCount ออกจาก Horizontal/VerticalPager ซึ่งควรระบุไว้ในการสร้างรัฐ อัปเดต PagerState และ rememberPagerState ให้ยอมรับpageCount (Ieb52d, b/266965072)
  • นำ pageCount ออกจาก Horizontal/VerticalPager ซึ่งควรระบุไว้ในการสร้างรัฐ อัปเดต PagerState และ rememberPagerState ให้ยอมรับpageCount (Ifa3cb, b/266965072)
  • แนะนำ shortSnapVelocityThreshold ใน SnapFlingBehavior ของเพจเจอร์ (I7379e, b/275579012)
  • เพิ่ม FlowRowScope และ FlowColumnScope (I54fe2)

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

  • การเรียกเพื่อรับความหมายในข้อความเมื่อข้อจำกัดมี minWidth และ minHeight ไม่มีการขัดข้องอีกต่อไป (Ibd072)
  • แก้ไขการถดถอยที่แป้นพิมพ์ไม่แสดงสำหรับช่องข้อความภายในกล่องโต้ตอบที่ไม่ได้สร้างโดย Composable Dialog (I82551, b/262140644)

เวอร์ชัน 1.5.0-alpha03

19 เมษายน 2023

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

รุ่นนี้เปิดใช้สแต็กการแสดงผลข้อความใหม่สำหรับ Compose สแต็กใหม่ได้รับการเพิ่มประสิทธิภาพให้มีประสิทธิภาพแล้ว และคุณจะไม่เห็นการเปลี่ยนแปลงใดๆ ที่เห็นได้ชัด

หากคุณเห็นการเปลี่ยนแปลงในข้อความที่แสดงผล คุณแก้ไขข้อบกพร่องได้โดยการตั้งค่า NewTextRendering1_5 = false เพื่อยืนยันความแตกต่างของลักษณะการทำงาน การตั้งค่านี้จะบังคับให้จัดวางใหม่ โปรดยื่นความแตกต่างของลักษณะการทำงานเป็นข้อบกพร่อง

ระบบจะนำแฟล็กการแก้ไขข้อบกพร่องออกก่อนรุ่น 1.5 Beta01 (Iada23, b/246960758)

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

  • ทำให้ FlowColumn/FlowRow เป็นแบบในหน้า (Idab37)

เวอร์ชัน 1.5.0-alpha02

5 เมษายน 2023

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

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

  • เพิ่มการสนับสนุนสำหรับเซลล์ขนาดคงที่ใน LazyGrid และจัดเรียงเซลล์เหล่านั้นด้วยการจัดเรียงข้ามแกน (I83ed9, b/235121277, b/267942510)
  • เพิ่มการสนับสนุนสำหรับเลนที่มีขนาดคงที่ใน LazyStaggeredGrid และจัดเรียงด้วยการจัดเรียงแบบกากบาท (I7d519)
  • ตอนนี้ UrlAnnotation ใน AnnotatedString จะเปิดผ่านบริการการช่วยเหลือพิเศษอย่างเช่น TalkBack ได้แล้ว (If4d82, b/253292081)
  • เพิ่มการดำเนินการอรรถศาสตร์ InsertTextAtCursor สำหรับช่องข้อความแล้ว (I11ed5)
  • ตอนนี้การดำเนินการทดสอบที่เกี่ยวข้องกับข้อความ (เช่น performTextInput) จะขอโฟกัสโดยตรง โดยใช้การดำเนินการอรรถศาสตร์แทนการคลิกที่ช่อง (I6ed05)
  • เพิ่มการสนับสนุนสำหรับการเว้นระยะห่าง/การจัดเรียงข้ามแกนโดยใช้ verticalArrangement ใน FlowRow และ horizontalArrangement ใน FlowColumn นอกจากนี้ เรายังนำ verticalAlignment และ horizontalAlignment ระดับบนสุดใน FlowRow/FlowColumn ออกด้วย นักพัฒนาแอปใช้ Modifier.align แทนได้ ซึ่งจะช่วยลดความสับสนระหว่างรูปแบบการตั้งชื่อของ verticalAlignment กับ verticalArrangement (I87b60, b/268365538)

เวอร์ชัน 1.5.0-alpha01

22 มีนาคม 2023

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

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

  • ข้อความและ BasicText เปลี่ยนโครงสร้างภายในโค้ดเพื่อใช้ระบบแป้นกดร่วมใหม่ ส่งผลให้ประสิทธิภาพเพิ่มขึ้นอย่างมากในหลายๆ กรณี ไม่ควรมองเห็นการเปลี่ยนแปลง (If1d17, b/246961435)
  • เพิ่มการดำเนินการด้านความหมาย PerformImeAction เพื่อเรียกใช้การดำเนินการ IME บนโหนดเครื่องมือแก้ไขข้อความ (Ic606f, b/269633506)

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

  • อัปเดตภายในของ Modifier.hoverable แล้ว ตัวแก้ไข hoverable จะแสดงในเครื่องมือตรวจสอบก็ต่อเมื่อเปิดใช้ไว้ (I82103)

เวอร์ชัน 1.4

เวอร์ชัน 1.4.3

3 พฤษภาคม 2023

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

เวอร์ชัน 1.4.2

19 เมษายน 2023

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

เวอร์ชัน 1.4.1

5 เมษายน 2023

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

เวอร์ชัน 1.4.0

22 มีนาคม 2023

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

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

  • เพิ่มการผสานรวมความเข้ากันได้กับอีโมจิใน Text และ TextField รวมถึงย่อหน้าระดับต่ำลงมา โดยจะเปิดใช้โดยค่าเริ่มต้นเมื่อกำหนดค่าอีโมจิที่ใช้ร่วมกันแล้ว
  • คุณสามารถกำหนดค่า EmojiCompat ในข้อความที่เจาะจงได้โดยใช้ PlatformParagraphStyle
  • เพิ่มการรองรับช่วงสายเต็มใน LazyStaggeredGrid(I28252)
  • กำลังเพิ่ม onHover รุ่นทดลองไปยัง ClickableText (I6938f)
  • เปิดตัวโอเวอร์โหลดทดสอบใหม่สำหรับฟังก์ชัน runComposeUiTest และฟังก์ชัน create*ComposeRule ที่ยอมรับพารามิเตอร์ CoroutineContext บริบทจะใช้สำหรับการเรียบเรียงเพลงและการเรียก LaunchedEffect และ rememberCoroutineScope() ในการแต่งเพลง (I10614, b/265177763)
  • FlowRow และ FlowColumn พร้อมใช้งานเป็น @ExperimentalFoundationApi แล้ว ซึ่งอนุญาตให้มีเลย์เอาต์ของคอมโพเนนต์ตามแถวและคอลัมน์ที่ยืดหยุ่นมากขึ้น ซึ่งจะแบ่งเป็นบรรทัดใหม่หากแกนหลักมีพื้นที่ไม่เพียงพอ (I3a7b2)
  • Modifier.basicMarquee() พร้อมใช้งานเป็นเวอร์ชันทดลองสำหรับการแสดงเนื้อหาที่มีเอฟเฟกต์เส้นมาร์คีเลื่อน (I2df44, b/139321650)

เวอร์ชัน 1.4.0-rc01

8 มีนาคม 2023

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

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

  • เปิดตัว API ใหม่ระดับต่ำของ PlatformTextInputAdapter เพื่อสร้างการใช้งานการป้อนข้อความที่กำหนดเองซึ่งสื่อสารกับ API ของแพลตฟอร์มโดยตรง (I58df4)
  • เพิ่มการรองรับเลย์เอาต์แบบย้อนกลับใน LazyStaggeredGrid (I3ef4a)

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

  • ตอนนี้การดำเนินการความหมาย SetText ของ BasicTextField จะอัปเดตบัฟเฟอร์ข้อความโดยใช้เส้นทางโค้ดเดียวกันกับการอัปเดต IME และฟังก์ชันการทดสอบ (เช่น performTextReplacement)
  • ตอนนี้ฟังก์ชันการทดสอบข้อความ performTextClearance, performTextReplacement และ performTextSelection ใช้ SemanticsActions แล้ว (I0807d, b/269633168, b/269624358)

เวอร์ชัน 1.4.0-beta02

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

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

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

  • เพิ่ม Callback ของ Modifier.Node.onReset() ใหม่ซึ่งช่วยให้คุณรีเซ็ตสถานะในเครื่องบางสถานะเพื่อจัดการกับกรณีได้อย่างเหมาะสมเมื่อจะนำ Layout มาใช้ซ้ำ (เช่น เป็นรายการของ LazyColumn) แก้ไข FocusTargetModifierNode เพื่อรีเซ็ตสถานะการโฟกัสอย่างถูกต้อง (I65495, b/265201972)
  • เพิ่มพารามิเตอร์ BlendMode ในเมธอด DrawScope.drawText, Paragraph.paint และ MultiParagraph.paint เพื่อรองรับอัลกอริทึมการผสานต่างๆ เมื่อวาดข้อความบน Canvas (I57508)
  • นำ modifierElementOf() API ออกแล้ว โปรดขยายเวลาจาก ModifierNodeElement โดยตรงแทน (Ie6d21)

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

  • การปรับแฮนเดิลการเลือกจะไม่สามารถเลือกอักขระบางส่วนได้อีกต่อไป (Idedd1)
  • แก้ไขข้อขัดข้องเมื่อ ctrl+backspace เป็น TextField ว่าง (I0427f, b/244185537)

เวอร์ชัน 1.4.0-beta01

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

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

ฟีเจอร์ใหม่

  • ตั้งแต่เวอร์ชัน 1.3 ได้เพิ่มการผสานรวมความเข้ากันได้กับอีโมจิใน Text และ TextField รวมถึงย่อหน้าระดับต่ำลงมา โดยจะเปิดใช้โดยค่าเริ่มต้นเมื่อกำหนดค่าอีโมจิที่ใช้ร่วมกันแล้ว
  • คุณสามารถกำหนดค่า EmojiCompat ในข้อความที่เจาะจงได้โดยใช้ PlatformParagraphStyle

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

  • เพิ่มการใช้งานทั่วไปของ PinnableContainer API ที่ใช้ใน LazyLayouts ทั้งหมดเพื่อเก็บรักษารายการที่ออกจากการเรียบเรียง แต่ยังคงต้องใช้งานอยู่ (If45a4)
  • PinnableContainer.PinnedHandle.unpin() เปลี่ยนชื่อเป็น release() (I4667a)

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

  • เพิ่มพร็อพเพอร์ตี้ mainAxisItemSpacing ลงใน LazyListLayoutInfo, LazyGridLayoutInfo และ LazyStaggeredGridItemInfo (I52fad) แล้ว

เวอร์ชัน 1.4.0-alpha05

25 มกราคม 2023

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

ฟีเจอร์ใหม่

  • เพิ่มการรองรับช่วงสายเต็มใน LazyStaggeredGrid (I28252)
  • กำลังเพิ่ม onHover แบบทดลองไปยัง ClickableText (I6938f)
  • เปิดตัวโอเวอร์โหลดทดสอบใหม่สำหรับฟังก์ชัน runComposeUiTest และฟังก์ชัน create*ComposeRule ที่ยอมรับพารามิเตอร์ CoroutineContext บริบทจะใช้สำหรับการเรียบเรียงเพลงและการเรียก LaunchedEffect และ rememberCoroutineScope() ในการแต่งเพลง (I10614, b/265177763)

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

  • รวม API ก่อน/หลังของ OverscrollEffect เป็น "decorator" ที่รวมเข้าด้วยกัน applyToScroll และ applyToFling ดูตัวอย่างที่อัปเดตในเอกสารประกอบเพื่อดูตัวอย่างวิธีใช้งานเอฟเฟกต์การเลื่อนเกินด้วยรูปร่าง API ใหม่ (I8a9c4, b/255554340)
  • ประเภท/ความสามารถในการเว้นว่างที่มากขึ้นของฟังก์ชันในบรรทัด/เลิกใช้งานซึ่งซ่อน (I24f91)
  • LineBreak และ Hyphens API ใน TextStyle ได้เลื่อนระดับเป็นเวอร์ชันเสถียรแล้ว (Ic1e1d)

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

  • เคอร์เซอร์ในช่องข้อความจะยังกะพริบอยู่แม้จะปิดใช้ภาพเคลื่อนไหวก็ตาม (I95e70, b/265177763)
  • ตอนนี้ Modifier.basicMarquee จะเคลื่อนไหวแม้ว่าจะปิดใช้ภาพเคลื่อนไหวในการตั้งค่าระบบ (I23389, b/262298306, b/265177763)

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

  • ไม่ได้เลิกใช้งาน notifyFocusedRect เมธอดใน TextInputSession และ TextInputService อีกแล้ว (I23a04, b/262648050)

เวอร์ชัน 1.4.0-alpha04

11 มกราคม 2023

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

ฟีเจอร์ใหม่

  • FlowRow และ FlowColumn พร้อมใช้งานเป็น @ExperimentalFoundationApi แล้ว ซึ่งอนุญาตให้มีเลย์เอาต์ของคอมโพเนนต์ตามแถวและคอลัมน์ที่ยืดหยุ่นมากขึ้น ซึ่งจะแบ่งเป็นบรรทัดใหม่หากแกนหลักมีพื้นที่ไม่เพียงพอ (I3a7b2)
  • Modifier.basicMarquee() พร้อมใช้งานเป็นเวอร์ชันทดลองสำหรับการแสดงเนื้อหาที่มีเอฟเฟกต์เส้นมาร์คีเลื่อน (I2df44, b/139321650)

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

  • FocusRequesterModifierFocusRequesterNode
  • เครื่องมือสร้าง AndroidFont ที่มี variationSettings เป็น API ที่เสถียรแล้วในตอนนี้ และใช้เพื่อสร้างข้อบ่งชี้แบบอักษรประเภทใหม่ๆ ได้ (I5adcc, b/261565807)
  • เปิดตัว API PinnableContainer ที่เผยแพร่โดยรายการแบบ Lazy Loading ผ่านการเรียบเรียงเพลงในเครื่องที่อนุญาตให้ปักหมุดรายการปัจจุบัน ซึ่งหมายความว่าระบบจะไม่กำจัดรายการดังกล่าวเมื่อเลื่อนออกจากมุมมอง ตัวอย่างเช่น Modifier.focusable() จะปักหมุดรายการที่โฟกัสปัจจุบันผ่านกลไกนี้ (Ib8881, b/259274257, b/195049010)
  • ปรับเปลี่ยนวิธีที่การเลื่อนได้ตอบสนองต่อ bringIntoViewRequesters และการโฟกัสได้ เพื่อสร้างแบบจำลองความซับซ้อนของการดำเนินการเหล่านั้นให้ดียิ่งขึ้นและจัดการกับกรณีที่เป็นปัญหาจับต้องได้อื่นๆ เพิ่มเติม (I2e5fe, b/241591211, b/192043120, b/237190748, b/230756508, b/239451114)
  • ประเภทการแสดงผลเพิ่มเติมของฟังก์ชันที่ซ่อนซึ่งเลิกใช้งานแล้ว (Ibf7b0)
  • เพิ่ม TextMotion แบบทดลองลงใน TextStyle เพื่อกำหนดข้อความเป็น Static(default) หรือเป็นภาพเคลื่อนไหว ใช้ TextMotion.Animated หากข้อความจะมีการปรับขนาด แปล หรือหมุนผ่านภาพเคลื่อนไหว (I24dd7)
  • เพิ่ม TextFieldFocusModifier เพื่อแก้ไขพฤติกรรมการไปยังส่วนต่างๆ แบบโฟกัสสำหรับแพลตฟอร์ม Android (I00303)
  • แทนที่อาร์กิวเมนต์ maxSize: IntSize ใน drawText ด้วย size: Size ให้สอดคล้องกับฟังก์ชัน DrawScope อื่นๆ แล้ว size ได้รับการตั้งค่าเป็น Size.Unspecified โดยค่าเริ่มต้น ซึ่งไม่ควรเปลี่ยนลักษณะการทำงานเริ่มต้นก่อนหน้า (Icd27d)

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

  • การปรับฟิสิกส์การสแนปใน SnapFlingBehaviour เพื่อให้รู้สึกเป็นธรรมชาติยิ่งขึ้น

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

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

เวอร์ชัน 1.4.0-alpha03

7 ธันวาคม 2022

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

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

  • ในการทดสอบ UI โดยใช้กฎการเขียน ระบบจะไม่ส่งความต่อเนื่องที่ดำเนินการต่อในระหว่าง Callback withFrameNanos จนกว่า Callback ของเฟรมทั้งหมดจะทำงานเสร็จสิ้น ซึ่งจะตรงกับลักษณะการทำงานของการเขียนเมื่อทำงานตามปกติ อย่างไรก็ตาม การทดสอบที่อิงตามลักษณะการทำงานแบบเดิมอาจล้มเหลว การดำเนินการนี้ควรส่งผลกับโค้ดที่เรียกใช้ withFrameNanos หรือ withFrameMillis โดยตรงเท่านั้น และมีตรรกะนอก Callback ที่ส่งผ่านไปยังฟังก์ชันเหล่านั้นซึ่งอาจต้องย้ายภายใน Callback ดูการเปลี่ยนแปลงในการทดสอบภาพเคลื่อนไหวในตัวอย่าง CL นี้
  • เพิ่มพารามิเตอร์ onPerformTraversals: (Long) -> Unit ที่ไม่บังคับลงในเครื่องมือสร้าง TestMonotonicFrameClock และฟังก์ชันจากโรงงานเพื่อเรียกใช้โค้ดหลัง Callback withFrameNanos รายการ แต่ก่อนที่จะเรียกให้ผู้โทรกลับมาทำงานอีกครั้ง โครูทีน (Idb413, b/254115946, b/222093277, b/255802670)
  • แนะนำการดำเนินการสำหรับการเข้าถึงหน้าเว็บ: PageUp, PageDown, PageLeft, PageRight โปรดทราบว่าข้อมูลเหล่านี้มีใน API 29 เท่านั้น (Ida4ab)
  • แนะนำ HorizontalPager และ VerticalPager ซึ่งเป็นวิธีแสดง Composable ในลักษณะเพจเจอร์ แนะนำ PagerState เพื่อควบคุมเพจเจอร์ รวมถึงข้อมูลข้อความค้นหาเกี่ยวกับสถานะปัจจุบันของเพจเจอร์ ขอแนะนำ PageSize ซึ่งเป็นวิธีควบคุมขนาดหน้าของเพจเจอร์ซึ่งใช้สร้างภาพหมุนได้เหมือนกับเพจเจอร์ เปิดตัว PagerSnapDistance ซึ่งเป็นวิธีควบคุมการทำงานของการสแนปตามลักษณะการสะบัดของเพจเจอร์ (I01120)
  • เริ่มใช้โอเวอร์โหลดใน SnapFlingBehavior.performFling เพื่อช่วยให้เข้าใจว่าการสะบัดจะคงที่ที่ตำแหน่งใด (I569f6)
  • นำ OverscrollEffect#isEnabled ออกแล้ว แทนที่จะต้องจำและตั้งค่า Flag นี้ เพียงแค่อย่าส่งเหตุการณ์ไปยังเอฟเฟกต์การเลื่อนมากเกินไปในกรณีที่ไม่ต้องการให้แสดงการเลื่อนเกิน (เช่น หาก ScrollableState#canScrollForward/backward แสดงค่า "เท็จ" ทั้งคู่) (I1a4b0, b/255554340, b/255557085)
  • เพิ่ม ScrollableState#canScrollForward และ ScrollableState#canScrollBackward ลงในการค้นหาว่า ScrollableState มีพื้นที่ว่างสำหรับการเลื่อนในทิศทางใดหรือไม่ (ไม่ว่าจะอยู่ต่ำสุด / สูงสุดของช่วงหรือไม่) ซึ่งจะมีค่าเริ่มต้นเป็น true สำหรับความเข้ากันได้แบบย้อนหลังกับการใช้งาน ScrollableState ที่มีอยู่ ผู้บริโภคสามารถใช้เครื่องหมายนี้เพื่อแสดงสัญญาณบอกสถานะให้ผู้ใช้ทราบว่ายังมีพื้นที่ให้เลื่อนได้ และสามารถใช้เพื่อหลีกเลี่ยงการส่งเดลต้าไปยัง ScrollableStates ที่ไม่มีที่ว่างให้เลื่อนตามทิศทางที่กำหนด เพื่อลดงานที่ไม่จำเป็น (Idf1a0, b/255557085)
  • เพิ่ม Modifier API เพื่อค้นหาข้อมูลการเลื่อนระดับบน (I2ba9d, b/203141462)
  • ใช้ใน Clickable เพื่อหน่วงเวลาการโต้ตอบกับการกดอย่างถูกต้อง เมื่อท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
  • แก้ไข Clickables ไม่ให้เลื่อน Ripples อย่างถูกต้องเมื่อใช้ภายใน Scrollable ViewGroup
  • ลิ้นชักและชีตที่อัปเดตใหม่เพื่อให้หน่วงเวลาการกดได้อย่างถูกต้องในกรณีที่ท่าทางสัมผัสอาจกลายเป็นเหตุการณ์การเลื่อน
  • อัปเดตชื่อของ snapStepSize ให้สอดคล้องกับวิธีอื่นใน SnapLayoutInfoProvider (Ife67c)
  • เพิ่ม EmojiCompat ใน Compose (Ibf6f9, b/139326806) แล้ว
  • เปลี่ยนชื่อ consumedWindowInsets() เป็น consumeWindowInsets() และ withConsumedWindowInsets() เป็น onConsumedWindowInsetsChanged() และทำให้ตัวปรับแต่งเป็นแบบสาธารณะ (Ie44e1)

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

  • ข้อขัดข้องที่เกิดขึ้นกับ Modifier.animateItemPlacement() และตารางกริดแบบ Lazy ได้รับการแก้ไขแล้ว เหตุการณ์นี้เกิดขึ้นได้ในบางเงื่อนไขเมื่อจํานวนรายการใหม่น้อยกว่ารายการก่อนหน้า (I0bcac, b/253195989)

เวอร์ชัน 1.4.0-alpha02

9 พฤศจิกายน 2022

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

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

  • ตอนนี้ awaitFirstDown และ waitForUpOrCancellation ยอมรับPointerEventPassเพื่อให้มีความยืดหยุ่นมากขึ้น (I7579a, b/212091796)
  • เปลี่ยนกลับ API ของ beyondBoundCount จาก Lazy* API (I12197)
  • แนะนำพารามิเตอร์ใน Lazy API เพื่อเขียนและวางรายการในวิวพอร์ต (I69e89, b/172029355)
  • เพิ่มพารามิเตอร์ minLines ใน BasicText และ BasicTextField วิธีนี้ช่วยตั้งค่าความสูงขั้นต่ำของ Composable เหล่านี้ในแง่ของ จำนวนสาย (I24294, b/122476634)

เวอร์ชัน 1.4.0-alpha01

24 ตุลาคม 2022

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

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

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

เวอร์ชัน 1.3

เวอร์ชัน 1.3.1

9 พฤศจิกายน 2022

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

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

  • แก้ไขปัญหาด้านประสิทธิภาพใน BeyondBoundsLayout (aosp/2255266)
  • ContentInViewModifier จะไม่อ่านพิกัดของเลย์เอาต์ เว้นแต่จะแนบไว้ (aosp/2241316)

เวอร์ชัน 1.3.0

24 ตุลาคม 2022

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

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

  • เปิดตัว LazyVerticalStaggeredGrid และ LazyHorizontalStaggeredGrid เวอร์ชันทดลอง
  • ระบบได้เพิ่ม SnapFlingBehavior, rememberSnapFlingBehavior และ API อื่นๆ ที่เกี่ยวข้องเป็นเวอร์ชันทดลอง
  • ตอนนี้ Modifier.clickable, Modifier.toggleable และ Modifier.selectable จะแสดงระลอกคลื่นเมื่อคลิกด้วยแป้นพิมพ์หรือ D-pad บนรีโมตคอนโทรล

เวอร์ชัน 1.3.0-rc01

5 ตุลาคม 2022

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

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

  • แนะนำ lowVelocityAnimationSpec ซึ่งใช้โดยขั้นตอนวิธีการเมื่อความเร็วกระพริบไม่เพียงพอสำหรับการเสื่อมสภาพ (Iaeb27)
  • เพิ่มขีดกลางสั้น API แบบทดลองใหม่เพื่อรองรับการใส่ยัติภังค์อัตโนมัติในข้อความ (Iaa869)

เวอร์ชัน 1.3.0-beta03

21 กันยายน 2022

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

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

  • เพิ่มตัวเลือกเพื่อปรับแต่งการขึ้นบรรทัดใหม่ในข้อความ (I86907)
  • ตอนนี้ BringIntoViewResponder รับขอบเขตล่าสุดของคำขอได้แล้วขณะที่ประมวลผลคำขอ (If86a5, b/241591211)
  • แนะนำการรองรับการเว้นวรรคระหว่างรายการกับ Staggered Grid (I10b82) เวอร์ชันทดลอง
  • แนะนำระยะห่างจากขอบของเนื้อหาใน Staggered Grid (I342ea) เวอร์ชันทดลอง
  • เปลี่ยนอาร์กิวเมนต์ size:IntSize ที่มี constraints: Constraints ในเมธอด TextMeasurer.measure เพื่อรองรับการจำกัดความกว้างขั้นต่ำแล้ว (I37530, b/242707525)
  • เพิ่ม Modifier.withConsumedWindowInsets() เพื่อรับการใช้งาน WindowInsets สำหรับใช้ภายนอก windowInsetsPadding
  • เพิ่ม MutableWindowInsets เพื่อให้เปลี่ยน WindowInsets ได้อย่างง่ายดายโดยไม่ต้องจัดองค์ประกอบใหม่ (I7fd28, b/237019262, b/243119659)

เวอร์ชัน 1.3.0-beta02

7 กันยายน 2022

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

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

  • เวอร์ชันเริ่มต้นของ StaggeredGrid เวอร์ชันทดลอง (Ia48be)
  • เปลี่ยนชื่อ FocusDirection.In และ FocusDirection.Out เป็น FocusDirection.Enter และ FocusDirection.Exit (Ia4262, b/183746982) แล้ว
  • เปิดตัวโอเวอร์โหลด rememberSnapFlingBehavior ซึ่งช่วยให้เปิดใช้การสแนปใน LazyLists ได้อย่างรวดเร็ว (Ifb48a)
  • แทนที่โรงงาน snapFlingBehavior ด้วยคลาส SnapFlingBehavior ที่เป็นคอนกรีตแล้ว กำหนดขอบเขตเมธอด SnapLayoutInfoProvider เป็นความหนาแน่นเพื่อทำให้ Conversion Dp<->Px ง่ายขึ้นสำหรับผู้ใช้ API (I54a11)
  • อัปเดต LazyLayoutMeasureScope.measure เพื่อแสดงรายการตำแหน่งที่มีตำแหน่งได้ โดยไฮไลต์ความไม่เปลี่ยนแปลงที่ต้องการของค่าที่ส่งคืน (I48b7c)
  • แนะนำ SnapLayoutInfoProvider ซึ่งใช้ LazyListState ในการสร้างอินสแตนซ์ของ SnapLayoutInfoProvider ที่ใช้เพื่อเปิดใช้สแนป FlingBehavior สำหรับ LazyLists ได้ (I2dd10)

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

  • เปลี่ยนโครงสร้างภายในโค้ด AwaitPointerEventScope#awaitLongPressOrCancellation ให้ตรงกับฟังก์ชันอื่นๆ ที่รออยู่ (I646e6)

เวอร์ชัน 1.3.0-beta01

24 สิงหาคม 2022

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

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

  • นำ pointerPosition ออกจาก OverscrollEffect แล้ว - เอฟเฟกต์ที่สนใจเกี่ยวกับตำแหน่งตัวชี้สามารถใช้ Modifier.pointerInput { } ใน effectModifier เพื่อรับตำแหน่งตัวชี้ปัจจุบันแทน (I9f606, b/241239306)
  • เปิดเผย AwaitPointerEventScope#awaitLongPressOrCancellation เป็นองค์ประกอบที่ใช้สร้างสรรค์เพิ่มเติมสำหรับการตรวจจับท่าทางสัมผัสที่ซับซ้อนยิ่งขึ้น (I04374, b/181577176)
  • เปิดตัว lazyListSnapLayoutInfoProvider เพื่อให้สแนปในรายการแบบ Lazy Loading (I3ecdf)
  • แนะนำ SnapFlingBehavior ซึ่งเป็นลักษณะการทำงานของการสแนปรายการ ระบุอินสแตนซ์ของ SnapLayoutInfoProvider ที่มีข้อมูลเกี่ยวกับเลย์เอาต์การสแนป (Ie754C)

เวอร์ชัน 1.3.0-alpha03

10 สิงหาคม 2022

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

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

  • ตอนนี้ Resource Fonts รองรับการตั้งค่ารูปแบบของแบบอักษร (API 26 ขึ้นไป) แล้ว (I900dd, b/143703328)
  • การรองรับแบบอักษรที่ปรับเปลี่ยนได้ในภาษาDeviceFontFamilyNameFont (Ic1279, b/143703328)
  • นำหมายเหตุทดลองออกจาก PlatformTextStyle และ LineHeightStyle แล้ว (I64bef)
  • ตอนนี้ช่องข้อความจะแสดงข้อยกเว้นโดยละเอียดมากขึ้นเมื่อ OffsetMapping ที่ระบุโดย VisualTransformation แสดงผลดัชนีที่ไม่ถูกต้อง (Ie73f9, b/229378536)
  • เปิดตัว API เวอร์ชันทดลองเพื่อแชร์ตรรกะผู้ให้บริการรายการระหว่างเลย์เอาต์แบบ Lazy Loading (Ic891C)
  • ScrollableDefaults.reverseDirection() ไม่ใช่เวอร์ชันทดลองอีกต่อไป (Iba646)
  • เลิกใช้งาน SemanticsModifier.id และย้ายรหัสความหมายไปยัง LayoutInfo.semanticsId แทน (Iac808, b/203559524)
  • checkScrollableContainerConstraints() ไม่ใช่เวอร์ชันทดลองอีกต่อไป (I2C290)
  • Modifier.clipScrollableContainer() ไม่ใช่เวอร์ชันทดลองอีกต่อไป (Ia2b44)
  • เลิกใช้งาน TextInputService.show|hideSoftwareKeyboard โปรดใช้ SoftwareKeyboardController แทนในโค้ดของแอปและใช้ TextInputSession ในโค้ดการจัดการ IME (I14e4c, b/183448615)

เวอร์ชัน 1.3.0-alpha02

27 กรกฎาคม 2022

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

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

  • เพิ่มฟังก์ชันของส่วนขยาย drawText ใน DrawScope เพื่อระบุวิธีเขียนข้อความที่มีสไตล์หลากหลายใน Composable และตัวแก้ไขที่ทำงานใน DrawScope เช่น Canvas และ drawBehind (I16a62, b/190787898)

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

  • ตอนนี้แป้นพิมพ์เสมือนจะซ่อนไปเมื่อมีการปิดใช้ช่องข้อความขณะโฟกัส (I6e3e4, b/237308379)
  • เมื่อเพิ่มเหตุการณ์ InputEventChange ลงในตัวติดตามอัตราความเร็ว ตอนนี้เราจะพิจารณาเดลต้าแทนตำแหน่ง ซึ่งจะรับประกันอัตราความเร็วที่มีการคำนวณอย่างถูกต้องสำหรับทุกกรณีแม้ว่าองค์ประกอบเป้าหมายจะมีการขยับ (Icea9d, b/216582726, b/223440806, b/227709803)
  • เมื่อเลื่อนได้มีเด็กที่โฟกัสอยู่ ตอนนี้หน้าจอจะเลื่อนได้อย่างถูกต้องเพื่อให้เด็กที่โฟกัสอยู่ในมุมมองเมื่อลดขนาดลง แม้ว่าขนาดจะเป็นภาพเคลื่อนไหวก็ตาม (I80867, b/230756508, b/220119990)
  • แก้ไขข้อขัดข้องที่ TextField ถูกล้างและเติมข้อมูลใหม่ขณะที่เลือกทำงาน (I1235b, b/208655565, b/214253689)

เวอร์ชัน 1.3.0-alpha01

29 มิถุนายน 2022

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

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

  • เปิดตัวประเภทคำอธิบายประกอบ UrlAnnotation และวิธีที่เกี่ยวข้องเพื่อรองรับการรองรับลิงก์ TalkBack ใน AnnotatedString วินาที (I1c754, b/231495122)

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

  • BasicTextField cursorBrush อาจเปลี่ยนเป็นภาพเคลื่อนไหวได้โดยไม่ต้องเริ่มตัวจับเวลาเคอร์เซอร์ใหม่ (I812e6, b/236383522)

เวอร์ชัน 1.2

เวอร์ชัน 1.2.1

10 สิงหาคม 2022

ปล่อย androidx.compose.foundation:foundation:1.2.1 และ androidx.compose.foundation:foundation-layout:1.2.1 แล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้

เวอร์ชัน 1.2.0

27 กรกฎาคม 2022

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

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

  • LazyVerticalGrid และ LazyHorizontalGrid มีความเสถียรแล้วตอนนี้
  • คุณจะระบุประเภทเนื้อหาให้กับรายการต่างๆ ในรายการแบบ Lazy และตารางกริดก็ได้ ซึ่งจะช่วยให้คอมโพเนนต์ต่างๆ นำองค์ประกอบกลับมาใช้ใหม่ได้อย่างมีประสิทธิภาพมากขึ้น
  • ตอนนี้รายการแบบ Lazy Loading และตารางกริดมีพารามิเตอร์ userScrollEnabled แล้ว ซึ่งจะช่วยให้คุณปิดใช้การเลื่อนผ่านท่าทางสัมผัสของผู้ใช้ได้
  • เพิ่ม API ทดลองใหม่ที่ชื่อ LazyLayout แล้ว โดยเป็น API ที่เราใช้ภายในเพื่อขับเคลื่อนรายการและตารางกริดแบบ Lazy Loading
  • เปิดตัว OverscrollEffect API เป็นเวอร์ชันทดลอง โดยคุณสามารถกำหนดเอฟเฟกต์การเลื่อนเกินที่กำหนดเอง รวมถึงเพิ่มแพลตฟอร์มมาตรฐานลงในคอนเทนเนอร์แบบเลื่อนได้ที่กำหนดเอง
  • มีการนำ API ความสามารถในการทำงานร่วมกันของการเลื่อนที่ซ้อนกันมาใช้เพื่อช่วยให้สามารถทำงานร่วมกันระหว่างมุมมองและเขียนตัวดำเนินการแบบเลื่อนได้
  • มีการเพิ่มการเลื่อนเมาส์และแทร็กแพดลงในคอนเทนเนอร์ที่เลื่อนทั้งหมด

เวอร์ชัน 1.2.0-rc03

29 มิถุนายน 2022

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

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

เวอร์ชัน 1.2.0-rc02

22 มิถุนายน 2022

ปล่อย androidx.compose.foundation:foundation:1.2.0-rc02 และ androidx.compose.foundation:foundation-layout:1.2.0-rc02 แล้ว เวอร์ชัน 1.2.0-rc02 มีคอมมิตเหล่านี้

เวอร์ชัน 1.2.0-rc01

15 มิถุนายน 2022

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

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

  • เปิดตัว OverscrollEffect เวอร์ชันทดลองเพื่อรองรับเอฟเฟกต์การเลื่อนเกินแบบกำหนดเอง ร่วมกับโอเวอร์โหลด Modifier.scrollable ที่รองรับเอฟเฟกต์ดังกล่าว
  • LocalOverScrollConfiguration เวอร์ชันทดลองย้ายจาก foundation.gesture ไปยังแพ็กเกจพื้นฐานและเปลี่ยนชื่อเป็น LocalOverscrollConfiguration (If19fb, b/204650733)
  • ตอนนี้อินเทอร์เฟซในไลบรารีการเขียนที่สร้างขึ้นโดยใช้เมธอดอินเทอร์เฟซเริ่มต้น jdk8 (I5bcf1)
  • เปิดตัว API เวอร์ชันทดลอง checkScrollableContainerConstraints() ซึ่งช่วยให้ตรวจสอบว่าเราไม่ได้ฝังคอนเทนเนอร์ที่เลื่อนได้ คุณสามารถใช้ฟีเจอร์นี้เมื่อสร้างเลย์เอาต์แบบ Lazy Loading ของคุณเองได้ผ่าน LazyLayout (Id6fab, b/233352497)
  • นำ LazyVerticalGrid ที่เลิกใช้งานแล้วออกจากแพ็กเกจ androidx.compose.foundation.lazy API ที่เสถียรใหม่อยู่ใน androidx.compose.foundation.lazy.grid (I73c76, b/225192009)

เวอร์ชัน 1.2.0-beta03

1 มิถุนายน 2022

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

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

  • เพิ่ม IntervalList และ MutableIntervalList แบบทดลองใหม่ ทำให้สามารถแสดงรายการค่าบางส่วนผ่านช่วงเวลาหลายช่วง ซึ่งจะมีประโยชน์เมื่อคุณต้องการกำหนด dsl ของคุณเองที่คล้ายกับรายการที่ LazyColumn ใช้ ซึ่งสามารถกำหนดรายการผ่านการเรียก item/items ได้หลายรายการ (I2d05e, b/228580728)

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

  • ชี้แจงเอกสารประกอบสำหรับ WindowInsets.ime เพื่อระบุว่ามีการรายงานชุดเนื้อหา ime ย้อนตั้งแต่ API 23 แต่เป็นภาพเคลื่อนไหวในเวอร์ชัน 30 ขึ้นไปเท่านั้น (Ia7fc0, b/230756508)
  • การกดแป้นลบไปข้างหน้าเมื่อเคอร์เซอร์อยู่ที่จุดสิ้นสุดของช่องข้อความจะไม่ขัดข้องอีกต่อไป
  • ตอนนี้ DeleteSurroundingTextCommand และ DeleteSurroundingTextInCodePointsCommand กำหนดให้อาร์กิวเมนต์ตัวสร้างเป็นค่าไม่ติดลบ (Ica8e6, b/199919707)

เวอร์ชัน 1.2.0-beta02

18 พฤษภาคม 2022

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

  • ความละเอียดแบบอักษรที่ดาวน์โหลดได้ที่ไม่เปลี่ยนแปลงขนาดเลย์เอาต์ของข้อความหรือ TextField จะไม่วาดซ้ำ ซึ่งส่งผลให้การแสดงแบบอักษรไม่มีการอัปเดต การแก้ไขข้อบกพร่องนี้ช่วยให้มั่นใจว่าเลย์เอาต์ข้อความจะทริกเกอร์การวาดซ้ำเสมอ (b/229727404) (I1d49e, b/229727404)

เวอร์ชัน 1.2.0-beta01

11 พฤษภาคม 2022

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

ฟีเจอร์ใหม่

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

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

  • เพิ่ม BeyondBoundsInterval แบบทดลองที่ใช้ได้แล้ว ตามการติดตั้งใช้งานที่กําหนดเองของ LazyList เมื่อเลย์เอาต์รายการอยู่นอกขอบเขตที่มองเห็นได้ (Ifabfb, b/184670295)
  • LineHeightBehavior เปลี่ยนชื่อเป็น LineHeightStyle แล้ว
  • LineVerticalAlignment เปลี่ยนชื่อเป็น LineHeightStyle.Alignment แล้ว
  • เปลี่ยนชื่อ LineHeightTrim เปลี่ยนชื่อเป็น LineHeightStyle.Trim
  • นำค่าเริ่มต้นของตัวสร้างจาก LineHeightStyle ออกแล้ว (I582bf, b/181155707)
  • เพิ่มค่าเริ่มต้นสำหรับสมาชิกที่ไม่บังคับของอินเทอร์เฟซ LazyLayoutItemProvider (Iba8a0)
  • ตอนนี้ใน API ของ LazyLayoutItemProvider แทนที่จะเป็นโรงงานที่ส่งคืน lambda แบบประกอบได้ด้วยดัชนี ตอนนี้เรามีรายการฟังก์ชันที่ประกอบกันได้ซึ่งง่ายกว่าซึ่งยอมรับดัชนี (รหัส 2196)
  • LazyLayoutItemsProvider เปลี่ยนชื่อเป็น LazyLayoutItemProvider (I0638c)
  • LazyLayoutItemsProvider.itemsCount เปลี่ยนชื่อเป็น itemCount (Id409c)
  • เพิ่มแปรงใน 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 มีค่าเป็น false (I97332, b/181155707)

  • เพิ่มตัวแก้ไข imeNestedScroll() แบบทดลองเพื่อให้นักพัฒนาซอฟต์แวร์ควบคุม IME ผ่านการเลื่อนได้ (I60759)

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

  • แก้ไขการถดถอยที่ช่องข้อความไม่ซ่อนแป้นพิมพ์เมื่อนำออกจากการเรียบเรียงขณะโฟกัส (I7a410, b/230536793, b/225541817)
  • รองรับจุดไข่ปลาเมื่อมีการจำกัดความสูงและไม่พอดีกับบรรทัดข้อความทั้งหมด (Ie528c, b/168720622)
  • ตอนนี้ BringIntoViewRequester.bringIntoView จะระงับใช้จนกว่าคำขอจะเสร็จสมบูรณ์หรือถูกขัดจังหวะโดยคำขอที่ใหม่กว่าที่ไม่ทับซ้อนกัน คำขอที่ทับซ้อนกันจะอยู่ในคิว (I43e7f, b/216790855)
  • การเรียก BringIntoViewRequester.bringIntoView พร้อมกันสำหรับรูปสี่เหลี่ยมผืนผ้าที่ซ้อนทับกันทั้งหมดจะมีผลเฉพาะ คำขอของสี่เหลี่ยมผืนผ้าที่ใหญ่กว่า (I34be7, b/216790855, b/184760918)
  • เปิด includeFontPadding ตามค่าเริ่มต้นแล้ว คุณปิด includeFontPadding ได้โดยใช้แอตทริบิวต์ TextStyle.platformTextStyle ส่วนในอนาคตอันใกล้ เราจะเปลี่ยนลักษณะการทำงานเริ่มต้นแต่จนกว่าจะถึงเวลานั้น วิธีนี้จะช่วยให้เราผสานรวมการปรับปรุงความสูงของบรรทัด (aosp/2058653) และแก้ปัญหาการคลิป TextField ได้ดียิ่งขึ้น (I01423, b/171394808)
  • Modifier.bringIntoViewRequester ไม่ได้ใช้ onGloballyPositioned แล้ว (I630f5)

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

  • ตอนนี้ MouseInjectionScope.scroll(delta = someDelta) จะกลับสีใน Android หากเราเลื่อนในแนวตั้ง (หาก Delta เป็นบวก จะเลื่อนลง) (Ifb697, b/224992993)

เวอร์ชัน 1.2.0-alpha08

20 เมษายน 2022

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

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

  • แสดงน้ำหนักที่ใช้ได้ทั้งหมดสำหรับแบบอักษรของระบบใน Android เมื่อใช้ FontFamily.SansSerif ซึ่งจะใช้ชื่อแบบอักษรสำรอง เช่น sans-serif-medium ภายใน API 21-28 นี่เป็นการเปลี่ยนแปลงลักษณะการทำงานเนื่องจากก่อนหน้านี้ API 21-28 รองรับเฉพาะน้ำหนัก 400 และ 700 เท่านั้น (I380fe, b/156048036, b/226441992)
  • ตอนนี้ย่อหน้าและหลายย่อหน้ายอมรับพารามิเตอร์ข้อจำกัดแล้ว การส่งผ่าน Constraints.maxHeight ยังไม่มีการดำเนินการในขณะนี้ แต่จะอนุญาตให้ ก็ทำการคำนวณบางอย่างในอนาคตได้ด้วย เช่น จุดไข่ปลาตามความสูง (I6afee, b/168720622)
  • ตอนนี้ SubcomposeSlotReusePolicy.getSlotsToRetain() ยอมรับคลาสที่เหมือน MutableSet ที่กำหนดเองแล้ว ซึ่งไม่อนุญาตให้เพิ่มรายการใหม่ในชั้นนั้น (Icd314)
  • เราเลิกใช้งานการใช้งานบางส่วน (ลดลง OR) แล้วใน PointerInputChange คุณใช้ consume() เพื่อทำการเปลี่ยนแปลงได้ทั้งหมด คุณสามารถใช้ isConsumed เพื่อดูว่าคนอื่นได้ใช้การเปลี่ยนแปลงก่อนหน้านี้หรือไม่
  • ตอนนี้ PointerInputChange::copy() จะทําสําเนาแบบตื้นเสมอ ซึ่งหมายความว่าระบบจะใช้สำเนาของ PointerInputChange เมื่อเลือกใช้สำเนา 1 ชุด หากต้องการสร้าง PointerInputChange ที่ไม่มีการเชื่อมโยง ให้ใช้ตัวสร้างแทน (Ie6be4, b/225669674)
  • เปิดตัว API ใหม่ของ LazyLayout รุ่นทดลอง ซึ่งจะช่วยให้คุณสร้างคอมโพเนนต์ของคุณเองได้ เช่น LazyColumn จาก LazyVerticalGrid โปรดทราบว่า API อยู่ในช่วงเริ่มต้น และสามารถเปลี่ยนแปลงได้ในรุ่นต่อๆ ไป (Iba2bc, b/166591700)
  • ตอนนี้ AndroidFont จะนำ typefaceLoader เป็นพารามิเตอร์ตัวสร้าง (I2c971)
  • ตอนนี้โฆษณาที่แสดงร่วม WindowInsets จะแสดงการมองเห็น (ไม่ว่าจะอยู่บนหน้าจอหรือไม่ก็ตาม) และขนาดที่จะปรากฏได้หากพร้อมใช้งานในอุปกรณ์ แต่ยังไม่ได้ใช้งานอยู่ (I65182, b/217770337)

เวอร์ชัน 1.2.0-alpha07

6 เมษายน 2022

ปล่อย androidx.compose.foundation:foundation:1.2.0-alpha07 และ androidx.compose.foundation:foundation-layout:1.2.0-alpha07 แล้ว เวอร์ชัน 1.2.0-alpha07 มีคอมมิตเหล่านี้

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

  • เพิ่ม PinnableParent API ที่อนุญาตให้บุตรหลานใช้เลย์เอาต์แบบ Lazy Loading เพื่อป้องกันการกำจัดรายการที่เขียนในปัจจุบัน (Ibbdd0, b/184670295)
  • ตอนนี้ LazyListLayoutInfo และ LazyGridLayoutInfo มีช่อง beforeContentPadding และ afterContentPadding (I3b628, b/200920410)
  • เพิ่ม KeyboardType.Decimal เป็นทางเลือกสำหรับ Keyboard.Number สำหรับการรวมตัวคั่นทศนิยมใน IME โดยเฉพาะ (Iec4c8, b/209835363)
  • เพิ่มแบบอักษรข้อบ่งชี้แบบอักษรใหม่(DeviceFontFamilyName) ไปยัง เลือกค้นหาแบบอักษรที่ระบบติดตั้งในระหว่างห่วงโซ่สำรองแบบอักษร (I30468, b/219754572)
  • PointerEventType.Scroll และ PointerEvent.scrollDelta เป็น API ที่เสถียรแล้ว (I574c5, b/225669674)
  • การกำหนดค่าความเข้ากันได้ชั่วคราวสำหรับ includeFontPadding ใน TextStyle/ParagraphStyle. includeFontPadding ที่เพิ่มสามารถเปลี่ยนแปลงได้ผ่าน TextStyle(platformStyle = PlatformTextStyle(includeFontPadding = true/false)) ตัวเลือกนี้เป็นตัวเลือกการกำหนดค่าชั่วคราวเพื่อเปิดใช้การย้ายข้อมูลและจะถูกนำออก (If47be, b/171394808)
  • อัปเดต FontFamily.Resolver เพื่อผสานรวมการตั้งค่าการช่วยเหลือพิเศษสำหรับข้อความเป็นตัวหนาทั้งระบบ (I6c1e7)
  • พร็อพเพอร์ตี้ส่วนขยาย consumeWindowInsets ของ ComposeView ช่วยให้นักพัฒนาซอฟต์แวร์ปิดใช้ Android WindowInsets ได้ ซึ่งจะทำให้ ComposeViews ที่แยกกันในลำดับชั้นมีผลกับ WindowInsets แต่ละรายการโดยไม่รบกวนกันและกัน (I0ef08, b/220943142)

เวอร์ชัน 1.2.0-alpha06

23 มีนาคม 2022

ปล่อย androidx.compose.foundation:foundation:1.2.0-alpha06 และ androidx.compose.foundation:foundation-layout:1.2.0-alpha06 แล้ว เวอร์ชัน 1.2.0-alpha06 มีคอมมิตเหล่านี้

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

  • เพิ่มการดำเนินการด้านความหมาย RequestFocus เพื่อขอให้โฟกัสที่เป้าหมายที่โฟกัสได้ (I17b71)
  • FocusOrder ได้รวมกันเป็น FocusProperties แล้ว และตอนนี้ focusProperties() มีความสามารถทั้งหมดของ focusOrder() FocusOrder และ focusOrder() เลิกใช้งานแล้ว คุณควรแทนที่ focusOrder() ที่ยอมรับ focusRequester ด้วยตัวแก้ไข focusRequester() ร่วมกับ focusProperties() วิธีนี้ช่วยให้ผู้ปรับแยกข้อกังวลได้ชัดเจนขึ้น (I601b7)
  • เพิ่ม WindowInsets.asPaddingValues(Density) แล้วเพื่ออนุญาตให้นักพัฒนาซอฟต์แวร์แปลงได้โดยไม่จำเป็นต้องเขียนเนื้อหา (I94c35)
  • อัปเดตการแยกวิเคราะห์ของเวกเตอร์ที่ถอนออกได้เพื่อรองรับการมิเรอร์อัตโนมัติ เพื่อพลิกเนื้อหาของ VectorPainter หากเลย์เอาต์ปัจจุบัน คือขวาไปซ้าย (I79cd9, b/185760237)

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

  • ตอนนี้ตัวแก้ไขการเลื่อน (Modifier.verticalScroll(),Modifier.horizontalScroll() และ Modifier.scrollable()) จะเลื่อนเพื่อให้ Composable ที่โฟกัสมองเห็นได้หากมีการปรับขนาดพื้นที่การเลื่อนและมองเห็น Composable ที่โฟกัสไว้ก่อนหน้านี้
  • ตอนนี้ฟิลด์ข้อความจะเก็บไว้ด้านบนแป้นพิมพ์เมื่อโฟกัสและมีการแสดงแป้นพิมพ์ เมื่ออยู่ภายในแบบเลื่อนไม่ได้แบบ Lazy Loading และโหมดการป้อนข้อมูลแบบซอฟต์คือ ADJUST_RESIZE (I4a485, b/190539358, b/192043120, b/216842427)

เวอร์ชัน 1.2.0-alpha05

9 มีนาคม 2022

ปล่อย androidx.compose.foundation:foundation:1.2.0-alpha05 และ androidx.compose.foundation:foundation-layout:1.2.0-alpha05 แล้ว เวอร์ชัน 1.2.0-alpha05 มีคอมมิตเหล่านี้

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

  • ขณะนี้ LazyVerticalGrid และ LazyHorizontalGrid มีความเสถียรแล้ว (I307c0)
  • LazyGridItemInfo.Unknown ถูกแทนที่ด้วย LazyGridItemInfo.UnknownRow และ LazyGridItemInfo.UnknownColumn แยกกัน (I56d51)
  • LazyVerticalGrid/LazyHorizontalGrid และ API ที่เกี่ยวข้องทั้งหมดถูกย้ายไปยังแพ็กเกจย่อย .grid แล้ว โปรดอัปเดตการนำเข้าจาก androidx.compose.foundation.lazy ไปยัง androidx.compose.foundation.lazy.grid (I2d446, b/219942574)
  • ข้อความ: includeFontPadding จะปิดอยู่โดยค่าเริ่มต้น ปัญหาการคลิปที่เกิดจาก includeFontPadding=false ได้รับการจัดการแล้ว และไม่ควรสร้างคลิปสำหรับสคริปต์แบบยาว (I31c84, b/171394808)
  • อินเทอร์เฟซที่วัดได้จะแสดงพร็อพเพอร์ตี้ parentData (I3313f)
  • เปิดตัว Modifier.onFocusedBoundsChanged เวอร์ชันทดลองเพื่อให้ โดยสังเกตขอบเขตของสิ่งที่เด็กๆ โฟกัสได้ (I14283, b/220030968, b/190539358, b/192043120, b/216842427)
  • เพิ่ม LazyHorizontalGrid แล้ว (I61ae7, b/191238807)
  • เพิ่ม API ของ LazyVerticalGrid ใหม่เพื่อกำหนดขนาดของแกนไขว้ (I17723)
  • เพิ่มตัวปรับแต่ง FocusGroup แล้ว (I64bc0, b/213508274, b/184670295)

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

  • ตอนนี้ WindowInsets.toString() จะแสดงค่าที่ถูกต้อง (I1585D)

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

  • อัปเดตเพื่อใช้ Kotlinx coroutines 1.6.0 (I3366d)

เวอร์ชัน 1.2.0-alpha04

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

ปล่อย androidx.compose.foundation:foundation:1.2.0-alpha04 และ androidx.compose.foundation:foundation-layout:1.2.0-alpha04 แล้ว เวอร์ชัน 1.2.0-alpha04 มีคอมมิตเหล่านี้

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

  • ไม่จำเป็นต้องใช้ BringIntoViewResponders ในการทำสิ่งต่างๆ ด้วยตนเองแล้ว ส่งคำขอไปยังผู้ตอบที่เป็นผู้ปกครอง และจำเป็นต้องดำเนินการ ส่งคืนสี่เหลี่ยมผืนผ้าที่ต้องการให้ผู้ปกครองนำไปทันที ให้ได้เห็น (I8e66a)
  • รองรับการโหลดแบบอักษรแบบไม่พร้อมกันในข้อความ (I77057, b/214587005)
  • ตอนนี้ LazyVerticalGrid รองรับ line breaking ก่อนรายการที่มีช่วงที่ไม่พอดีกับบรรทัดปัจจุบัน (I05c40, b/207462103)
  • เปลี่ยนชื่อ excludeFromSystemGestures เป็น systemGesturesExclusion (I19526) แล้ว
  • LazyVerticalGrid รองรับ ReverseLayout แล้ว (I6d7d7, b/215572963, b/211753558)
  • เพิ่มเมธอด WindowInsets.only() เพื่ออนุญาตให้นักพัฒนาซอฟต์แวร์ ให้รวมเฉพาะมิติข้อมูลจาก WindowInsets (I14c94, b/217768486)
  • เพิ่ม ComposableTarget, ComposableTargetMarker และ ComposableOpenTarget ที่อนุญาตการรายงานเวลาคอมไพล์เมื่อ ฟังก์ชันที่ประกอบกันได้เรียกว่าการกำหนดเป้าหมายไปยังแอปพลิเคชันซึ่งไม่ใช่ ที่ออกแบบมาเพื่อใช้

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

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

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

  • ขณะนี้ได้รับอนุญาตให้ส่งผ่านค่าออฟเซ็ตการเลื่อนเชิงลบไปยัง LazyGridState.scrollToItem() และ LazyGridState.animateScrollToItem() (I025c6, b/211753558)
  • สนับสนุนการโหลดแบบอักษรแบบไม่พร้อมกันสำหรับ TextField (Icc4bf, b/214587005)

เวอร์ชัน 1.2.0-alpha03

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

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

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

  • notifyFocusedRect วิธีใน TextInputSession และ TextInputService เลิกใช้งานแล้วและจะไม่มีการเรียกใช้ ใช้ BringIntoViewRequester แทน (Ia4302, b/192043120, b/216842427, b/178211874)
  • เปิดใช้ภาพเคลื่อนไหวสำหรับรายการตารางกริดแบบ Lazy Loading ด้วย Modifier.animateItemplacement() (Ib6621, b/211753218)
  • BringIntoViewRequester เผยแพร่คำขอไปยังโฮสติ้งแล้ว Android View (Ia7a51)
  • FontFamilyResolver พร้อมให้บริการแล้วผ่าน วันที่ LocalFontFamilyResolver.current
    • เพิ่ม createFontFamilyResolver(context) และ createFontFamilyResolver(context, coroutineScope)เพื่อสร้างรายการใหม่ รีโซลเวอร์ FontFamily ที่อยู่นอกการใช้งานการเขียน
    • ตอนนี้การใช้ย่อหน้าและย่อหน้าหลายย่อหน้าใช้เวลา FontFamily.Resolver
    • ขณะนี้ TextLayoutResult.layoutInput.fontFamilyResolver มี รีโซลเวอร์ที่ใช้สำหรับเลย์เอาต์นี้ เลิกใช้งานแล้ว TextLayoutResult.layoutInput.resourceLoader เนื่องจากไม่มีการใช้งานแล้ว (Id5a45, 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)
  • คุณระบุประเภทเนื้อหาสำหรับรายการของ LazyVerticalGrid สำหรับฟังก์ชัน item/items ใน LazyGridScope ยอมรับพารามิเตอร์ดังกล่าวได้แล้ว การให้ข้อมูลดังกล่าวจะช่วยให้ระบบใช้ตรรกะในการจัดองค์ประกอบรายการซ้ำได้ ทำให้มีประสิทธิภาพมากขึ้น และใช้เฉพาะเนื้อหาระหว่างรายการที่คล้ายคลึงกันเท่านั้น (I7b355, b/215372836)
  • ตอนนี้ LazyListLayoutInfo และ LazyGridLayoutInfo มีพร็อพเพอร์ตี้ใหม่ ได้แก่ viewportSize, orientation, reverseLayout (Ifc8ed, b/200920410)
  • คุณระบุประเภทเนื้อหาสําหรับรายการ LazyColumn/LazyRow ได้แล้ว โดยฟังก์ชันรายการ/รายการใน LazyListScope จะยอมรับพารามิเตอร์ดังกล่าวได้แล้ว การให้ข้อมูลดังกล่าวจะช่วยให้ระบบใช้ตรรกะในการจัดองค์ประกอบรายการซ้ำได้ เพื่อเพิ่มประสิทธิภาพให้มีประสิทธิภาพมากขึ้น และใช้เฉพาะเนื้อหาระหว่างรายการต่างๆ ที่คล้ายคลึงกันเท่านั้น (I26506)
  • เลิกใช้งานตัวสร้าง SubcomposeLayoutState ที่ยอมรับ maxSlotsToRetainForReuse แล้ว แต่มีตัวสร้างใหม่ที่ยอมรับ SubcomposeSlotReusePolicy - อินเทอร์เฟซใหม่ที่ช่วยให้ควบคุมช่องได้ละเอียดยิ่งขึ้นว่าควรเก็บรักษาสล็อตใดไว้ใช้ซ้ำในอนาคต (I52c4d)
  • เพิ่มตัวปรับแต่งสำหรับ WindowInsets ทั้งเพื่อระยะห่างจากขอบ และการปรับขนาด ซึ่งทำให้เนื้อหาบางส่วนขยายออกไปในพื้นที่ และยังคงมีเนื้อหาหลักอยู่นอกพื้นที่โดยรอบ ตัวอย่างเช่น windowInsetsPadding อาจใช้เพื่อแพดเนื้อหา เพื่อหลีกเลี่ยงพื้นที่ที่อาจครอบคลุมเต็มหรือบางส่วน (Id0395, b/213942085)

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

  • ตอนนี้ฟิลด์ข้อความจะถูกเก็บไว้ด้านบนแป้นพิมพ์ โฟกัสและแป้นพิมพ์แสดงอยู่ เมื่ออยู่ในโหมดการป้อนข้อมูลแบบซอฟต์ ADJUST_PAN (I8eaeb, b/190539358, b/192043120)
  • เดสก์ท็อปใช้การเรียบเรียงในเครื่องสำหรับ FontFamily.Resolver
    • FontLoader สำหรับเดสก์ท็อปเลิกใช้งานแล้ว
    • โรงงาน createFontFamilyResolver ใหม่บนเดสก์ท็อป (I6bbbb, b/174162090)
  • ประเภทการป้อนข้อมูลด้วยแป้นพิมพ์ไม่กะพริบอีกต่อไปเมื่อเปลี่ยน โฟกัสระหว่างช่องข้อความ (I1bf50, b/187746439)
  • ช่องข้อความไม่ต้องกดย้อนกลับเพิ่มเติมเมื่อ แฮนเดิลเคอร์เซอร์แสดงอยู่ (Ideb4b, b/205726883)
  • ปรับแต่งลักษณะการทำงานของแว่นขยายการเลือกข้อความเป็น ตรงกับแว่นขยายแพลตฟอร์ม (Idd918, b/206833278)

เวอร์ชัน 1.2.0-alpha02

26 มกราคม 2022

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

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

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

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

  • ปรับแต่งลักษณะการทำงานของแว่นขยายการเลือกข้อความเป็น ตรงกับแว่นขยายแพลตฟอร์ม (Idd918, b/206833278)
  • LazyColumn, LazyRow, Modifier.verticalScroll และคอนเทนเนอร์อื่นๆ ที่ใช้ Modifier.scrollable รองรับการเลื่อนล้อเลื่อนของเมาส์แล้ว (I2b5e1, b/198214718)

เวอร์ชัน 1.2.0-alpha01

12 มกราคม 2022

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

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

  • เพิ่มพารามิเตอร์ใหม่ userScrollEnabled ใน LazyColumn, LazyRow และ LazyVerticalGrid เพื่ออนุญาตให้ผู้ใช้ปิดใช้การเลื่อนผ่านท่าทางสัมผัสการแตะหรือการช่วยเหลือพิเศษเป็นการชั่วคราวหรือถาวร อย่างไรก็ตาม ระบบจะยังคงอนุญาตให้เลื่อนผ่านเมธอดในสถานะแบบเป็นโปรแกรมได้ (I7eae9, b/201150093)
  • เพิ่ม Callback onSizeChanged ไปยังตัวแก้ไขแว่นขยาย (I6879f)
  • ตอนนี้วิดเจ็ตแว่นขยายจะแสดงขึ้นเมื่อลากการเลือก ใน SelectionContainer (I30b38, b/139320979)

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

  • แก้ไขแฮนเดิลเคอร์เซอร์ TextField ที่ไม่ได้ซ่อนเมื่อเลื่อนออกจาก (I14552, b/208883748)

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

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

เวอร์ชัน 1.1

เวอร์ชัน 1.1.1

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

ปล่อย androidx.compose.foundation:foundation:1.1.1 และ androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.1.0 และ androidx.compose.foundation:foundation-layout: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.foundation:foundation:1.1.0-rc03 และ androidx.compose.foundation:foundation-layout:1.1.0-rc03 แล้ว เวอร์ชัน 1.1.0-rc03 มีคอมมิตเหล่านี้

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

  • อัปเดตเพื่อสนับสนุน Compose Material 1.1.0-rc03

เวอร์ชัน 1.1.0-rc01

15 ธันวาคม 2021

ปล่อย androidx.compose.foundation:foundation:1.1.0-rc01 และ androidx.compose.foundation:foundation-layout:1.1.0-rc01 แล้ว เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้

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

  • ขณะนี้ได้รับอนุญาตให้ส่งผ่านค่าออฟเซ็ตการเลื่อนเชิงลบไปยัง LazyListState.scrollToItem() และ LazyListState.animateScrollToItem() (Iceb90, b/184252837)
  • แก้ไขข้อบกพร่องที่ทำให้การเลื่อนการช่วยเหลือพิเศษหายไป (I7cbfb)

เวอร์ชัน 1.1.0-beta04

1 ธันวาคม 2021

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

ฟีเจอร์ใหม่

  • อัปเดตให้เข้ากันได้กับ Kotlin 1.6.0

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

  • ล้างข้อมูลความสามารถในการเว้นว่างใน androidx.core.view(I7078a, b/204917439)
  • มีการเพิ่ม API ทดลองที่อนุญาตให้ใช้ PointerInputchange ทั้งหมดหรือตรวจสอบว่ามีการใช้ PointerInputchange ไปแล้วหรือไม่ (I2e59d)
  • แสดงวิดเจ็ตแว่นขยายเมื่อลากเคอร์เซอร์ หรือ แฮนเดิลสำหรับเลือกภายในช่องข้อความ (I5391e, b/203781358)

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

  • แก้ไขแฮนเดิลข้อความไม่ย้ายเมื่อมีการเปลี่ยนแปลงการเปิดเผย IME (I25f2e)

เวอร์ชัน 1.1.0-beta03

17 พฤศจิกายน 2021

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

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

  • เพิ่มการรองรับช่วงแนวนอนใน LazyVerticalGrid แล้ว (I7e2fa, b/176758183)
  • เพิ่มความสามารถในการทำให้ตำแหน่งรายการแบบ Lazy Loading เป็นภาพเคลื่อนไหวได้แล้ว มีแป้นกดร่วมใหม่ชื่อ Modifier.animateItemPlacement() ใน LazyItemScope ตัวอย่างการใช้งาน:

      var list by remember { mutableStateOf(listOf("A", "B", "C")) }
      LazyColumn {
          item {
              Button(onClick = { list = list.shuffled() }) {
                  Text("Shuffle")
              }
          }
          items(list, key = { it }) {
              Text("Item $it", Modifier.animateItemPlacement())
          }
      }
    
    • เมื่อคุณระบุคีย์ผ่าน LazyListScope.item หรือ LazyListScope.items ตัวแก้ไขนี้จะเปิดใช้การจัดเรียงภาพเคลื่อนไหวใหม่ นอกจากการจัดเรียงรายการใหม่ทั้งหมดที่การเปลี่ยนแปลงตำแหน่งอื่นๆ ทั้งหมดซึ่งเกิดจากเหตุการณ์ต่างๆ เช่น การเปลี่ยนแปลงการจัดเรียงหรือการจัดแนวก็จะเป็นภาพเคลื่อนไหวเช่นกัน (I59e7b, b/150812265)

เวอร์ชัน 1.1.0-beta02

3 พฤศจิกายน 2021

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

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

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

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

  • เพิ่ม Modifier.pointerHoverIcon (I95f01)

เวอร์ชัน 1.1.0-beta01

27 ตุลาคม 2021

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

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

  • เพิ่ม BringIntoView API เวอร์ชันทดลองที่ให้คุณส่งคำขอถึงผู้ปกครองเพื่อให้ผู้ปกครองเลื่อนเพื่อนำรายการเข้ามาดูได้ (Ib918d, b/195353459)

เวอร์ชัน 1.1.0-alpha06

13 ตุลาคม 2021

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

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

  • เพิ่มโอเวอร์โหลดที่ไร้เด็กสำหรับ Layout แล้วโดยมีประสิทธิภาพดีขึ้น (Ib0d9a)
  • SemanticsNodeInteraction.performSemanticsAction กลับมาแล้ว SemanticsNodeInteraction ที่มีการเรียกใช้ฟังก์ชัน (I9e5db)
  • เพิ่ม performScrollToNode(matcher: SemanticsMatcher) แล้ว จะเลื่อนคอนเทนเนอร์ที่เลื่อนได้ไปยังเนื้อหาที่ตรงกับ ตัวจับคู่ที่กำหนด (Ic1cb8)

เวอร์ชัน 1.1.0-alpha05

29 กันยายน 2021

ปล่อย androidx.compose.foundation:foundation:1.1.0-alpha05 และ androidx.compose.foundation:foundation-layout:1.1.0-alpha05 แล้ว เวอร์ชัน 1.1.0-alpha05 มีคอมมิตเหล่านี้

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

  • เพิ่มตัวชี้ประวัติการใช้งานรุ่นทดลองลงใน PointerEventChange (Ic1fd8, b/197553056, b/199921305)

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

  • แก้ไขการสนับสนุนการช่วยเหลือพิเศษสำหรับการเลื่อนได้ (ทั้งแบบ Lazy Loading และ ไม่ใช่แบบ Lazy Loading) สำหรับการเลื่อน (I6cdb0)

เวอร์ชัน 1.1.0-alpha04

15 กันยายน 2021

ปล่อย androidx.compose.foundation:foundation:1.1.0-alpha04 และ androidx.compose.foundation:foundation-layout:1.1.0-alpha04 แล้ว เวอร์ชัน 1.1.0-alpha04 มีคอมมิตเหล่านี้

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

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

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

  • อุปกรณ์ Android 12 เพิ่มการรองรับการเลื่อนแบบยืดได้มากแล้ว (Iccf3c, b/171682480)

เวอร์ชัน 1.1.0-alpha03

1 กันยายน 2021

ปล่อย androidx.compose.foundation:foundation:1.1.0-alpha03 และ androidx.compose.foundation:foundation-layout:1.1.0-alpha03 แล้ว เวอร์ชัน 1.1.0-alpha03 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • อัปเดต Compose 1.1.0-alpha03 เพื่อใช้ Kotlin 1.5.30 แล้ว (I74545)

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

  • เพิ่มเอฟเฟกต์เปล่งประกายสำหรับการเลื่อนแล้ว มีการเพิ่ม Over ScrollConfiguration API เวอร์ชันทดลองใหม่เพื่อให้สามารถกำหนดค่าเอฟเฟ็กต์ภาพแบบเลื่อนผ่านได้ ระบุค่า Null เพื่อปิดเอฟเฟกต์การเลื่อนเกิน (I0c304, b/171682480)
  • ตอนนี้ AwaitPointerEventScope มี withระยะหมดเวลา() และ withระยะหมดเวลาOrNull() (I507f0, b/179239764, b/182397793)
  • เพิ่มวิธีทดสอบเพื่อรับขอบเขตที่ตัดทอน (I6b28e)
  • เพิ่มขนาดเป้าหมายการสัมผัสขั้นต่ำลงใน ViewConfiguration แล้ว เพื่อใช้ในอรรถศาสตร์และการป้อนข้อมูลตัวชี้เพื่อการช่วยเหลือพิเศษ (Ie861C)

เวอร์ชัน 1.1.0-alpha02

18 สิงหาคม 2021

ปล่อย androidx.compose.foundation:foundation:1.1.0-alpha02 และ androidx.compose.foundation:foundation-layout:1.1.0-alpha02 แล้ว เวอร์ชัน 1.1.0-alpha02 มีคอมมิตเหล่านี้

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

  • เพิ่มเวอร์ชัน DpSize สำหรับ Modifier.size และ requiredSize (I3fc7e, b/194219828)

เวอร์ชัน 1.1.0-alpha01

4 สิงหาคม 2021

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

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

  • อัปเดตเมธอด DrawScope#drawImage ที่ ใช้ Rett ต้นทางและปลายทาง เพื่อใช้ตัวเลือกFilterquality พารามิเตอร์ มีประโยชน์สำหรับ Pixel อาร์ตเวิร์กที่มีจุดประสงค์ให้เป็นพิกเซล เมื่อปรับขนาดขึ้นสำหรับอาร์ตเวิร์กที่ใช้พิกเซล อัปเดต BitmapPainter + รูปภาพ Composable แล้ว ในการใช้ตัวเลือกFilter Quality ด้วย (Ie4fb0, b/180311607)
  • ตอนนี้ TextField จะล้างการเลือกเมื่อกดปุ่มย้อนกลับ ซึ่งตรงกับลักษณะการทำงาน EditText ของ Android (I3ca16, b/174173645)
  • เพิ่มแฮนเดิลเคอร์เซอร์ (I07a82, b/173016579)

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

  • ตอนนี้การเลื่อนผ่านการดําเนินการทางอรรถศาสตร์สําหรับรายการแบบ Lazy และคอมโพเนนต์การเลื่อนปกติเป็นภาพเคลื่อนไหวแล้ว (Id9066, b/190742024)

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

  • LazyVerticalGrid ยอมรับทั้งพารามิเตอร์การจัดเรียงทั้งแนวนอนและแนวตั้งแล้ว (If9c92)

รุ่น 1.0

เวอร์ชัน 1.0.5

3 พฤศจิกายน 2021

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

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

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

เวอร์ชัน 1.0.4

13 ตุลาคม 2021

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

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

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

เวอร์ชัน 1.0.3

29 กันยายน 2021

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

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

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

เวอร์ชัน 1.0.2

1 กันยายน 2021

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

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

เวอร์ชัน 1.0.1

4 สิงหาคม 2021

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

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

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

เวอร์ชัน 1.0.0

28 กรกฎาคม 2021

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

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

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

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

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

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

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

เวอร์ชัน 1.0.0-rc02

14 กรกฎาคม 2021

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

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

เวอร์ชัน 1.0.0-rc01

1 กรกฎาคม 2021

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

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

  • ตอนนี้ Canvas รองรับพารามิเตอร์ contentDescription สำหรับแล้ว การช่วยเหลือพิเศษ (Ib547C)

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

  • ปุ่ม การ์ด ช่องทำเครื่องหมาย และช่อง Modifier.clickable(enabled=false) ทั้งหมดที่ปิดใช้ จะบล็อกการคลิกไม่ให้ขึ้นไปยังระดับบนสุด (Ic2c3b, b/183908811)

เวอร์ชัน 1.0.0-beta09

16 มิถุนายน 2021

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

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

  • นำ ManualFrameClock ออกแล้ว หากต้องการควบคุมภาพเคลื่อนไหว ใช้ composeTestRule.mainClock แทน (I3c3e8, b/189951065)
  • เปลี่ยนบทบาท enum และ LiveRegionMode เป็นคลาสในบรรทัด พร้อมเครื่องมือสร้างส่วนตัว (Id1890)
  • แป้นพิมพ์ลัดได้รับการแปลงเป็นคลาสในบรรทัด (Id5a1c)
  • TextOverflow จะเปลี่ยนเป็นคลาสในบรรทัด (I433af)

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

  • ตอนนี้เมื่อคุณระบุคีย์ที่ไม่ซ้ำกันสำหรับรายการ LazyColumn/แถว ตำแหน่งการเลื่อนจะคงเดิมตามคีย์ดังกล่าว ซึ่งหมายความว่าหากคุณเพิ่ม/นำรายการออกก่อนรายการที่มองเห็นได้ในปัจจุบัน รายการที่มีคีย์ที่กำหนดจะยังคงอยู่เป็นรายการที่เห็นเป็นอันดับแรก (Id263f, b/184257857)
  • ปัจจุบันค่าคงที่หลักคือ @ExperimentalComposeUiApi การใช้งาน สามารถประกาศค่าคงที่ส่วนตัวก่อนระบบกันภาพสั่นได้ (Ia5d48)
  • เพิ่ม IdlingStrategy ลงใน AndroidComposeTestRule แล้ว ใช้โดยการทดสอบเฟรมเวิร์กเพื่อติดตั้งกลไกสำรองที่จะรอ หรือไม่หยุดนิ่ง ใช้ AndroidComposeTestRule.setIdlingStrategyFactory() ก่อนการทดสอบ เริ่มติดตั้งกลยุทธ์ ของคุณเอง (I608fa)

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

รุ่นนี้เพิ่มกฎโปรไฟล์ในโมดูลการเขียนต่อไปนี้ (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.foundation:foundation:1.0.0-beta08 และ androidx.compose.foundation:foundation-layout:1.0.0-beta08 แล้ว เวอร์ชัน 1.0.0-beta08 มีการคอมมิตเหล่านี้

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

  • enum ของ NestedscrollSource แทนด้วยคลาสในบรรทัด (Ie321b, b/187055290)
  • เปลี่ยนโครงสร้างการใช้ enum เป็นคลาสในบรรทัดเพื่อหลีกเลี่ยง ที่เป็นปัญหาโดยละเอียดเมื่อข้อความแสดง เพิ่มค่า enum ใหม่ (I2b5eb)
  • เพิ่มระยะหมดเวลาการแตะให้คลิกได้/เปิด/ปิดได้เพื่อป้องกันการแสดงระลอกคลื่นในระหว่างการเลื่อน/ลาก (Ia2704, b/168524931)
  • พร็อพเพอร์ตี้คำอธิบายเนื้อหาและความหมายของข้อความไม่มีให้บริการแล้ว ค่าเดียวยกเว้นรายการ วิธีนี้จะทำให้สามารถรวมพร็อพเพอร์ตี้ตามที่เป็น ของการเชื่อมต่อกัน นอกจากนี้ยังมี API การทดสอบที่ดีกว่าเดิมเพื่อใช้ประโยชน์จากสิ่งเหล่านี้ การเปลี่ยนแปลง (Ica6bf, b/184825850)
  • Modifier.focusModifier() เลิกใช้งานแล้วและแทนที่ด้วย Modifier.focusTarget() (I6c860)
  • enum ของ KeyboardType จะถูกแทนที่ด้วยคลาสในบรรทัด (I73045, b/187055290)
  • แทนที่ enum ของ FocusState ด้วยอินเทอร์เฟซ FocusState แล้ว (Iccc1a, b/187055290)
  • enum ของ ImeAction จะถูกแทนที่ด้วยคลาสในบรรทัด (I18be5, b/187055290)
  • ฟังก์ชัน AnnotatedString.withAnnotation รายการคือ เหลือเพียง ExperimentalTextApi แทน ExperimentalComposeApi (I0cd0a)
    • เครื่องมือสร้าง TextUnit ที่มี TextUnitType พร้อมใช้งานแล้ว ExperimentalTextApi แทน ExperimentalComposeApi
  • ขณะนี้ PaddingValues มีค่าเป็น @Stable แทนที่จะเป็น @Immutable (I88c50)

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

  • แก้ไขการขัดข้องของการกดพื้นที่ว่างในข้อความที่ไม่ว่างเปล่าค้างไว้ (I33ab5, b/187437299)
  • แสดงแถบเครื่องมือหลังจาก SelectAll (I495d9, b/185919613)
  • แก้ไขคอนเทนเนอร์ที่เลื่อนได้ซึ่งตัดองค์ประกอบย่อยบนแกนกากบาท ซึ่งสามารถทำซ้ำได้ง่ายหากคุณมี LazyRow ที่มีรายการการ์ด เงาก็จะไม่ถูกตัดออก (Icb635, b/186318448)
  • แก้ไขปัญหาที่บางครั้งคลื่น / สัญญาณบอกสถานะอื่นๆ ค้างอยู่เมื่อคลิกที่ค้างเมื่อใช้ Modifier.combinedClickable (I2298c, b/186223077)
  • ตอนนี้ detectDragGesures, detectVerticalGestures และ detectHorizontalGestures จะใช้การเปลี่ยนแปลงตำแหน่งโดยอัตโนมัติ โดยไม่จำเป็นต้องเรียก change.conssumPositionChange ใน onDrag callbacks (I42fc4, b/185096350, b/187320697)
  • Modifier.onGloballyPositioned() มีการเปลี่ยนแปลงเพื่อรายงานพิกัดของตัวแก้ไขนี้ในสายตัวปรับแต่ง ไม่ใช่พิกัดเลย์เอาต์หลังจากใช้ตัวปรับแต่งทั้งหมดแล้ว ซึ่งหมายความว่าตอนนี้ลำดับของตัวปรับส่งผลต่อพิกัดที่จะรายงาน (Ieb67d, b/177926591)

เวอร์ชัน 1.0.0-beta07

18 พฤษภาคม 2021

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

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

  • เปิดตัวลอจิกการดึงข้อมูลรายการที่ปรากฏล่วงหน้าสำหรับ LazyColumn/Row (I8a4bc, b/184940225)
  • เพิ่มแฮนเดิลการเลือกคลิป (Iff80d, b/183408447)

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

  • ตอนนี้ LazyColumn/Row จะเก็บรายการที่มองเห็นได้ก่อนหน้านี้สูงสุด 2 รายการที่ใช้งานอยู่ (ไม่ทิ้ง) แม้จะเลื่อนออกแล้วก็ตาม วิธีนี้จะช่วยให้คอมโพเนนต์สามารถนำองค์ประกอบย่อยที่ใช้งานอยู่มาใช้ซ้ำเมื่อเราต้องสร้างรายการใหม่ ซึ่งช่วยปรับปรุงประสิทธิภาพการเลื่อน (Ie5555)
  • นำ PaintBackground ออก (I38660)
  • วาดพื้นหลังของการเลือกโดยใช้ DrawScope (I73c61, b/186674472)
  • การถดถอยเบต้า 06 ที่ส่งผลต่อแถว/คอลัมน์ที่ใช้การจัดเรียงแบบเว้นวรรคกับการจัดเลย์เอาต์ย่อยที่ถ่วงน้ำหนักได้รับการแก้ไขแล้ว (Ifaf8c, b/187326588)

เวอร์ชัน 1.0.0-beta06

5 พฤษภาคม 2021

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

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

  • แก้ไขความขัดแย้งด้วยท่าทางสัมผัสการนำทาง (I1145e)
  • เพิ่ม API การช่วยเหลือพิเศษ CollectionInfo และ CollectionItemInfo ซึ่งช่วยทำเครื่องหมายคอลเล็กชันและรายการสำหรับบริการช่วยเหลือพิเศษได้ (Id54ef, b/180479017)
  • เพิ่ม SemanticsActions.ScrollToIndex เพื่อเลื่อนรายการที่มี รายการที่จัดทำดัชนีให้กับรายการที่มีดัชนีที่กำหนด และ SemanticsProperties.IndexForKey เพื่อรับดัชนีของรายการในรายการ กับรายการคีย์ การดำเนินการทั้ง 2 รายการมีการใช้งานโดย LazyList
    • เพิ่ม SemanticsNodeInteraction.performScrollToIndex แล้ว จะเลื่อนรายการไปยังดัชนีที่กำหนด และ SemanticsNodeInteraction.performScrollToKey ที่เลื่อนรายการไปยัง ด้วยคีย์ที่ระบุ (I4fe63, b/178483889, b/161584524)
  • AnnotatedString บันทึกการสนับสนุนไปยัง TextFieldValue.Saver เพิ่ม addtAnnotation และมีฟังก์ชันยูทิลิตีคำอธิบายประกอบเพื่อ AnnotatedString.Builder (I8cbdc, b/178446304)
  • เพิ่มค่าพารามิเตอร์ 0.dp เริ่มต้นลงใน PaddingValues(horizontal, vertical) แล้ว (I05571, b/181336792)

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

  • แถวและ คอลัมน์ย่อยที่มี weight(fill = false) จะไม่ทำให้คอลัมน์หลักแสดงเต็มพื้นที่แกนหลักที่มีอยู่อีกต่อไป (Ied94d, b/186012444, b/184355105)

เวอร์ชัน 1.0.0-beta05

21 เมษายน 2021

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

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

  • ตอนนี้อินเทอร์เฟซ FlingBehavior ถูกทำเครื่องหมายเป็น @Stable การใช้งานทั้งหมดควรเป็นไปตามสัญญา @Stable (I93354, b/184830577)

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

  • ราคาคงที่ 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.foundation:foundation:1.0.0-beta04 และ androidx.compose.foundation:foundation-layout:1.0.0-beta04 แล้ว เวอร์ชัน 1.0.0-beta04 มีการคอมมิตเหล่านี้

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

  • เปลี่ยนชื่อ hideSoftwareKeyboard และ show SoftwareKeyboard ในได้อย่างไร SoftwareKeyboardController เป็น hide() และ show() ตามลำดับ
    • จัดเตรียมอินเทอร์เฟซ CompositionLocal เต็มรูปแบบสำหรับ LocalSoftwareKeyboardController ให้คุณสามารถตั้งค่า (โดยเฉพาะอย่างยิ่ง มีประโยชน์ในการทดสอบ) (I579a6)
  • เปิดตัว TextOverflow.Visible (Ic8f89)
  • นำอินสแตนซ์สาธารณะของ RowScope, ColumnScope, BoxScope, BoxWithConstraintsScope ออกแล้ว (I4e83e, b/181869067)

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

  • แก้ไขปัญหาเมื่อรายการ LazyColumn/LazyRow ที่อยู่บนขอบอยู่ในตำแหน่งที่ไม่ถูกต้องหลังจากการสะบัดอย่างรวดเร็ว (Ie4d13, b/183877420)
  • ก่อนการเปลี่ยนแปลงนี้ ฟังก์ชัน Composable ในเครื่องจะข้ามได้ตามพารามิเตอร์ หลังจากการเปลี่ยนแปลงนี้ ฟังก์ชัน Composable ในเครื่องจะไม่ข้าม การเปลี่ยนแปลงนี้เกิดขึ้นเนื่องจากเป็นเรื่องปกติและคาดหวังว่าฟังก์ชันในเครื่องจะตรวจจับพารามิเตอร์จากระดับบนสุดและการข้ามถือเป็นแหล่งที่มาทั่วไปของข้อบกพร่อง

    กล่าวโดยสรุปคือ

    @Composable fun Counter(count: Int, onCountChange: (Int) -> Unit) {
      @Composable fun ShowCount() { Text("Count: $count") }
      ShowCount()
      Button(onClick={ onCountChange(count + 1) }) {
        Text("Increment")
      }
    }
    

    ก่อนการเปลี่ยนแปลงนี้ ฟังก์ชัน Composable ShowCount จะข้ามเสมอ แม้ว่าจะอัปเดตพารามิเตอร์ count แล้วก็ตาม แต่เหตุการณ์ดังกล่าวจะไม่เกิดขึ้นแล้ว (I5648a)

เวอร์ชัน 1.0.0-beta03

24 มีนาคม 2021

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

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

  • DefaultMonotonicFrameClock เลิกใช้งานแล้ว การโทร withFrameNanos หรือ Recomposer.runRecomposeAndApplyChanges ที่ไม่มี ตอนนี้ MonotonicFrameClock จะขว้าง IllegalStateException (I4eb0d)

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

  • ตอนนี้ระบบจะเรียก FlingBehavior.performFling() แม้จะความเร็วเป็น 0 (I0b6e5, b/181237123)

เวอร์ชัน 1.0.0-beta02

10 มีนาคม 2021

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

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

  • เพิ่มการเพิ่มประสิทธิภาพเล็กๆ น้อยๆ หลายรายการในตรรกะการวัด LazyColumn (Ic6889)
  • เพิ่มการเรียบเรียงเพลง LocalSoftwareKeyboardController ใหม่ในเครื่อง API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I5951e, b/168778053)
  • เพิ่มการเรียบเรียงเพลง LocalSoftwareKeyboardController ใหม่ในเครื่อง API สำหรับแทนที่อินเทอร์เฟซ SoftwareKeyboardController ก่อนหน้าที่เปิดอยู่ ฟิลด์ข้อความ (I84472, b/168778053)

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

  • บังคับใช้ข้อจำกัดกับการใช้งาน API ทดลองแบบสาธารณะ (I6aa29, b/174531520)

เวอร์ชัน 1.0.0-beta01

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

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

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

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

  • เพิ่ม onStart callback ไปยัง detectDragGestures แล้ว (I67269, b/179995594)
  • ตัวปรับแต่งสำหรับปรับขนาดให้พอดีกับภายในไม่ใช่เวอร์ชันทดลองอีกต่อไป (I15744)
  • นำการยืนยัน dp ออกแล้ว (I798d2)
  • นำ Callback SoftwareKeyboardController ออกจากข้อความทั้งหมดแล้ว ที่จะแทนที่ด้วย API ใหม่ในไม่ช้า (Iae869, b/168778053)
  • 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)
  • นำเมธอด LayoutCoordinates ที่เลิกใช้งานแล้วออก ใช้ฟังก์ชันแทนพร็อพเพอร์ตี้สำหรับPositionInParent และ boundsInParent (I580ed, b/169874631, b/175142755)
  • สร้าง TextInputSession ใหม่สำหรับเซสชันอินพุตจากคอมโพเนนต์ข้อความระดับต่ำ เช่น CoreTextField (I8817f, b/177662148)
  • "วางได้" จะแสดงขนาดที่วัดแล้ว ซึ่งจะแสดงขนาดที่เลย์เอาต์ย่อยวัดได้จริง ขนาดนี้อาจไม่เป็นไปตามข้อจำกัดในการวัด (Ib2729, b/172560206, b/172338608)
  • เพิ่มตัวเลือกการปรับแต่งกลุ่มที่ช่วยให้ทำเครื่องหมายชุดแท็บหรือปุ่มตัวเลือกเพื่อวัตถุประสงค์ในการช่วยเหลือพิเศษ (Ie5c29)
  • เพิ่ม LazyListState.animatescrollToItem

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

  • ScrollableState.smoothscrollBy() เปลี่ยนชื่อเป็น animatescrollBy() LazyListState.snapToItemIndex() เปลี่ยนชื่อเป็น ScrollToItem() ScrollState.smooth ScrollTo() เปลี่ยนชื่อเป็น animatescrollTo() (I35ded)

  • Modifier.zoomable แทนที่ Modifier.transformable แล้ว SmoothPanBy จึงมีการเพิ่มเครื่องมือmotationBy เป็นฟังก์ชันการใช้งาน (Ifc32b, b/175294473)

  • defaultFactory สำหรับ compositionLocalOf และ ตอนนี้คุณจำเป็นต้องใช้ staticCompositionLocalOf แทน ไม่บังคับ

    การเปลี่ยนแปลงนี้จะนําข้อผิดพลาดประเภทที่อาจเป็นค่าว่างออก ประเภทที่ไม่ได้ระบุค่าเริ่มต้นจากโรงงาน ก่อนหน้านี้ จะให้การอ้างอิง Null สำหรับประเภทที่ไม่เป็นค่าว่าง

    สำหรับประเภทที่เว้นว่างได้ ให้พิจารณาระบุ { null } เป็นค่าเริ่มต้น โรงงาน

    เราไม่แนะนำให้ใช้ท้องถิ่นที่มีประเภทที่ไม่มีค่าว่าง ยกเว้น สามารถระบุค่าเริ่มต้นที่เหมาะสมได้ หากไม่มีค่าเริ่มต้นที่เหมาะสม lambda defaultFactory ควรส่งข้อยกเว้น อย่างไรก็ตาม การส่งคำขอยกเว้นหมายความว่าผู้บริโภคในพื้นที่จะ การพึ่งพาโดยนัยที่ให้ไว้ซึ่งไม่ได้บังคับใช้ ตามระบบประเภท (Ifbd2a)

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

  • ขณะนี้การดำเนินการกับข้อความจะตรวจสอบโฟกัสโดยอัตโนมัติ (I13777, b/179648629)

  • นำ runBlockingWithManualClock ออก (I15cdc, b/179664814)

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

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

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

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

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

  • Modifier.tapGestureFilter ถูกนำออกแล้ว โปรดใช้ Modifier.pointerInput { detectTapGestures(...) } แทน (I266ed, b/175294473)

  • มีการนำการบริโภคบางส่วนออกจากระบบอินพุตตัวชี้ วิธีที่แนะนำในการประสานงานการใช้งานบางส่วนคือ Modifier.nestedscroll (Ie9c9b)

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

  • ย้ายข้อมูล AnimationClockObservable และคลาสย่อยแล้ว ลบแล้ว นำ AnimatedFloat ออกแล้ว (Icde52, b/177457083)

  • ขณะนี้ลิ้นชักState.open() และ โดยทั่วไปสถานะ.close() กำลังระงับฟังก์ชันต่างๆ ใช้ RememberCoroutineScope() เพื่อรับขอบเขตของการเรียบเรียงเพื่อเรียกใช้ (I16f60, b/175294473)

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

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

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

  • เพิ่มตัวปรับแต่ง requiredWidth(IntrinsicSize) และ requiredHeight(IntrinsicSize) ระดับสำหรับการกำหนดขนาดตามที่กำหนดไว้ (I0a6b4)

  • เลิกใช้งาน emptyContent() แล้ว โปรดใช้ {} แทน (Idb33f, b/179432510)

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

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

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

เวอร์ชัน 1.0.0-alpha12

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

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

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

  • ตอนนี้ Modifier.pointerInput ต้องใช้แป้นจดจำเพื่อระบุ เมื่อใดที่ Coroutine ตรวจจับอินพุตตัวชี้ควรรีสตาร์ทสำหรับ ทรัพยากร Dependency (I849cd)
  • การอัปเดตจากการทดสอบ: hasText() จะตรวจสอบทั้งอินพุตและข้อความป้ายกำกับ/คำแนะนำ/ตัวยึดตำแหน่งในช่องข้อความ (Iab803)
  • เพิ่ม PaddingValues.Absolute แล้วและใช้ใน API ที่ยอมรับ PaddingValues ได้ (Ia5f30)
  • onImeActionActioned เลิกใช้งานแล้ว ใช้ KeyboardActions แทน (If0bbd, b/179071523)
  • เพื่อให้ชื่อตรงกันมากขึ้น แบบแผนกับ ImageBitmap และ ImageVector ImagePainter เปลี่ยนชื่อเป็น BitmapPainter แล้ว กับ VectorPainter แบบขนาน (Iba381, b/174565889)
  • API การทดสอบสตริงย่อยที่ดีขึ้นซึ่งมีสตริงย่อยเป็นอาร์กิวเมนต์ (Icbe78) แล้ว
  • เริ่มใช้บริบทโครูทีน InfiniteAnimationPolicy แล้ว ที่จะนำไปใช้ในภาพเคลื่อนไหวที่ไม่จำกัด โดยค่าเริ่มต้น "ไม่" จะติดตั้งนโยบายแล้ว ยกเว้นเมื่อทำการทดสอบกับ ComposeTestRule (I50ec4, b/151940543)
  • ตอนนี้ Animatable.snapTo และ Animatable.stop ระงับฟังก์ชันแล้ว (If4288)
  • ย้าย ComponentActivity.setContent ไปยัง androidx.activity.compose.setContent ใน androidx.activity:activity-compose โมดูล (Icf416)
  • วิธีการทำลายโครงสร้างและ copy() ถูกนำออกจาก หลายชั้นเรียนที่แทบไม่ได้ใช้ (I26702, b/178659281)
  • เพิ่มการรองรับคีย์ที่กำหนดเองสำหรับ LazyColumn/LazyRow แล้ว ทำให้เราจัดการกับการจัดลำดับสินค้าใหม่ได้อย่างชาญฉลาดยิ่งขึ้น ดังนั้นสถานะที่คุณจัดเก็บไว้ใน "จำ" บล็อก {} จะย้ายไปอยู่รวมกับรายการเมื่อคุณเรียงลำดับองค์ประกอบหรือนำรายการออกจากตรงกลาง

    LazyColumn {
        items(users, key = { user -> user.id }) { ... }
    }
    
  • เปลี่ยนตัวบ่งชี้#createInstance เป็น @Composable และเปลี่ยน LocalIndication ให้มีเครื่องหมาย ไม่ใช่ () -> การบ่งชี้ (I5eeea, b/157150564)

  • แทนที่ Constraints.enforce ด้วย Constraints.constrain แล้ว (I8b8ea)

  • เลิกใช้งานloadFontResource แล้ว โปรดใช้ fontResource แทน imageResource,LoadImageResource, vectorResource และloadVectorResource เลิกใช้งานแล้ว โปรดใช้ PainterResource แทน (I6B809)

  • ด้วยเหตุผลด้านประสิทธิภาพ ตอนนี้ความหมายของ ScrollAxisRange lambdas จะแสดงค่า Float แทนค่า Float โดยตรง (If4a35, b/178657186)

  • เพิ่มความหมายของ EditableText เพื่อทำเครื่องหมายอินพุตที่แก้ไขได้ของช่องข้อความสำหรับการช่วยเหลือพิเศษและวิธีการทดสอบที่เกี่ยวข้องเพื่อตรวจสอบความหมาย (I8e07a)

  • ขณะนี้ Modifier.clickable ยังไม่มีการสนับสนุนการคลิกแบบดับเบิลคลิกและยาว ใช้ Modifier.combinedClickable เพื่อทำฟังก์ชันนี้ (Iafad1)

  • toIntPx() เปลี่ยนชื่อเป็น roundToPx() (I9b7e4, b/173502290)

  • IntBounds ได้เปลี่ยนชื่อเป็น IntRect และปรับปรุง API ให้ดีขึ้น (I1f6ff)

  • เลิกใช้งาน Modifier.dragGestureFilter แล้ว โปรดใช้ Modifier.pointerInput { detectDragGestures (...)} แทน หรือใช้ Modifier.draggable สำหรับการลากแกน 1 แกน (I0ba93, b/175294473)

  • เปลี่ยนชื่อแอมเบียนท์ให้ตรงกับแอมเบียนท์ -> การเปลี่ยนชื่อ CompositionLocal แอมเบียนท์เคยมีชื่อว่า AmbientFoo แต่ปัจจุบัน CompositionLocals เรียกว่า LocalFoo (I2d55d)

  • ย้ายรายการที่เลือกไปยังพื้นฐานแล้ว (I7892B)

  • เช่นเดียวกับที่เรานำ Composable ของ state { 0 } ออกก่อนหน้านี้และตอนนี้โปรโมตการใช้งาน เช่น remember { mutableStateOf(0) } เราจะนำ Composable ของ savedInstanceState { 0 } ออก คุณควรใช้ rememberSaveable { mutableStateOf(0) } แทน จากนั้นระบบจะบันทึกและคืนค่าโดยอัตโนมัติหากเก็บประเภทที่ใช้ภายใน MutableState ไว้ใน Bundle ได้ หากก่อนหน้านี้คุณส่งผ่านออบเจ็กต์เซฟที่กำหนดเอง ตอนนี้คุณต้องใช้แอตทริบิวต์ RememberSaveable ที่โอเวอร์โหลดใหม่ซึ่งมีพารามิเตอร์ stateSaver การใช้งานจะมีลักษณะดังนี้: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004)

  • เพิ่มความหมายของรหัสผ่านสำหรับการช่วยเหลือพิเศษ (I231ce)

  • เพิ่ม ProgressBarRangeInfo เพิ่ม ProgressBarRangeInfo เพื่อทําเครื่องหมายแถบความคืบหน้าแบบไม่ชัดเจนสําหรับการช่วยเหลือพิเศษ (I6fe05)

  • ขณะนี้เวลาเล่นในภาพเคลื่อนไหวยังไม่เท่ากับนาโนวินาที (If776a)

  • @ComposableContract เลิกใช้งานแล้วเพื่อใช้คำอธิบายประกอบที่เจาะจงมากขึ้นอีก 3 รายการ

    @ComposableContract(restartable = false) เปลี่ยนเป็น @NonRestartableComposable แล้ว @ComposableContract(readonly = true) เปลี่ยนเป็น @ReadOnlyComposable แล้ว @ComposableContract(preventCapture = true) ได้เปลี่ยนเป็น @DisallowComposableCalls นำ @ComposableContract(tracked = true) ออกแล้ว (I60a9d)

  • เลิกใช้งานยูทิลิตี emptyContent() และ (@Composable () -> Unit).orEmpty() แล้วเนื่องจากไม่มีผลกระทบหรือค่าด้านประสิทธิภาพในเชิงบวกอีกต่อไป (I0484d)

  • ปิดเครื่องมือปรับแต่งได้แล้ว รีคอมโพสเซอร์แบบปิดจะ จัดองค์ประกอบใหม่ต่อจนกว่าโครูทีนเด็กการเรียบเรียงเพลงจะเสร็จสมบูรณ์ Recomposer.shutDown เปลี่ยนชื่อเพื่อตัดกับการปิด (Ib6d76)

  • มีการทำเครื่องหมาย API ที่เกี่ยวข้องกับ LazyVerticalGrid ว่าเป็นเวอร์ชันทดลอง (Ia53e3, b/178519862)

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

  • relorableStateHolder เปลี่ยนชื่อเป็น SaveableStateHolder และย้ายไปยังแพ็กเกจ androidx.compose.runtime.saveable เมธอดภายในRESTorableStateProvider ถูกเปลี่ยนชื่อเป็น SaveableStateProvider มีการนำประเภททั่วไปออก เพื่อให้คุณสามารถส่งเพียง "ใดก็ได้" เป็นคีย์ ไม่จำเป็นต้องใช้คำอธิบายประกอบรุ่นทดลองอีกต่อไป (I0902e, b/174598702)

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

  • อาร์ติแฟกต์ 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)

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

  • นำ canDrag ออกจาก Modifier.scrollable แล้ว (Id66e7, b/175294473)

  • API เป้าหมายของปลั๊กอินคอมไพเลอร์ Compose ได้รับการปรับโครงสร้างภายในโค้ดใหม่ เพื่อใช้อินเทอร์เฟซแทน ที่แน่นอนได้ง่าย อินเทอร์เฟซก็ไม่ใช้งาน พารามิเตอร์ประเภท

    นี่เป็นการเปลี่ยนแปลงภายในที่ไม่ควรมีผลกับแหล่งที่มา สามารถใช้งานร่วมกันของโค้ดได้ แต่เป็นการเปลี่ยนแปลงการขัดข้องแบบไบนารี (I3b922, b/169406779)

  • นำ Modifier.scaleGestureFilter ออกแล้ว ใช้ Modifier.zoomable แทน หรือใช้ Modifier.pointerInput { detectMultitouchGestures { ... }} (Id5da1, b/175294473)

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

    • นำ CoreText และ CoreTextField ออกจาก API สาธารณะ
    • นำ SelectionContainer โอเวอร์โหลด (I99c19) ที่เลิกใช้งานแล้วออก
  • นำฟังก์ชันการเลื่อนที่ไม่ถูกระงับที่เลิกใช้งานแล้วออก การใช้การเลื่อนอย่างต่อเนื่องตามการเปลี่ยนแปลงจากรุ่นล่าสุดคือการเลื่อนแบบไม่ถูกระงับ ฟังก์ชันจะถูกลบทั้งหมด โปรดเปลี่ยนเป็นการระงับ ที่มีชื่อเดียวกัน ขอบเขต Coroutine หาได้จาก RememberCoroutineScope() (I3d39c, b/178169563)

  • androidx.compose.foundation.layout.ConstraintLayout เลิกใช้งานแล้วเพื่อใช้ androidx.constraintlayout.compose.ConstraintLayout แทน คุณจะต้องเพิ่มทรัพยากร Dependency ใน androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha01 (I87adc)

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

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

  • ตอนนี้ Recomposer.runningRecomposers มีระบบ StateFlow ระดับโลก RecomposerInfo แบบอ่านอย่างเดียวสำหรับสังเกตสถานะการเรียบเรียงต่อเนื่องใน ขั้นตอน เลือกใช้ API นี้กับ Recomposer.current() ซึ่งตอนนี้คือ เลิกใช้งานแล้ว (If8ebe)

เวอร์ชัน 1.0.0-alpha11

28 มกราคม 2021

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

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

  • เลิกใช้งานการเลื่อนแบบไม่ถูกระงับ นำ ScrollTo ที่ไม่ถูกระงับออก

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

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

  • เพิ่มพารามิเตอร์คำอธิบายเนื้อหาลงในรูปภาพและไอคอนแล้ว โดยใช้เพื่อให้คำอธิบายเกี่ยวกับบริการการช่วยเหลือพิเศษ (I2ac4c)

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

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

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

  • นำ data class ออกจากชั้นเรียนต่อไปนี้แล้ว:

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

  • เลิกใช้งาน 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)

  • ระบบนำ AbsoluteAsortment ที่เลิกใช้งานแล้วออกแล้ว (Iffa96, b/177641870)

  • มีการเพิ่มพารามิเตอร์ DistributionMinConstraints ลงใน Box เพื่อระบุว่าควรส่งข้อจำกัดขั้นต่ำที่เข้ามาใหม่ไปยังเนื้อหาของ Box หรือไม่ ทั้งนี้ ระบบตั้งค่าเริ่มต้นไว้ที่ false (I0125b, b/152613457)

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

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

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

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

  • ตอนนี้ความหนาแน่นเปลี่ยนเป็นขอบเขตผู้รับสำหรับอินเทอร์เฟซการจัดเรียงแล้ว (I18aad)

  • TextFieldValue ยอมรับ AnnotatedString อย่างไรก็ตาม การเปลี่ยนแปลงเฉพาะ API และการแก้ไขข้อความแบบหลายสไตล์ไม่ใช่ มีการใช้งานแล้ว

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

  • AnnotatedString มีการเปลี่ยนแปลงเพื่อขยายจาก kotlin.CharSequence ดังนั้น ความยาวและลำดับย่อยจึงกลายเป็นฟังก์ชันอินสแตนซ์ และฟังก์ชันของส่วนขยายจะถูกนำออก (Iaf429)

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

  • 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)

  • เปลี่ยนชื่อ TransformedText.transformedText เป็น TransformedText.text แล้ว

    • TransformText ไม่ใช่คลาสข้อมูลอีกต่อไป (Ie672a)
  • คลาสต่อไปนี้ไม่ใช่คลาสข้อมูลแล้ว

    • สตริงคำอธิบายประกอบ
    • ParagraphStyle
    • สไตล์ Span
    • TextStyle
    • น้ำหนักแบบอักษร
    • การตกแต่งข้อความ
    • เปลี่ยนรูปแบบเรขาคณิตของข้อความ
    • ดัชนีข้อความ
    • ผลลัพธ์ของเลย์เอาต์ข้อความ
    • อินพุต TextLayout (Iaff99)
  • นำเมธอด monotonicFrameAnimationClockOf แบบทดลอง (Ib753f, b/170708374) ออกแล้ว

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

  • โปรดใช้ ImeAction.None แทน ImeAction.NoAction

    • โปรดใช้ ImeAction.Default แทน ImeAction.Unidentifier (Ie1bcc)
  • ตอนนี้ FocusRequester.createRefs มีการทำเครื่องหมายเป็นทดลองเนื่องจากอาจมีการเปลี่ยนแปลง (I2d898, b/177000821)

  • SemanticsPropertyReceiver.hidden เปลี่ยนชื่อเป็น invisibleToUser และมีการทำเครื่องหมาย @ExperimentalComposeUiApi เปลี่ยนชื่อ AccessibilityRangeInfo เป็น ProgressBarRangeInfo StateDescriptionRange เปลี่ยนชื่อเป็นprogressBarRangeInfo AccessibilitySlideState เปลี่ยนชื่อเป็น ScrollAxisRange VerticalAccessibilitySlideState เปลี่ยนชื่อเป็น LandscapescrollAxisRange verticalAccessibilitySlideState เปลี่ยนชื่อเป็น verticalscrollAxisRange (รหัส 3148)

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

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

  • นำ PointerInputData ออกและ PointerInputChange ที่แก้ไขแล้ว เพื่อระบุฟิลด์ทั้งหมดของ PointerInputData สร้างเหตุการณ์ป้อนข้อมูลตัวชี้ และ PointerInputEventData ภายในเนื่องจากไม่ได้ใช้ใน API สาธารณะทั้งหมด (Ifff97, b/175142755)

  • เปลี่ยนชื่อ TextInputService.onStateUpdated เป็น updateState (Id4853)

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

เวอร์ชัน 1.0.0-alpha10

13 มกราคม 2021

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

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

  • ImeOptions และ KeyboardOptions ไม่ใช่คลาสข้อมูลอีกต่อไป (I3c898, b/168684531)
  • การเปลี่ยนแปลง VisualTransformation API
    • เปลี่ยนชื่อ OffsetMap เป็น OffsetMapping แล้ว
    • เปลี่ยนชื่อ OffsetMapping.identityOffsetMap เป็น OffsetMapping.Identity แล้ว
    • PasswordTransformation ไม่ใช่คลาสข้อมูลอีกต่อไป
    • ย้าย OffsetMapping ไปยังไฟล์ของตัวเอง
    • (I0bdf3)
  • การเปลี่ยนแปลง EditOperations API
    • เปลี่ยนชื่อ EditOperation เป็น EditCommand
    • เพิ่มคำต่อท้ายคำสั่งสำหรับการติดตั้งใช้งานอย่างเป็นรูปธรรมของ EditOperation
    • EditCommand ไม่ใช่คลาสข้อมูลอีกต่อไป
    • เปลี่ยนชื่อฟังก์ชัน EditOperation.process เป็น ApplyTo แล้ว
    • เปลี่ยนชื่อ InputEventListener เป็น InputEventCallback แล้ว
    • (I0a366)
  • อัตราความเร็วที่ปรับแล้วให้มีชิ้นส่วนประกอบและการคำนวณทางคณิตศาสตร์ (Ib0447)
  • เปลี่ยนชื่อ @ExperimentalTesting เป็น @ExampleTestApi เป็น สอดคล้องกับคำอธิบายประกอบ API ทดลองที่คล้ายกัน (Ia4502, b/171464963)
  • เพิ่มเมธอด StickyHeader แบบทดลองสำหรับ LazyColumn/LazyRow (I0a81d)
  • Color.useOrElse() เป็น Color.takeOrElse() (Ifdcf5)
  • TestUiDispatcher เลิกใช้งานแล้ว ใช้ Dispatchers.Main แทน (Ic171f, b/175385255)
  • เพิ่มปุ่มสลับไปยัง Strings.kt พื้นฐาน (I4a5b7, b/172366489)
  • ย้าย NativeClass ไปยัง โมดูล UI และทำให้เป็นโมดูลภายใน อัปเดตการใช้งาน NativeClass ใน เท่ากับการติดตั้งใช้งาน "is MyClass" แทน (I4f734)
  • เลิกใช้งาน FlowRow และ FlowColumn แล้ว โปรดใช้รูปแบบที่กำหนดเองแทน (I09027)
  • เลิกใช้งาน Modifier.Focus() และ Modifier.focusRequester() แล้ว โปรดใช้ Modifier.focusModifier() และ Modifier.FocusReference() แทน (I75a48, b/175160751, b/175160532, b/175077829)
  • เปิดตัว SelectionRegistrar.notifySelectableChange เพื่อแจ้งการอัปเดต Selectable ใน SelectionManager (I6ff30, b/173215242)
  • เปลี่ยน fun Dp.isFinite() เป็น val Dp.isFinite (I50e00)
  • เปลี่ยนชื่อ Constraints#sจะเปลี่ยนโดย เป็น isSPricingBy (I9cf5c)
  • เพิ่ม isSpecified, isUnidentifier และ useOrElse สำหรับ คลาสในบรรทัดที่มีค่าคงที่ที่ไม่ระบุ (I93f7b, b/174310811)

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

  • API ใหม่ที่อิงตาม Coroutine Animatable เพื่อให้มั่นใจว่าไม่มีการแบ่งแยก ท่ามกลางภาพเคลื่อนไหว DecayAnimationSpec ใหม่เพื่อรองรับภาพเคลื่อนไหวลดลงหลายมิติ (I820f2, b/168014930)
  • เพิ่มการสนับสนุนสำหรับฟิลด์ข้อความที่ปิดใช้และอ่านอย่างเดียว (I35279, b/171040474, b/166478534)
  • ตอนนี้แทนที่ animate() ด้วย animateAsState() แล้ว ซึ่งแสดงผลเป็น State<T> แทน T วิธีนี้ทำให้ ประสิทธิภาพสูงสุด เนื่องจากสามารถจำกัดขอบเขตการใช้งานไม่ได้ให้แคบลงได้ ตรงตำแหน่งที่มีการอ่านค่า State (Ib179e)
  • เพิ่ม API บทบาทความหมาย และเพิ่มบทบาทเป็นพารามิเตอร์ใน SemanticsModifier ที่คลิกได้ เลือกได้ และสลับได้ เปลี่ยนแปลงแล้ว Modifier.progressSemantics เพื่อให้ Slider ใช้งานได้ (I216cd)
  • ตอนนี้คุณจะเข้าถึง keyEvent แบบเนทีฟได้ผ่าน keyEvent.nativeKeyEvent (I87c57, b/173086397)

เวอร์ชัน 1.0.0-alpha09

16 ธันวาคม 2020

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

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

  • เพิ่มอินเทอร์เฟซแบบเลื่อนได้

    วิธีนี้ทำให้ระบบยอมรับ ScrollState และ LazyListState ร่วมกัน ซึ่งทำให้สามารถใช้การเลื่อนที่กำหนดเองในทั้ง 2 ประเภทได้

    ซึ่งจะเป็นการย้าย ให้เลื่อนไปที่ฟังก์ชันส่วนขยายใน Scrollable การใช้ประโยชน์จากฟังก์ชันนี้ (I2153B)

  • เพิ่ม LazyVerticalGrid แล้ว (I17267, b/162213211)

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

  • สำหรับการระงับ API อินพุตตัวชี้ เปลี่ยนชื่อ HandlePointerInputScope กับ AwaitPointerEventScope และ ManagePointerInput() ไปยัง awaitPointerEventScope() (Idf0a1, b/175142755)

  • มีการเพิ่ม LazyListState.layoutInfo ซึ่งจะแสดงรายการขนาดและออฟเซ็ตของรายการที่ปรากฏในปัจจุบัน (If8678, b/170472532)

  • นำคำอธิบายประกอบ ExperimentalPointerInput ออกแล้ว (Ia7a24)

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

  • เพิ่มพารามิเตอร์ ReverseLayout สําหรับ LazyColumn/แถว เมื่อ true รายการจะเขียนจากล่างขึ้นบนและ LazyListState.firstVisibleItemIndex == 0 จะหมายถึงรายการแรกอยู่ด้านล่าง (I552ae, b/166589935)

  • เพิ่มพารามิเตอร์แนวตั้งของ LazyColumn แล้ว เพิ่มพารามิเตอร์ Alignment ของแนวนอนสำหรับ LazyRow แล้ว การจัดเรียงช่วยให้เราสามารถเพิ่มระยะห่างระหว่างสินค้า และระบุการจัดเรียงสินค้าเมื่อมีสินค้าไม่เพียงพอที่จะเติมเต็มขนาดขั้นต่ำทั้งหมด (Icf79a, b/170394300)

  • ตอนนี้ตรวจจับท่าทางสัมผัสแบบมัลติทัชจะใช้ Callback 1 รายการร่วมกับการผสม พารามิเตอร์แบบเซนทรอยด์ เลื่อน ซูม และหมุน (Ie6e1c)

  • ย้าย ContentDrawScope ไปยังกราฟิก UI แล้ว กับ DrawScope (Iee043, b/173832789)

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

  • ตอนนี้ 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)

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

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

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

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

  • ได้เปิดตัวฟังก์ชันใหม่หลายอย่างใน SelectionRegistrar รวมถึงเปลี่ยนชื่อ onPositionChange เป็นแจ้งให้ทราบPositionChange (Ifbaf7)

  • AndroidOwner สร้างภายใน (Ibcad0, b/170296980)

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

  • มีการเปลี่ยนแปลงอินเทอร์เฟซของ Applier เพื่อลดความซับซ้อน สร้างต้นไม้จากล่างขึ้นบนแทนที่จะสร้างจากด้านบน

    เมธอด insert() เปลี่ยนชื่อเป็น insertTopDown() แล้ว

    เพิ่มเมธอด insertBottomUp() ใหม่แล้ว

    แอปพลิเคชันจะแทรกโหนดลงในแผนผังที่กำลังแก้ไข โดยใช้ insertTopDown() หรือ insertBottomUp() ขึ้นอยู่กับ ซึ่งทำงานได้ดีกว่า

    ต้นไม้บางต้น เช่น LayoutNode และ View จะมีขนาดใหญ่กว่า มีประสิทธิภาพในการสร้างจากล่างขึ้นบน มากกว่าจากด้านบนลงล่าง ก่อนการเปลี่ยนแปลงนี้ ต้องมีกลุ่มของส่วนแทรกในการใช้งานจากล่างขึ้นบน จำเป็นต้องคัดลอกไปยังเครื่องมือทั้งหมดที่ต้องขึ้นไปด้านล่าง ที่ช่วยเพิ่มประสิทธิภาพ การเปลี่ยนแปลงนี้จะทำให้ Applier ลบล้าง insertBottomUp() เพื่อสร้างแผนผังต้นไม้และ insertTopDown() เพื่อสร้างแผนผังต้นไม้ (Icbdc2)

  • เพิ่ม API ของ PainterResource แล้ว ในการจัดการกับออบเจ็กต์ Painter ที่โหลดแบบทึบ จากรูปแบบชิ้นงานแรสเตอร์ (เช่น PNG) หรือ VectorDrawables ผู้บริโภคไม่มี เพื่อระบุประเภทของเนื้อหาล่วงหน้า และสามารถเรียกใช้เมธอดนี้เพื่อรับออบเจ็กต์ Painter เพื่อใช้ใน Image Composables หรือ Painters (I2c703, b/173818471)

  • เพิ่มฟังก์ชันค่าเริ่มต้น createAnnotatedString ในลำดับ เพื่อสร้าง AnnotatedString สตริงที่มีคำอธิบายประกอบที่เลิกใช้งานแล้ว เครื่องมือสร้างขึ้นมา (Idfe0b)

เวอร์ชัน 1.0.0-alpha08

2 ธันวาคม 2020

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

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

  • นำพารามิเตอร์ maxLines ออกจาก CoreTextField แล้ว หากต้องการจำกัดความสูงของช่องข้อความตามจำนวนบรรทัด ให้ใช้ BasicTextField แทน (Iec002)
  • เปลี่ยนเมธอด await*TouchSlop() เป็น ไม่พบตัวชี้ลงและเปลี่ยนชื่อเป็น *OrCancellation และลดความจำเป็นใน พารามิเตอร์ orientationLock (Ie96e1)
  • เพิ่มการตรวจสอบ Lint สำหรับการตั้งชื่อและตำแหน่งของพารามิเตอร์ lambda ที่ประกอบกันได้ เพื่อตรวจสอบความสอดคล้องของหลักเกณฑ์การเขียน รวมทั้งย้ายข้อมูล API บางรายการโดยใช้ children เป็นชื่อสำหรับ lambda ต่อท้าย content ตามการตรวจสอบ Lint และคำแนะนำ (Iec48e)
  • ย้าย foundation:foundation-text API ไปยัง foundation:foundation แล้ว โครงสร้างแพ็กเกจยังคงเหมือนเดิม (Id3eb2)
  • ตัวตรวจจับท่าทางสัมผัสแบบมัลติทัชแบบใหม่ ได้แก่ ในการตรวจหาการหมุน การซูม และการเลื่อน (Ic459d)
  • ตัวตรวจจับท่าทางสัมผัสการลากแบบใหม่ที่ระงับเคอร์เซอร์ API ของอินพุต รวมถึงการล็อกการวางแนว (Icef25)
  • เปลี่ยนชื่อ VectorAsset เป็น ImageVector แล้ว ย้ายและเปลี่ยนชื่อ VectorAsset เป็น Builder เป็นคลาสภายในของ ImageVector ตาม หลักเกณฑ์ API ของสภา เพิ่ม typealias ของ VectorAssetBuilder แล้ว ลิงก์ไปยัง ImageVector.Builder สำหรับความเข้ากันได้ (Icfdc8)
  • เปลี่ยนชื่อ ImageAsset และ เมธอดที่เกี่ยวข้องกับ ImageBitmap (Ia2d99)
  • ย้ายคุณสมบัติพื้นฐานทางอรรถศาสตร์เป็น UI (I6f05c) แล้ว
  • เพิ่ม API การเลื่อนที่ใช้โครูทีน:

    เพิ่ม LazyListState.snapToItem และ LazyListState.smoothscrollBy รวมถึงระดับต่ำลง API สำหรับการควบคุมการเลื่อน API เหล่านี้มีอินเทอร์เฟซการระงับเพื่อควบคุมการเลื่อน ที่รอจนการเลื่อนเสร็จสิ้นจึงค่อยกลับมา (Ie5642)

  • เพิ่มพารามิเตอร์ singeLine ลงใน BasicTextField, TextField และ OutlinedTextField ตั้งค่าพารามิเตอร์นี้เป็น "จริง" เพื่อให้ช่องข้อความเป็นบรรทัดเดียวที่เลื่อนในแนวนอนได้ (I57004, b/168187755)

  • ตัวตรวจจับท่าทางสัมผัสสำหรับการแตะ แตะสองครั้ง กดค้าง และสัญลักษณ์การกดถูกเพิ่มโดยใช้ตัวชี้การระงับใหม่ อินพุต มีการเพิ่มยูทิลิตีบางอย่างด้วย ซึ่งทำให้ง่ายขึ้น ให้นักพัฒนาซอฟต์แวร์เขียนตัวตรวจจับท่าทางสัมผัสของตนเอง (I00807)

  • ต้องเพิ่ม Modifier.focusable ในพื้นฐาน ใช้ฟีเจอร์นี้เพื่อเพิ่มลักษณะการทำงานที่โฟกัสได้ลงในคอมโพเนนต์ โดยใช้ความหมายและการช่วยเหลือพิเศษที่ถูกต้อง (I41eb9, b/152525426, b/162865824)

  • ก่อนหน้านี้ API ที่เลิกใช้งานถูกนำออก: มีการนำเส้นขอบออก โปรดใช้ BorderStroke แทน นำ Modifier.drawBorder ออกแล้ว โปรดใช้ Modifier.border แทน นำ Modifier.gravity ออกแล้ว โปรดใช้ Modifier.align แทน นำสแต็กออกแล้ว โปรดใช้ Box แทน (I32c2b, b/172470874)

  • AbsoluteAรายอื่นๆ ได้รับการเปลี่ยนชื่อเป็น Asortment.Absolute (If26f2)

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

  • ย้าย DrawModifier API จาก ในแพ็กเกจ androidx.compose.ui แพ็กเกจ androidx.compose.ui.draw สร้างไฟล์ DrawModifierDeprecated.kt ไปยังแล้ว รวมถึง typealiases/helper เพื่อช่วย การย้ายข้อมูลจาก API (รหัส 6044, b/173834241)
  • เปลี่ยนชื่อ Modifier.drawLayer เป็น Modifier.graphicsLayer แล้ว รวมทั้งอัปเดตคลาสที่เกี่ยวข้องเป็น GraphicsLayer ตาม ความคิดเห็นเกี่ยวกับ API ของสภา (I0bd29, b/173834241)
  • นํา <T> ออกจากการประกาศ SubcomposeLayout คุณสามารถใช้โดยไม่ต้องระบุประเภทได้เลย (Ib60c8)
  • สร้างระยะเวลาทำงานของ PointerInputData และ ฟิลด์ตำแหน่งต้องไม่เป็นค่าว่าง (Id468a)
  • ตอนนี้ MaterialTheme จะตั้งค่าสีที่ถูกต้องสำหรับแฮนเดิลการเลือกและพื้นหลังของการเลือก แอปที่ไม่ใช่ Material สามารถใช้ AmbientTextSelectionColors เพื่อปรับแต่งสีที่ใช้ในการเลือกได้ (I1e6f4, b/139320372, b/139320907)
  • พารามิเตอร์การจัดแนวของ Box เปลี่ยนชื่อเป็น contentAlignment แล้ว (I2c957)
  • เปลี่ยนชื่อตัวปรับแต่งออฟเซ็ตPx เป็นออฟเซ็ต ตอนนี้จะใช้พารามิเตอร์ lambda แทน State แล้ว (Ic3021, b/173594846)
  • เพิ่ม WindowManager.isWindowFocused เพื่อตรวจสอบว่าหน้าต่างโฮสต์อยู่ในโฟกัสหรือไม่ และ WindowFocusObserver ที่แสดง Callback onWindowFocusChanged (I53b2a, b/170932874)
  • เพิ่มพารามิเตอร์resetInput ลงใน TextInputService#onStateUpdated (I3e8f5, b/172239032, b/171860947)
  • API TextFieldValue ที่อัปเดต
    • ทำให้ TextFieldValue.composition เป็นแบบอ่านอย่างเดียว
    • มีการส่งข้อยกเว้นออกสำหรับช่วงการเลือกที่ไม่ถูกต้อง (I4a675, b/172239032)
  • แอมเบียนท์ที่เลิกใช้งานซึ่งตั้งชื่อด้วย Ambient เป็นคำต่อท้าย และแทนที่ด้วยพร็อพเพอร์ตี้ใหม่ที่ขึ้นต้นด้วย "แอมเบียนท์" ตามหลักเกณฑ์อื่นๆ ของแอมเบียนท์และ Compose API (I33440)
  • เพิ่ม Wrapper ของแบบอักษร Android แล้ว คุณสามารถโหลด Android แบบตัวพิมพ์ผ่านฟังก์ชัน typeface เช่น typeface(Typeface.DEFAULT) และเปลี่ยนชื่อ typefaceFromFontFamily() เป็น typeface() (I52ab7) ด้วย
  • เพิ่มการตรวจสอบ Lint เพื่อตรวจสอบว่าโรงงานของตัวปรับแต่งใช้ androidx.compose.ui.composed {} ภายในหรือไม่ แทนการทำเครื่องหมายเป็น @Composable (I3c4bc)
  • เพิ่มการตรวจสอบ Lint เพื่อดูว่าฟังก์ชันจากโรงงานของ Modifier ถือเป็นส่วนขยายใน Modifier เพื่อให้เชื่อมต่อกันได้อย่างคล่องแคล่ว (I07981)
  • เปลี่ยนชื่ออาร์กิวเมนต์ "MergeAllDescendants" แล้วเป็น MergeDescendants (Ib6250)
  • การควบคุมเวลาในการทดสอบ (TestAnimationClock และการใช้งาน) คือ อยู่ในขั้นทดลอง (I6ef86, b/171378521)
  • นำโมดูลการทดสอบ UI เก่าและสตับของโมดูลออก (I3a7cb)
  • TextUnit.Inherit เปลี่ยนชื่อเป็น TextUnit แล้วแต่ยังไม่ระบุให้สอดคล้องกับหน่วยอื่นๆ (กรณีที่ 19)
  • อัปเดตอินเทอร์เฟซการปรับแนวและทำให้ใช้งานได้แล้ว (I46a07, b/172311734)
  • รวมโมดูล foundation:foundation-text เข้ากับ foundation:foundation (Idac0f) แล้ว
  • สถานที่ที่เลิกใช้งาน(ออฟเซ็ต) และ PlaceRelative(ออฟเซ็ต) ใช้โอเวอร์โหลดที่มีออฟเซ็ต Int แทน (I4c5e7)
  • id เปลี่ยนชื่อเป็น layoutId สำหรับ LayoutIdParentData แล้ว เปลี่ยนชื่อ Measurable.id เป็น Measurable.layoutId แล้ว (Iadbcb, b/172449643)

เวอร์ชัน 1.0.0-alpha07

11 พฤศจิกายน 2020

ปล่อย androidx.compose.foundation:foundation:1.0.0-alpha07, androidx.compose.foundation:foundation-layout:1.0.0-alpha07 และ androidx.compose.foundation:foundation-text:1.0.0-alpha07 แล้ว เวอร์ชัน 1.0.0-alpha07 มีคอมมิตเหล่านี้

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

  • เช่นเดียวกับ Modifier.fillMaxSize[Width|Height] ขณะนี้เรารองรับเศษส่วนใน Modifier.fillParentMaxSize[Width|Height] ภายในขอบเขตของ LazyColumn/Row (I797e2, b/166586426)
  • นำ KeyboardOptions.toImeOptions ออกจาก API สาธารณะแล้ว (Ic2e45)
  • เลิกใช้งาน AmbientTextStyle, ProvideTextStyle และ AmbientContentColor ของพื้นฐานแล้ว โปรดใช้เวอร์ชันใหม่ที่มีในไลบรารี Material แทน สำหรับแอปพลิเคชันที่ไม่ใช่ Material คุณควรสร้างระบบการออกแบบเฉพาะธีมสิ่งแวดล้อมที่สามารถใช้งานได้ในคอมโพเนนต์ของคุณเอง (I74acc, b/172067770)
  • Foundation.Text เลิกใช้งานแล้วและแทนที่ด้วย Material.Text สำหรับ API ข้อความพื้นฐานที่ไม่ถูกตัดสินซึ่งไม่ใช้ค่าจากธีม โปรดดู androidx.compose.foundation.BasicText (If64cb)
  • เพิ่ม maxLines ลงใน TextFields (Ib2a5b)
  • อัปเดตฟิลด์ข้อความเพื่อยอมรับ KeyboardOptions (Ida7f3)
  • เพิ่ม KeyboardOptions สำหรับการใช้งานใน TextFields (I9ca32)
  • เพิ่ม BasicText เป็น API ที่ไม่ได้ออกแบบให้สำหรับข้อความ โดยขนานกับ BasicTextField (I28268)
  • นำคำอธิบายประกอบ ExperimentalLazyDsl ออกแล้ว ตอนนี้คุณใช้ LazyColumn/LazyRow โดยไม่ต้องเพิ่ม @OptIn (Idab7a, b/166584730) ได้แล้ว
  • เลิกใช้งาน BaseTextField แล้ว โปรดใช้ BasicTextField แทน (I896eb)
  • มีการเพิ่ม BasicTextField มาแทนที่ทั้ง CoreTextField และ BaseTextField (Id4cea)
  • นำ LazyColumnItems/LazyRowItems ที่เลิกใช้งานแล้ว (I1d8a8) ที่เลิกใช้งานแล้วออก
  • Composable ที่เลิกใช้งานแล้วสำหรับการปรับขนาดตามการวัดที่แท้จริงถูกนำออก (I18537, b/171811496)
  • RelativePaddingFrom เป็น paddingFrom แทน เพิ่มตัวปรับแต่ง addingFromBaseline เพื่ออำนวยความสะดวกในการระบุระยะทางตั้งแต่ขอบเขตของเลย์เอาต์ไปจนถึงเกณฑ์พื้นฐานของข้อความ (I0440a, b/170633813)
  • เพิ่มพารามิเตอร์ matchHeightConstraintsFirst ลงในตัวปรับสัดส่วนการแสดงผล ซึ่งสามารถใช้เพื่อระบุตัวปรับให้มีขนาดตามการจำกัดความสูง ก่อนที่จะลองใช้ค่าที่สอดคล้องด้านความกว้าง (Ie7c43, b/155290593)
  • นำ DpConstraints ที่เลิกใช้งานแล้วออกแล้ว (I87884, b/171702471)

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

  • เปิดตัว ScaleFactor คลาสแบบอินไลน์เพื่อแสดงสัดส่วน ปัจจัยสำหรับแนวนอนและแนวตั้ง แกนที่เป็นอิสระจากกันตามลำดับ เพื่อรองรับ Use Case ของการปรับขนาดที่ไม่ใช่แบบเดียวกัน
    • เพิ่มเมธอด computeScaleFactor ไปยัง สเกลเนื้อหา
    • เพิ่ม ContentScale.FillBounds เพื่อดำเนินการ การปรับขนาดไม่เป็นแบบเดียวกันเพื่อยืด src ขอบเขตเพื่อให้ครอบคลุมปลายทางทั้งหมด
    • เพิ่มเมธอดโอเปอเรเตอร์ที่จะประมวลผลแล้ว พารามิเตอร์ ScaleFactor ที่มีพารามิเตอร์ขนาด
    • (Ic96a6, b/172291582)
  • ย้าย CaptureToBitmap ไปยัง CaptureToImage แล้ว (I86385)
  • ทำเครื่องหมาย CoreText เป็น @internalTextApi โปรดใช้ BasicText แทน (I6aaeb)
  • เปลี่ยนชื่อ KeyboardOptions เป็น ImeOptions (I82f36)
  • ย้าย KeyboardType และ ImeAction ลงใน KeyboardOptions (I910ce)
  • ทำเครื่องหมาย CoreTextField เป็น @internalTextApi ใช้ BasicTextField แทน (Ie2469)
  • ลบคำอธิบายประกอบ ExperimentalSubcomposeLayoutApi แล้ว ตอนนี้สามารถใช้ SubcomposeLayout ได้โดยไม่ต้องเพิ่ม @OptIn (I708ad)
  • แนะนำโมดูล ui-test-junit4 (Ib91f8)
  • อัปเดต Icon API เพื่อใช้โหมด Color.Unidentifier เป็นสีจางที่เป็นไปได้ ซึ่งจะวาดตามที่ให้ไว้ Asset หรือ Painter ที่ไม่มี ColorFilter ก่อนหน้านี้ พยายามเพิกเฉยต่อการย้อมสีด้วย Color.Unidentifier จะย้อมด้วยสีโปร่งใสที่สุดท้าย โดยไม่แสดงผลเลย (I049e2, b/171624632)
  • ย้าย Measureผลลัพธ์ ออกจาก MeasureScope (Ibf96d, b/171184002)
  • มีการย้ายสัญลักษณ์ที่เกี่ยวข้องกับเลย์เอาต์หลายรายการจาก androidx.compose.ui ไปยัง androidx.compose.layout.ui (I0fa98, b/170475424)
  • ย้าย androidx.ui.test ไปยัง androidx.compose.ui.test (I9ffdb) แล้ว
  • FirstBaseline และ LastBaseline ย้ายไปยังแพ็กเกจ androidx.compose.ui.layout (Ied2e7) แล้ว
  • เพิ่ม SelectionContainer โดยไม่มี Callback (Ibfadb) แล้ว
  • เพิ่มการทดสอบสำหรับ SelectionHandles ตำแหน่งใน SelectionContainer (Ie93db)
  • เพิ่มตัวเลือก IME การแก้ไขอัตโนมัติบนแป้นพิมพ์ (I57b8d)

เวอร์ชัน 1.0.0-alpha06

28 ตุลาคม 2020

ปล่อย androidx.compose.foundation:foundation:1.0.0-alpha06, androidx.compose.foundation:foundation-layout:1.0.0-alpha06 และ androidx.compose.foundation:foundation-text:1.0.0-alpha06 แล้ว เวอร์ชัน 1.0.0-alpha06 มีคอมมิตเหล่านี้

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

  • androidx.compose.foundation.Icon ย้ายไปยัง androidx.compose.material.Icon แล้ว คุณสามารถใช้คอมโพเนนต์รูปภาพ / Modifier.paint() กับ Painter ได้เช่นกันหากไม่ต้องการใช้ไลบรารี Material (I9f622)
  • เพิ่มInteractionState ลงใน Modifier.scrollable, ScrollableColumn และ LazyColumnFor (I81566, b/169509805)
  • เพิ่ม PixelbookByBaseline ไปยัง RowScope และได้เปลี่ยนชื่อ alignWithSiblings เป็น alignBy (I06503, b/170628732)
  • Box สร้างฟังก์ชันในบรรทัด (Ibce0c, b/155056091)
  • เพิ่ม maxLines ลงใน CoreTextField (Ibee58, b/143687793)
  • เพิ่ม softwrap ใน CoreTextField (I21a4b)

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

  • เลิกใช้งาน VectorPainter ใน โปรดจำ VectorPainter เพื่อ ระบุว่า Composable API ภายใน ใช้ประโยชน์จาก "การจดจำ" เพื่อคงข้อมูลไว้ งานประพันธ์ (Ifda43)
  • เปิดใช้การเปลี่ยนใน ComposeTestRule ลบตัวเลือกในการ เปิดใช้เคอร์เซอร์ที่กะพริบจาก ComposeTestRule (If0de3)
  • เพิ่มตัวเลือกแป้นพิมพ์บรรทัดเดียวใน CoreTextField (I72e6d)
  • เปลี่ยนชื่อ Radius API เป็น CornerRadius แสดงออกได้ดียิ่งขึ้น วิธีใช้งานใน Compose อัปเดตเอกสารประกอบเพื่อระบุว่า รัศมีมุมลบถูกบีบ เป็น 0 (I130c7, b/168762961)
  • เพิ่มความสามารถในการระบุข้อมูลเครื่องมือตรวจสอบในตัวปรับแต่งที่เขียน (Idee08, b/163494569)
  • เพิ่มตัวเลือก IME สำหรับ KeyboardCapitalization (I8ac38)
  • แก้ไขตำแหน่งแฮนเดิล Rtl (I6e1e0)
  • การเปลี่ยนแปลงที่ส่งผลล่าสุด: นำค่าที่ส่งกลับออกจาก PointerInputFilter.onPointerEvent(...) เนื่องจากค่าเดียวที่ควรเปลี่ยนได้ในเหตุการณ์ตัวชี้คือข้อมูลการใช้งาน ตอนนี้คุณสามารถเปลี่ยนแปลงข้อมูลการใช้งานของ PointerEvents ที่ส่งผ่านแทนการส่งคืนข้อมูลจาก PointerInputFilter.onPointerEvent(...) ได้แล้ว (I6acd0)
  • เพิ่มตัวเลือก SelectAll ในเมนูการเลือกแล้ว (Ief02b)

เวอร์ชัน 1.0.0-alpha05

14 ตุลาคม 2020

ปล่อย androidx.compose.foundation:foundation:1.0.0-alpha05, androidx.compose.foundation:foundation-layout:1.0.0-alpha05 และ androidx.compose.foundation:foundation-text:1.0.0-alpha05 แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้

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

  • ตอนนี้ CoreTextField รองรับฟังก์ชันการทำงานของเคอร์เซอร์ (Id23aa) แล้ว
  • เลิกใช้งาน contentColor() และ CurrentTextStyle() และแทนที่ด้วย AmbientContentColor และ AmbientTextStyleแอมเบียนท์ตามลำดับ คุณสามารถเข้าถึงค่าปัจจุบันได้โดยใช้ .current ในพร็อพเพอร์ตี้ แอมเบียนท์ เช่นเดียวกับสภาพแวดล้อมอื่นๆ โดยเราทำการเปลี่ยนแปลงนี้เพื่อให้เกิดความสม่ำเสมอ และเพื่อหลีกเลี่ยงไม่ให้มีหลายวิธีในการทำสิ่งเดียวกัน นอกจากนี้ ยังเปลี่ยนชื่อพร็อพเพอร์ตี้แอมเบียนท์บางรายการเพื่ออธิบายวัตถุประสงค์ได้ดียิ่งขึ้นดังนี้

    • ContentColorAmbient -> สีเนื้อหาแอมเบียนท์
    • รูปแบบข้อความแอมเบียนท์ -> รูปแบบข้อความแอมเบียนท์
    • ตัวบ่งชี้แอมเบียนท์ -> ตัวบ่งชี้แบบแอมเบียนท์
    • การเน้นความสำคัญ -> ระดับแสงแวดล้อม
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

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

  • ในฐานะส่วนหนึ่งของการกำหนดมาตรฐาน ของค่าที่ส่งสำหรับคลาสในบรรทัด เปลี่ยนชื่อสี ยกเลิกการตั้งค่าเป็นสี ไม่ระบุ เพื่อความสอดคล้องกับคลาสแบบอินไลน์อื่นๆ (I97611, b/169797763)
  • เพิ่มการดำเนินการช่วยเหลือพิเศษการคัดลอก/วาง/ตัด (I6db4f)
  • แนะนำ TextOverflow.None เมื่อส่วนเพิ่มเติมเป็น "ไม่มี" Text จะไม่จัดการกับส่วนเพิ่มเติมอีกต่อไป และจะรายงานขนาดจริงไปยัง LayoutNode (I175c9, b/158830170)
  • ขนาดที่อัปเดตแล้ว ไม่ระบุ ให้เป็น Float.NaN แทน Float.POSITIVE_INFINITY อัปเดตการติดตั้งใช้งาน Painter เป็น ตรวจสอบกับ Size.Unidentifier ด้วย เป็นขนาดแบบไม่จำกัด (I95a7e)
  • เพิ่มโมดูล Paging Compose และการผสานรวมการแบ่งหน้า (Ib85da)
  • แก้ไข LazyListScope เพื่อรับค่า Nullable (I1765b)
  • OnPositionedModifier เปลี่ยนชื่อเป็น OnGloballyPositionedModifier และ onPositioned() จะเปลี่ยนชื่อเป็น onGloballyPositioned() (I587e8, b/169083903)
  • เพิ่มตัวอย่างสำหรับ LazyColumn/แถว (Idc16d)
  • แก้ไขเมธอด items และ itemsIndexed เพื่ออนุญาต emptyList (I06647)
  • เพิ่ม DSL เพื่อระบุข้อมูลเครื่องมือตรวจสอบ (Ic9a22)
  • เลื่อน LongPress ไปไว้ในข้อความ (Iff2bc)
  • ปิดใช้การเลือกในข้อความและการสาธิต (Ie7e97)
  • รองรับการแปลง AnnotatedString เป็น SAttachableString สำหรับการเข้าถึง (Ief907)
  • นำ PointerInputFilter.onPointerInput(...) ออกแล้ว ควรใช้ PointerInputFilter.onPointerEvent(...) แทน (I6F04a)

เวอร์ชัน 1.0.0-alpha04

1 ตุลาคม 2020

ปล่อย androidx.compose.foundation:foundation:1.0.0-alpha04, androidx.compose.foundation:foundation-layout:1.0.0-alpha04 และ androidx.compose.foundation:foundation-text:1.0.0-alpha04 แล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้

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

  • เปลี่ยนชื่อกลุ่มเป็น Box แล้ว Foundation.Box ที่มีอยู่ก่อนหน้านี้จะเลิกใช้งานเพื่อใช้ Box ใหม่ใน publisher.foundation.layout ลักษณะการทำงานของ Box ใหม่คือการเรียงรายการย่อยซ้อนทับกันเมื่อมีรายการย่อยหลายคน ซึ่งแตกต่างจาก Box ก่อนหน้านี้ ซึ่งมีลักษณะการทำงานที่คล้ายกับคอลัมน์ (I94893, b/167680279)
  • เลิกใช้งานพารามิเตอร์การตกแต่งกล่องแล้ว หากต้องการให้มีการตกแต่ง/ระยะห่างจากขอบบนกล่อง ให้ใช้ตัวปรับแต่งแทน (Modifier.background, Modifier.border, Modifier.padding) (Ibae92, b/167680279)
  • เพิ่มคลาส LazyListState ใหม่ วิธีนี้ทำให้สังเกตและควบคุมตำแหน่งการเลื่อนของ คอมโพเนนต์ LazyRow และ LazyColumn คุณสร้างอินสแตนซ์ได้โดยใช้ จดจำLazyListState() และส่งเข้าไปในพารามิเตอร์สถานะของ คอมโพเนนต์ ในขณะนี้ รายการแรกและออฟเซ็ตที่ปรากฏสามารถ ที่พบในเวอร์ชันเริ่มต้นนี้ (Ic7cb7, b/159307669)
  • ตอนนี้ระบบจะบันทึกตําแหน่งรายการแบบ Lazy Loading และออฟเซ็ตการเลื่อนและ กู้คืนในกิจกรรมสันทนาการ (Ie045f, b/166589058)
  • เพิ่มการทำงานของความหมายของคลิกยาว (I6281b, b/156468846)
  • เพิ่มยูทิลิตี MutatorHandlex สำหรับเก็บค่า กลายพันธุ์เพียง 1 ตัว สถานะที่แชร์เมื่อเวลาผ่านไปและการยกเลิกการเปลี่ยนแปลงที่ขัดแย้งกันตามลำดับความสำคัญ (I3f975)
  • ที่มีคำอธิบายประกอบrootAnimationClockfactor, การเปลี่ยนเปิดใช้, blinkingCursorEnabled และ textInputServiceFactory กับ @VisibleForTesting, ทำให้เป็น API ภายในและซ่อน kdoc (I554eb, b/168308412)
  • นำพารามิเตอร์ inlineContent ออกจากข้อความที่มีอินพุตสตริงแล้ว จะไม่ถูกนำมาใช้เนื่องจาก inlineContent ต้องใช้งานกับ AnnotatedString ได้ (Ief403)
  • ระบบนำ Asortment API ที่กำหนดเองซึ่งเลิกใช้งานแล้วออก (Ic576d, b/168297922, b/168297923)
  • เพิ่มพารามิเตอร์ unbounded ลงในตัวแก้ไข wrapContentSize ซึ่งทำให้วัดองค์ประกอบเลย์เอาต์ที่มีข้อจำกัดสูงสุดแบบไม่จำกัด (I77951, b/158559319)
  • เราป้องกันไม่ให้มีการนำเข้าเนื้อหาของขอบเขตเลย์เอาต์แบบคงที่ (เช่น alignWithSiblings ใน RowScope) ควรใช้ตัวเลือกขอบเขตที่ชัดเจนแทน: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } (I216be, b/166760797)

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

  • อัปเดต 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)
  • การเพิ่มประสิทธิภาพสำหรับ LazyColumnFor/LazyRowFor ของการเลื่อนโดยไม่จัดตำแหน่งใหม่ที่ไม่จำเป็นระหว่างการเลื่อนทุกครั้ง (I64f65, b/168293643, b/167972292, b/165028371)
  • แก้ไขข้อขัดข้องใน LazyColumnFor/LazyRowFor หลังเลื่อนแล้วเปลี่ยนรายการและใช้การเลื่อนอัตโนมัติขึ้นเมื่อมีการนำรายการที่มองเห็นได้ก่อนหน้านี้ออก เพื่อไม่ให้เราแสดงช่องว่างในตอนท้ายอีกต่อไป (I220ab, b/161480164, b/167855468)
  • ไม่อนุญาตให้ใช้การฝังที่เลื่อนได้ในคอนเทนเนอร์ทิศทางเดียวกัน เช่น ScrollableContainer และ LazyColumnFor อีกต่อไป ไม่เคยมีการสนับสนุนเลย แต่เขียนไม่ได้เลยและขจัดกับความขี้เกียจทั้งหมดในการเขียนรายการ LazyColumnFor (I6e101)
  • อัปเดต 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)
  • เพิ่ม AccessibilityscrollState ลงในพร็อพเพอร์ตี้ความหมาย (Ifeda9)
  • ทำให้ TextRange แทรกในบรรทัดเพื่อหลีกเลี่ยงการสร้างออบเจ็กต์ (Id034b)
  • นำ ParagraphConstraints ออกแล้ว ระบบจะส่งความกว้างไปยังย่อหน้าโดยตรงตอนนี้ (Ica712)

เวอร์ชัน 1.0.0-alpha03

16 กันยายน 2020

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

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

  • InnerPadding ได้เปลี่ยนชื่อเป็น PaddingValues (I195f1, b/167389171)
  • มีการเปลี่ยนชื่อการใช้แรงโน้มถ่วงอย่างต่อเนื่องเพื่อจัดแนวหรือจัดแนวใน API เลย์เอาต์ (I2421a, b/164077038)
  • ระบบเพิ่มพารามิเตอร์การจัดข้อความลงในกลุ่ม ซึ่งช่วยให้ระบุการจัดข้อความเริ่มต้นสำหรับกลุ่มย่อยทั้งหมดของกลุ่มได้ (Ie80ca, b/164085265)

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

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

เวอร์ชัน 1.0.0-alpha02

2 กันยายน 2020

ปล่อย androidx.compose.foundation:foundation:1.0.0-alpha02, androidx.compose.foundation:foundation-layout:1.0.0-alpha02 และ androidx.compose.foundation:foundation-text:1.0.0-alpha02 แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้

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

  • TestUiDispatcher ได้รับการระบุว่าเป็นการทดลอง (Iae99d, b/161247083)
  • เพิ่มเมื่อ ManualFrameClock.hasAwaiters เพื่อดูว่ามีสิ่งใดหรือไม่ กำลังรอเฟรมจากนาฬิกานั้น runWithManualClock โดยแทนที่ สำหรับ runBlocking เมื่อเรียกใช้การทดสอบที่ต้องใช้ ManualFrameClock TestUiDispatcher.Main ที่ช่วยให้เข้าถึงผู้มอบหมายงาน UI หลักได้ง่าย ในการทดสอบ

    เช่น

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    (I0a85b, b/161247083)

เวอร์ชัน 1.0.0-alpha01

26 สิงหาคม 2020

ปล่อย androidx.compose.foundation:foundation:1.0.0-alpha01, androidx.compose.foundation:foundation-layout:1.0.0-alpha01 และ androidx.compose.foundation:foundation-text:1.0.0-alpha01 แล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตเหล่านี้

เวอร์ชัน 0.1.0-dev

เวอร์ชัน 0.1.0-dev17

19 สิงหาคม 2020

ปล่อย androidx.compose.foundation:foundation:0.1.0-dev17, androidx.compose.foundation:foundation-layout:0.1.0-dev17 และ androidx.compose.foundation:foundation-text:0.1.0-dev17 แล้ว เวอร์ชัน 0.1.0-dev17 มีคอมมิตเหล่านี้

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

  • มีการเพิ่ม SpacedBy Asortment สำหรับแถวและคอลัมน์ เพื่อเปิดใช้เลย์เอาต์การกำหนดตำแหน่งที่มีระยะห่างคงที่ นอกจากนี้ยังเพิ่มการจัดแนวย่อหน้าด้วย เพื่อให้สามารถจัดตำแหน่งการจัดวางรายการย่อยถัดจากอีกแบบหนึ่ง และจัดไว้ในแถว/คอลัมน์ตามการปรับแนว เลิกใช้วิธีการ Asortment.Vertical#asort และ A Sortment.Horizontal#ahandling แล้ว และจะไม่ได้รับการสนับสนุนการเขียนการจัดเรียงที่กำหนดเองในอนาคต (I6733d, b/161985975)
  • ออฟเซ็ตได้กลายเป็นคลาสอินไลน์ (Iaec70)
  • นำ onFocusChanged Callbacks ออกจาก TextField แล้ว ใช้ Modifier.FocusObserver แทน (I51089, b/161297615)
  • เลิกใช้งาน Modifier.drawBorder แล้ว ใช้ Modifier.border แทน คลาสข้อมูลเส้นขอบถูกแทนที่ด้วย BorderStroke (I4257d, b/158160576)
  • Verticalscroller และ Horizontalscroller ออกแล้ว โปรดใช้ ScrollableColumn/Row แทน นำ Modifier.drawBackground ออกแล้ว ใช้ Modifier.background (I73b0d, b/163019183)
  • นำตัวแก้ไขที่ทำเครื่องหมายว่าเป็น FillMax* ที่เลิกใช้งานแล้วออกจาก LazyItemScope เนื่องจากจะทำให้เพิ่มตัวแก้ไขดังกล่าวอย่างถูกต้องได้ยากขึ้นสำหรับรายการที่ไม่ใช่ตัวแก้ไขย่อยของ LazyColumnFor (Ifa78d)
  • เพิ่มการติดตั้งใช้งาน LazyColumn/LazyRow เป็น DSL (I93cc6)
  • ขณะนี้ข้อจำกัดเป็นคลาสอินไลน์ (I88736)
  • เพิ่มความสามารถในการปรับขนาดเลย์เอาต์ให้มีขนาดเพียงเศษเสี้ยวของพื้นที่ว่างโดยใช้ตัวปรับแต่ง fitMaxWidth,พยายามกรอกfillMaxHeight และพยายาม ให้กรอกMaxSize (I945bb, b/161562591)

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

  • เพิ่มพารามิเตอร์ตัวแก้ไขลงใน SelectionContainer (I4aada, b/161487952)
  • เพิ่มMergePolicy lambda ลงใน SemanticsPropertyKey แล้ว ประเภท ใช้เพื่อกำหนดนโยบายที่กำหนดเองสำหรับความหมายการผสานAllDescendants การผสาน นโยบายเริ่มต้นคือใช้ค่าระดับบน หากมีอยู่แล้ว ปรากฏ หรือไม่ก็มีค่าย่อย (Iaf6c4, b/161979921)
  • PlacementScope.placeAbsolute() เปลี่ยนชื่อเป็น PlacementScope.place() และ PlacementScope.place() ก่อนหน้านี้เปลี่ยนชื่อเป็น PlacementScope.placeRelative() ด้วยเหตุนี้ เมธอด PlacementScope.place() จะไม่มิเรอร์ตำแหน่งในบริบทแบบขวาไปซ้ายโดยอัตโนมัติอีกต่อไป หากต้องการ โปรดใช้ PlacementScope.placeRelative() แทน (I873ac, b/162916675)
  • นำคอมโพเนนต์ FilledTextField ที่เลิกใช้งานแล้วออก โปรดใช้ TextField แทนเพื่อรับการใช้งานดีไซน์ Material ของช่องข้อความที่กรอก (I5e889)
  • เพิ่มพารามิเตอร์ backgroundColor ไปยัง LinearProgressIndicator และนำระยะห่างจากขอบภายในออกจาก CircularProgressIndicator เพิ่ม ProgressIndicatorConstants.DefaultProgressAnimationSpec ใหม่ซึ่งสามารถใช้เป็น AnimationSpec เริ่มต้นได้เมื่อแสดงความคืบหน้าระหว่างค่าต่างๆ (If38b5, b/161809914, b/161804677)
  • ขณะนี้ Composable ของ state { ... } เลิกใช้งานแล้วเพื่อให้ การเรียกไปที่ remember { mutableStateOf(...) } อย่างชัดแจ้งเพื่อความชัดเจน การดำเนินการนี้จะลดแพลตฟอร์ม API โดยรวมและจำนวนแนวคิดสำหรับสถานะ การจัดการ และตรงกับรูปแบบ by mutableStateOf() สำหรับชั้นเรียน การมอบสิทธิ์พร็อพเพอร์ตี้ (Ia5727)
  • เปลี่ยนชื่อ Rect เป็น RoundRect แล้ว เพื่อให้พอดีกับรูปแบบการตั้งชื่อ สร้างตัวสร้างฟังก์ชันที่คล้ายกัน ไปยัง "Rect" และเลิกใช้งานฟังก์ชัน RRect แล้ว เครื่องมือสร้าง (I5d325)
  • นำ onChildPositioned และ OnChildPositionedModifier ออกแล้ว นักพัฒนาแอปควรใช้ onPositioned และ OnPositionedModifier ในเลย์เอาต์ย่อยแทน (I4522e, b/162109766)
  • IntSize เป็นคลาสแบบอินไลน์แล้วในตอนนี้ (I2bf42)
  • กดพื้นที่ว่างค้างไว้เพื่อแก้ไข (Ib1e5b)
  • ซ่อน FloodToolbar หลังจากแตะข้อความ (If4525)
  • ซ่อน FloodToolbar เมื่ออัปเดตการเลือก (I8444C)
  • ยกเลิกการเลือกเมื่อเบลอ (I781a2)

เวอร์ชัน 0.1.0-dev16

5 สิงหาคม 2020

ปล่อย androidx.compose.foundation:foundation:0.1.0-dev16, androidx.compose.foundation:foundation-layout:0.1.0-dev16 และ androidx.compose.foundation:foundation-text:0.1.0-dev16 แล้ว เวอร์ชัน 0.1.0-dev16 มีคอมมิตเหล่านี้

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

  • เพิ่ม LazyItemScope สำหรับพารามิเตอร์ itemContent ของรายการแบบ Lazy โดยให้ตัวแก้ไขเพื่อเติมขนาดสูงสุดระดับบนสุดซึ่งจะแก้ปัญหา Use Case เมื่อรายการควรเติมเต็มวิวพอร์ต และ Modifier.fillMaxSize() ปกติจะไม่ทำงานเนื่องจากมีการวัดรายการด้วยข้อจำกัดอนันต์ (Ibd3b2, b/162248854)
  • ย้ายกล่องโต้ตอบไปยัง UI (I47fa6)
  • เพิ่ม LazyColumnForIndexed/LazyRowForIndexed - เวอร์ชันของ LazyColumnFor/LazyRowFor ที่ให้ทั้งดัชนีและรายการใน itemCallback ซึ่งจะเป็นประโยชน์เมื่อนอกเหนือจากรายการปัจจุบันที่คุณจำเป็นต้องทราบดัชนีปัจจุบัน (I65ff3)
  • Modifier.deternimateProgress เปลี่ยนชื่อเป็น Modifier.progressSemantics (I9c0b4)
  • LazyColumnItems เปลี่ยนชื่อเป็น LazyColumnFor LazyRowItems เปลี่ยนชื่อเป็น LazyRowFor (I84f84)
  • เพิ่มเครื่องหมาย/คำอธิบายประกอบเพื่อเหตุผลของแนวทางปฏิบัติแนะนำ (I66B20)
  • แพ็กเกจ Foundation.shape.corner ถูกตัดเป็น Foundation.share (I46491, b/161887429)
  • เพิ่มพารามิเตอร์แรงโน้มถ่วงโสเลงในสกรูสำหรับ LazyRowItems/LazyColumnItems LazyRowItems/LazyColumnItems รองรับลักษณะการทำงานของเนื้อหาการรวมแล้ว (Ib39fc)
  • ZoomableState เปลี่ยนชื่อเป็น ZoomableController แล้ว เพิ่มการรองรับเส้นโค้งที่กำหนดเองสำหรับ SmoothScale เพิ่มฟังก์ชัน enabled และ onZoomStarted แล้ว (If8b8f)
  • Material FilledTextField ถูกเปลี่ยนชื่อเป็น TextField และ TextField พื้นฐานได้เปลี่ยนชื่อเป็น BaseTextField เพื่อให้สามารถค้นหาและใช้ API ที่ต้องการได้ง่ายที่สุด (Ia6242, b/155482676)
  • โดยได้นำ AdapterList ที่เลิกใช้งานแล้วก่อนหน้านี้ออกแล้ว ใช้ LazyColumnItems แทน (I12b9b)
  • Modifier.drawBackground ได้เปลี่ยนชื่อเป็น Modifier.background (I13677)
  • ConstraintLayout DSL เดิมถูกนำออกแล้ว ConstraintSet2 เปลี่ยนชื่อเป็น ConstraintSet แล้ว (If58d1, b/162450908)
  • เพิ่ม Modifier.absoluteOffset() และ Modifier.absoluteOffsetPx() ตัวปรับแต่งออฟเซ็ตแบบสัมบูรณ์จะไม่มิเรอร์อัตโนมัติในบริบทจากขวาไปซ้าย (I3aa21) ซึ่งต่างจากตัวปรับแต่งออฟเซ็ต
  • ตอนนี้ Row และ Column เปลี่ยนเป็นฟังก์ชันในบรรทัดแล้ว ซึ่งช่วยลดค่าใช้จ่ายในการใช้งาน (I75C10)

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

  • แก้ไข API แบบกว้าง (I077bc)
    1. นำอินเทอร์เฟซ OffsetBase ที่ไม่ได้ใช้ออก
    2. จัดคลาสออฟเซ็ตและ IntOffset ให้มี แพลตฟอร์ม API ที่สอดคล้องกัน
    3. เปลี่ยนชื่อ IntOffset.Origin เป็น IntOffset.Zero เพื่อให้สอดคล้องกับ Offset API
    4. ย้ายเมธอด NativeCanvas ออกจาก Canvas แล้ว สำหรับสนับสนุนให้ผู้บริโภคสร้าง อินสแตนซ์ Canvas ของตัวเอง
    5. สร้างคลาส EmptyCanvas เพื่อเปลี่ยนโครงสร้างภายในโค้ดแล้ว DrawScope ให้เป็นพารามิเตอร์ที่ไม่ใช่ค่าว่างได้แทน lateinit และตรวจสอบว่าฟิลด์จะไม่เป็นโมฆะ
    6. เปลี่ยนชื่อ ClipOp enum เป็น Pascal Case แล้ว
    7. เปลี่ยนชื่อ enum ของFilterquality เป็น Pascal Case แล้ว
    8. เปลี่ยนชื่อ Strokeเข้าร่วม enum เป็น Pascal Case แล้ว
    9. เปลี่ยนชื่อ enum ของ PointMode เป็น Pascal Case แล้ว
    10. เปลี่ยนชื่อ enum ของ PaintingStyle เป็น Pascal Case แล้ว
    11. เปลี่ยนชื่อ PathFillType enum เป็น Pascal Case แล้ว
    12. เปลี่ยนชื่อ StrokeCap enum เป็น Pascal Case แล้ว
    13. อัปเดตการใช้งาน DrawCache เป็นไม่แล้ว ใช้พารามิเตอร์ Latinit
    14. อัปเดต DrawScope เพื่อไม่ให้ใช้การมอบสิทธิ์แบบ Lazy อีกต่อไป สำหรับพารามิเตอร์ภายในfillPaint และ Straint
    15. อัปเดตรูปภาพที่ประกอบขึ้นได้เพื่อหลีกเลี่ยงการใช้ Box ลดค่าใช้จ่าย
    16. อัปเดตคลาส Outline ให้มีคำอธิบายประกอบ @Immutable
    17. อัปเดต PathNode ให้มีคำอธิบายประกอบ @Immutable สำหรับ วิธีการในแต่ละเส้นทาง
    18. อัปเดตองค์ประกอบย่อยเวกเตอร์เพื่อนำรายการที่ซ้ำซ้อนออก การตรวจสอบความเทียบเท่าแบบมีเงื่อนไขตามแฮนเดิลของการเขียนที่มีอยู่แล้ว พวกมัน
    19. เลิกใช้งานเมธอดตัวสร้างโฆษณาที่แสดงร่วมรูปสี่เหลี่ยมผืนผ้าที่ต้องการแล้ว ของตัวสร้างฟังก์ชัน
    20. อัปเดตคลาสของแปรงและเครื่องมือสร้างฟังก์ชันด้วย API @ที่เปลี่ยนแปลงไม่ได้และ @เสถียร
    21. อัปเดต enum VertexMode เป็น PascalCase
    22. อัปเดต DrawScope เมธอด SelectPaint เป็นแบบมีเงื่อนไข เขียนทับพารามิเตอร์เส้นโครงร่างในการแสดงผล หากมี เปลี่ยนแปลงแล้ว
    23. อัปเดตขนาดเพื่อเพิ่ม API ที่ทำลายโครงสร้างแล้ว เปลี่ยนชื่อ UnidentifierSize เป็น "Unidentifier [ไม่ระบุ]" และ "นำเมธอดที่ไม่ได้ใช้ออก"
  • เพิ่ม MonotonicFrameAnimationClock ที่ให้คุณใช้ MonotonicFrameClock เป็น AnimationClockObservable เพื่อเชื่อมช่องว่าง ระหว่างนาฬิกาที่ใช้โครูทีนใหม่และ API ที่ยังคงใช้ ที่อิงจากนาฬิกา Callback

    ตอนนี้เทียบเท่ากับ MonotonicFrameClock ของ ManualAnimationClock ManualFrameClock (I111c7, b/161247083)

  • นำ SemanticsNodeInteraction.performPartialGesture ออกแล้ว ใช้ SemanticsNodeInteraction.performGesture แทน (Id9b62)

  • เปลี่ยนชื่อ SemanticsNodeInteraction.getBoundsInRoot() เป็น SemanticsNodeInteraction.getUnclippedBoundsInRoot() (Icafdf, b/161336532)

  • API สำหรับการสนับสนุนข้อความจากขวาไปซ้ายได้รับการอัปเดตแล้ว เพิ่ม LayoutDirectionAmbient แล้วซึ่งใช้เพื่ออ่านและเปลี่ยนทิศทางเลย์เอาต์ได้ นำ Modifier.rtl และ Modifier.ltr ออกแล้ว (I080b3)

  • เลิกใช้งาน Modifier.plus แล้ว โปรดใช้ Modifier.then แทน "จากนั้น" มีสัญญาณในการจัดลำดับมากกว่า ในขณะเดียวกันก็ห้ามพิมพ์ Modifier.padding().background() + anotherModifier ทำให้เชนหลุดและอ่านยากขึ้น (Iedd58, b/161529964)

  • เพิ่ม isFocused() และ isNotFocused() SemanticsMatcher แล้ว (I0b760)

  • เพิ่ม RemeasurementModifier แล้ว ซึ่งจะช่วยให้ผู้ใช้วัดเลย์เอาต์ได้พร้อมกัน โดยทั่วไปแล้ว คุณไม่จำเป็นต้องใช้ฟีเจอร์นี้เพราะจะมีการวัด/รีเลย์เอาท์ใหม่โดยอัตโนมัติ แต่เรานำมาใช้ภายใน LazyColumnItems ระหว่างการเลื่อน (I5f331, b/160791058)

  • ตอนนี้ isSystemInDarkTheme จะพิจารณาการตั้งค่าธีมมืดของทั้งระบบเสมอ และจะไม่สนใจสถานะการประหยัดพลังงานก่อน Q ตามคำแนะนำล่าสุด (I0c10c)

  • เลิกใช้งาน OnChildPositioned แล้ว ใช้ OnPositioned ในหน้าย่อยแทน (I87f95, b/162109766)

  • เปลี่ยนชื่อ AndroidComposeTestRule เพื่อสร้าง AndroidComposeRule แล้ว (I70aaf)

  • เพิ่มการดำเนินการช่วยเหลือพิเศษเพื่อรับ TextLayoutผลลัพธ์ (I9d6e6)

เวอร์ชัน 0.1.0-dev15

22 กรกฎาคม 2020

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

หากต้องการใช้ Compose เวอร์ชัน 0.1.0-dev15 คุณจะต้องดำเนินการต่อไปนี้

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

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

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

  • ในทำนองเดียวกัน พารามิเตอร์ใหม่ใน ScrollableColumn/scrollableRow LazyColumnItems/LazyRowItems ยังมีพารามิเตอร์ contentPadding ที่ช่วยให้เพิ่มระยะห่างจากขอบของเนื้อหาหลังจากที่มีการตัดทอน ซึ่งทำไม่ได้หากใช้เพียงพารามิเตอร์ตัวปรับแต่งเท่านั้น นอกจากนี้ยังอนุญาตให้เพิ่มระยะห่างก่อนรายการแรก/หลังรายการสุดท้ายเท่านั้น (Ibc24e)
  • onFocusChange Callback ในช่องข้อความที่เปลี่ยนชื่อเป็น onFocusChanged (Ida4a1)
  • เลิกใช้งาน Vertical Scroller และ Horiziontalscroller แล้ว ใช้ ScrollableColumn และ ScrollableRow สำหรับประสบการณ์แบบบิวท์อินที่มีลักษณะการทำงานของคอลัมน์/แถวและพารามิเตอร์ หรือใช้ Modifier.verticalscroll และ Modifier.Inventoryscroll ในองค์ประกอบของคุณเอง ในทำนองเดียวกัน ScrollerPosition ถูกเลิกใช้งานเพื่อใช้ ScrollState แล้ว (I400ce, b/157225838, b/149460415, b/154105299)
  • ปรับปรุง API Modifier.draggable และ Modifier.scrollable ใหม่ มีการนำ DragDirection ออกเพื่อใช้การวางแนว สถานะที่จำเป็นสำหรับการเลื่อนได้มีการปรับให้เรียบง่ายขึ้น ScrollableState ได้รับการเปลี่ยนชื่อเป็น ScrollableController (Iab63c, b/149460415)
  • ตอนนี้พร็อพเพอร์ตี้ความหมายค่าเดี่ยวใช้รูปแบบการเรียกแล้ว ตัวอย่างเช่น 'ความหมาย { hide = true }' เขียนเป็น: semantics { hidden() } (Ic1afd, b/145951226, b/145955412)
  • ตอนนี้ขนาดมุมที่ RoundedCornerShape และ CutCornerShape ใช้ได้จะใหญ่กว่า 50% (Id2340, b/160400213)
  • เปลี่ยน ContentScale เริ่มต้นแล้ว พารามิเตอร์สำหรับ Image Composable จาก Inside ไปยัง Fit ขั้นตอนนี้ทำตามลำดับ เพื่อรับพฤติกรรมที่จะปรับขนาด แหล่งที่มา เครื่องมือทาสีหากเลย์เอาต์มีขนาดใหญ่กว่า ขนาดที่แท้จริงของจิตรกร การคงอัตราส่วนกว้างยาวไว้ ช่วงเวลานี้ พฤติกรรมตรงกับความคาดหวังมากกว่า สำหรับการกำหนดขนาดคงที่ให้กับภาพ ในขณะที่ไม่ส่งผลกระทบต่อลักษณะการทำงานเริ่มต้น หากใช้เฉพาะขนาดภายในเพื่อ คำนวณขนาดของ Composable (I40ae3, b/159838006)
  • ใช้ AnimationSpec แทน AnimationBuilder ใน API ระดับบนสุด เพื่อสร้างความชัดเจนเกี่ยวกับข้อกำหนดของภาพเคลื่อนไหวแบบคงที่ -ปรับปรุง DSL การเปลี่ยนด้วยการนำข้อกำหนด lambda ออกสำหรับ การสร้าง AnimationSpecs เช่น Tween, Spring แต่กลับใช้ พารามิเตอร์ตัวสร้างโดยตรง -เพิ่มความสะดวกในการใช้งานโดยรวมของ AnimationSpec ผู้สร้างแทนที่จะพึ่งพาผู้สร้าง -เปลี่ยนระยะเวลาและการหน่วงเวลาสำหรับ KeyFrame และ Tween เป็น Int ช่วงเวลานี้ ขจัดประเภทการแคสต์ที่ไม่จำเป็นและวิธีการโหลดมากเกินไป (สำหรับ สนับสนุนทั้ง Long และ Int) (Ica0b4)
  • "คลิกได้" ถูกนำออกแล้ว ใช้ Modifier.clickable (I84bdf)
  • LazyRowItems ที่เพิ่ม - แอนะล็อกแบบเลื่อนแนวนอนของ LazyColumnItems (Ibbcf7)
  • เปิดตัว API ภาพเคลื่อนไหวแบบไม่เก็บสถานะระดับต่ำ API เหล่านี้ (I63bf7)
  • androidx.ui.foundation.TextFieldValue และ เลิกใช้งาน androidx.ui.input.EditorValue แล้ว ฟิลด์ข้อความ FilledTextField และ CoreTextField ที่ใช้ Composable ที่ใช้ ประเภทนั้นก็เลิกใช้งานแล้วด้วย โปรดใช้ androidx.ui.input.TextFieldValue แทน (I4066d, b/155211005)
  • แทนที่การใช้ IntPx ด้วย Int. แทนที่ IntPxPosition ด้วย IntOffset แทนที่ IntPxSize ด้วย IntSize (Ib7b44)
  • นำ androidx.ui.foundation.shape.RectangleShape ออกแล้ว ใช้ androidx.ui.graphics.RectangleShape (I94939, b/154507984)
  • ในการรวม จำนวนคลาสที่ใช้แสดง ข้อมูลขนาด, ทำให้เป็นมาตรฐาน เกี่ยวกับการใช้คลาส Size แทน ของ PxSize ซึ่งมีประโยชน์ ของคลาสในหน้าที่จะใช้ประโยชน์จาก เพื่อบรรจุค่าจำนวนลอยตัว 2 ค่าเพื่อแสดง ความกว้างและความสูงแสดงเป็นแบบลอย (Ic0191)
  • ในการรวม จำนวนคลาสที่ใช้แสดง ข้อมูลการวางตำแหน่ง, ทำให้เป็นมาตรฐาน เกี่ยวกับการใช้คลาสออฟเซ็ตแทน ของ PxPosition ซึ่งมีประโยชน์ ของคลาสในหน้าที่จะใช้ประโยชน์จาก เพื่อบรรจุค่าจำนวนลอยตัว 2 ค่าเพื่อแสดง x และออฟเซ็ต y แสดงเป็นเลขทศนิยม (I3ad98)
  • เพิ่ม Modifier.zoomable สำหรับฟังก์ชันการบีบนิ้วเพื่อซูม (Id5d63)
  • เลิกใช้งานคอมโพเนนต์ที่เปิด/ปิดได้ ใช้ Modifier.toggleable แทน (I35220, b/157642842)
  • เลิกใช้งาน MutuallyExclusiveSetItem แล้ว ใช้ Modifier.selectable แทน (I02b47, b/157642842)
  • เลิกใช้งาน TestTag แล้ว โปรดใช้ Modifier.testTag แทน (If5110, b/157173105)
  • เพิ่มพารามิเตอร์ fontweight ไปยังข้อความ ซึ่งไม่ได้เพิ่มไว้ก่อนหน้านี้ (I56937)
  • แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทดั้งเดิมสำหรับพารามิเตอร์พิกเซล (I19d02)
  • ตอนนี้ Vertical Scroller สามารถจัดเตรียมคอลัมน์ให้ใช้งานได้แล้ว ตอนนี้ Horizontalscroller แสดง "แถวแนวนอน" จากกล่องแล้ว (Ieca5d, b/157020670)
  • แทนที่การใช้คลาส Px ใน เขียนชั้นเรียนในฐานะส่วนหนึ่งของ ความพยายามในการเปลี่ยนโครงสร้างโดยใช้ Dp เท่านั้น และประเภทพื้นฐานสำหรับพารามิเตอร์พิกเซล (Iede0b)
  • เพิ่ม Modifier.indication ในแพ็กเกจพื้นฐานแล้ว ใช้เพื่อแสดงการกด/ลาก/สัญญาณอื่นๆ บนองค์ประกอบแบบอินเทอร์แอกทีฟที่กำหนดเอง (I8425f, b/155287131)
  • Vertical Scroller และ Horizontalscroller รองรับการเลื่อนแบบย้อนกลับแล้ว โดยมีการตั้งค่า isReversed ใน ScrollerPosition (I953bd)
  • รองรับการเพิ่ม Composable ในเลย์เอาต์ข้อความ (I1373C)
  • การใช้ CanvasScope แบบรวม ตอนนี้ก็มีแค่ DrawScope และ ขอบเขตการวาดเนื้อหา เปลี่ยนชื่อ CanvasScope เป็น DrawScope อัปเดต DrawScope เพื่อใช้ความหนาแน่น อินเทอร์เฟซ และแสดง LayoutDirection ลบคลาสย่อย DrawScope ใน ContentDrawScope อัปเดต Painter และ PainterModifier แล้ว เพื่อไม่ให้มีพร็อพเพอร์ตี้ RTL อีกต่อไป และ DrawScope มีข้อมูลนี้แล้ว โดยไม่ต้องระบุด้วยตนเอง (I1798e)
  • นำ DrawBackground ที่เลิกใช้งานแล้วออก API เปลี่ยนไปใช้ส่วนขยาย DrawBackground API ใน Modifier เปลี่ยนโครงสร้างภายในโค้ดแล้ว สี พู่กัน และระบายสี การวาดพื้นหลัง การใช้งานเพื่อลดเส้นทางโค้ดด้วยเช่นกัน เป็นข้อกำหนดในการลบตัวปรับแต่งให้สร้างขึ้น เพื่อเป็นส่วนหนึ่งของการเขียน (I0343a)
  • อัปเดตระดับสูงขึ้นแล้ว เขียน API ที่เปิดเผย Canvas ต่อ แสดง CanvasScope แทน การดำเนินการนี้จะนำ ความต้องการของผู้บริโภคในการรักษา เป็นเจ้าของออบเจ็กต์ Paint สำหรับผู้บริโภคที่ ยังคงต้องการเข้าถึง Canvas ก็สามารถใช้ส่วนขยาย DrawCanvas ที่ให้ผลลัพธ์ Callback ไปยังปัญหา ให้วาดคำสั่งด้วยฟังก์ชัน Canvas (I80afd)
  • Horizontalscroller และ Verticalscroller ไม่คืนค่าตำแหน่งการเลื่อนโดยใช้สถานะอินสแตนซ์ที่บันทึกไว้ (Ia0fae, b/155075048)
  • นำ FocusManagerAmbient ออกแล้ว ใช้ FocusModifier.requestFocus เพื่อให้ได้โฟกัส (Ic4826)
  • ระบบได้นำเลย์เอาต์ตารางออกชั่วคราวจนกว่าเราจะทำให้ใช้งานได้อีกครั้งด้วย API ที่มีการรีเฟรช (Id88a7)
  • สร้าง CanvasScope API ที่รวม วัตถุ Canvas เพื่อแสดงเป็นแบบไม่เก็บสถานะและมีการประกาศ วาดเขียน API มีการเปลี่ยนรูปแบบ ภายในขอบเขตตัวรับและขนาดของข้อมูล ยังกำหนดขอบเขตไว้เป็นขอบเขตที่เกี่ยวข้องด้วย ผู้บริโภคไม่จำเป็นต้องรักษาสถานะ Paint ของตนเองไว้ สำหรับการกำหนดค่าการดำเนินการวาด

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

  • นำ ColoredRect ออกแล้ว กล่องผู้ใช้ที่มีตัวปรับแต่งDrawBackground แทน (I983c7, b/152753731)

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

  • ตอนนี้คุณสามารถซ่อน/แสดงแป้นพิมพ์ของซอฟต์แวร์ได้โดยใช้ SoftwareKeyboardController ที่นำส่งโดย onTextInputStarted Callback (I8dc44, b/151860051)

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

  • เพิ่มพารามิเตอร์ที่ใช้กันโดยทั่วไปลงใน Text() หากคุณกำลังสร้างรูปแบบข้อความในเครื่องเพื่อส่งผ่านพารามิเตอร์เหล่านี้จำนวนไม่มาก เช่น Text(style = TextStyle(textAlign = TextAlign.Center)) ตอนนี้คุณสามารถระบุพารามิเตอร์ได้โดยตรง: Text(textAlign = TextAlign.Center) (I82768)

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

  • อัปเดตฟิลด์ข้อความ - ขนาดแนวนอนจะใช้พื้นที่ว่างทั้งหมดที่ให้ไว้ (Ib08df, b/154638552)

  • เพิ่ม InteractionState และการโต้ตอบ ทำให้สร้างคอมโพเนนต์ที่ตอบสนองต่อการเปลี่ยนแปลงสถานะ UI เช่น การกดแล้วลาก (Icfe25, b/152525426) ได้ง่ายขึ้น

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

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

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

  • เปลี่ยนชื่อ 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 (I45f09, b/152842521)

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

  • เพิ่มพารามิเตอร์สีในข้อความ ทำให้สามารถลบล้างสีของรูปแบบข้อความได้โดยไม่ต้องผสานกับสไตล์ที่มีให้ในธีมด้วยตนเอง (I41a66)

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

    • สร้างขอบเขตตัวรับสำหรับDraw() ContentDrawScope
    • นำพารามิเตอร์ทั้งหมดในDraw() ออก
    • DrawScope มีอินเทอร์เฟซเดียวกันกับ CanvasScope เดิม
    • ContentDrawScope มีเมธอดDrawContent() (Ibaced, b/152919067)
  • เลิกใช้งาน ColoredRect แล้ว โปรดใช้ Box(Modifier.preferredSize(width, height).drawBackground(color)) แทน (I499fa, b/152753731)

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

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

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

  • ย้าย Text จาก androidx.ui.core ไปยังแพ็กเกจ androidx.ui.foundation (I87ce5)

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

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

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

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

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

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

  • เปลี่ยนชื่อรูปภาพเป็น ImageAsset เพื่อให้แยกความแตกต่างได้ดีขึ้น ความแตกต่างระหว่างข้อมูลภาพและ รูปภาพประกอบที่ใช้เพื่อเข้าร่วมเลย์เอาต์และการวาดได้ เนื้อหา

    สร้างวิธีการส่วนขยายบน android.graphics.Bitmap Bitmap.asImageAsset() เพื่อสร้างอินสแตนซ์ ImageAsset มีประโยชน์สำหรับการรวม Android ดั้งเดิมเข้าด้วยกัน การพัฒนาแอปพลิเคชันด้วยเฟรมเวิร์กการเขียน (Id5bbd)

  • นํา Composable ของ DrawImage ออกแล้ว ใช้ ImagePainter เพื่อวาดภาพบนเลย์เอาต์ที่มีอยู่ หรือใช้ SimpleImage เพื่อแนะนำรูปภาพที่กินพื้นที่ (I595e1, b/149827027)

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

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

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

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

  • เพิ่มคอมโพเนนต์ที่เลื่อนได้ ซึ่งช่วยให้สร้างตัวเลื่อน/รายการที่กำหนดเองได้ (I5fd37)

  • เปลี่ยนชื่อพื้นหลังเป็น DrawBackground และทำให้ตั้งให้จดจำเป็นค่าเริ่มต้น (Ia0bd3)

  • เพิ่มระยะห่างจากขอบ เส้นขอบ รูปร่าง และพารามิเตอร์พื้นหลังลงใน Box (I05027, b/148147281)

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

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

  • เพิ่มคอมโพเนนต์ Box สำหรับการรวมเลย์เอาต์และการสร้างฟังก์ชันทั่วไปเข้าด้วยกัน (I6e2a7)

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

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

  • Modifier.tag เปลี่ยนชื่อเป็น Modifier.layoutId เพื่อหลีกเลี่ยงความสับสนกับ Modifier.testTag (I995f0)

  • พารามิเตอร์เปอร์เซ็นต์เมื่อสร้างหลักเกณฑ์ ConstraintLayout ถูกเปลี่ยนชื่อเป็นเศษส่วน (Ida2db)

  • เพิ่มการรองรับระยะขอบของอุปสรรค ConstraintLayout (I47ffe)

  • แก้ไขการรองรับ RTL ใน ConstraintLayout เพิ่ม API ที่ไม่รู้จักของ RTL (I3b1c7)

  • มีการเพิ่ม DSL ใหม่สำหรับ ConstraintLayout โปรดดูรายละเอียดเพิ่มเติมในตัวอย่าง (Icaa9a)

  • เพิ่มคำอธิบายประกอบ @ExperimentalLayout แล้ว ตอนนี้ ConstraintLayout, FlowRow และ FlowColumn ติดแท็กด้วยเพื่อทำเครื่องหมายว่า API กำลังจะมีการเปลี่ยนแปลง (I412a8)

  • เพิ่ม Modifier.padding(InnerPadding) แล้ว (I94985, b/157133803)

  • นำ RowAlign, ColumnAlign ในแถวและคอลัมน์ที่เลิกใช้งานแล้วออก (If60d4, b/155858731)

  • นำ LayoutTag() ที่เลิกใช้งานแล้วออก โปรดใช้ Modifier.tag() แทน นำ Modifier.matchParent() ที่เลิกใช้งานแล้วออก โปรดใช้ Modifier.matchParentSize() แทน (If8044)

  • เพิ่มตัวแก้ไขเลย์เอาต์ออฟเซ็ตPx ซึ่งสามารถใช้เพื่อกำหนดออฟเซ็ต (แบบไดนามิก) ในหน่วยพิกเซล (I5af57)

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

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

  • นำคอนเทนเนอร์ออกแล้ว ใช้ Box แทน (Ibbc2b, b/151407926)

  • นำตัวแก้ไขความกว้าง/ความสูง/ขนาดของเลย์เอาต์ที่เลิกใช้งานแล้วออก (Ib0bc1)

  • เพิ่มค่าพารามิเตอร์เริ่มต้นสำหรับตัวปรับแต่งออฟเซ็ต (I37f06)

  • เพิ่มตัวแก้ไขระยะห่างจากขอบแบบสมมาตรแล้ว (I39840)

  • นำตัวปรับแต่ง LayoutAspectRatio ที่เลิกใช้งานแล้วออก (I65a74)

  • นำตัวปรับแต่ง LayoutAlign ที่เลิกใช้งานแล้วออก (I10877)

  • แก้ไขข้อบกพร่องของตัวปรับความกว้างและความสูงที่ทำให้วัดเลย์เอาต์ที่รวมกันโดยไม่มีข้อจำกัดของแกนด้านตรงข้าม (I210b8, b/154797971)

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

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

  • ทำให้การปรับความสอดคล้องเป็นค่าที่กำหนดเองได้ เพิ่มการจัดแนว 1D แล้ว (Ia0c05)

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

  • alignToSiblings ยอมรับ "วัดแล้ว" แทนที่จะเป็น "ตำแหน่งได้" (I5788D)

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

  • เพิ่มการสนับสนุนสำหรับการปรับแต่งขนาดย่อยของ ConstraintLayout (Idb1a5)

  • นำ Composable ของ Wrap และ Center ที่เลิกใช้งานแล้วออก (I29e23)

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

  • ขณะนี้สมาชิก RowScope และ ColumnScope สามารถเข้าถึงได้นอกแถวและคอลัมน์ (I3a641)

  • คอนเทนเนอร์เลิกใช้งานแล้ว โปรดใช้ Box แทน (I675ce, b/151407926)

  • เพิ่มตัวแก้ไข LayoutOffset เพื่อชดเชยตำแหน่งเลย์เอาต์ (I0b8a3)

  • การสนับสนุนเบื้องต้นสำหรับ Rtl ในเลย์เอาต์ของการเขียน (Ia5519)

  • อัปเดต LayoutAlign เพื่อไม่ให้ครอบคลุมพื้นที่ที่มีอยู่อีกต่อไป (I2b14f)

  • นำ AspectRatio ที่ประกอบกันได้ออกเพื่อใช้แป้นกดร่วม ลบแล้ว FlexColumn, FlexRow Composables และตัวปรับแต่งช่องว่าง (Iec8a7) ล้าสมัย

  • นำตัวแก้ไข LayoutInflexible สำหรับแถวและคอลัมน์ออก (I0d820)

  • ใช้แฮนเดิลการเลือกการลากเพื่อเปลี่ยนการเลือกสำหรับ TextField (I27032)

  • ใช้ LongPressAndDrag สำหรับการเลือกฟิลด์ข้อความ (I17919)

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

  • FocusModifier เลิกใช้งานไปแล้วเพื่อใช้ Modifier.Focus, Modifier.focusRequester, Modifier.FocusObserver แทน FocusState และ FocusDescriptionState เลิกใช้งานแล้วเพื่อใช้ FocusState2 (I46919, b/160822875, b/160922136)
  • runOnIdleCompose เปลี่ยนชื่อเป็น runOnIdle (I83607)
  • มีการเปลี่ยนชื่อ API การทดสอบหลายรายการเพื่อให้ใช้งานง่ายขึ้น ทั้งหมด searchXYZ API ได้เปลี่ยนชื่อเป็น onNodeXYZ เปลี่ยนชื่อ API ของ doXYZ ทั้งหมดเป็น OperatXYZ (I7F164)
  • นำ Modifier.ripple ที่เลิกใช้งานแล้วออก ตอนนี้ฟีเจอร์ "คลิกได้" จะใช้ระลอกคลื่นเป็นตัวบ่งชี้เริ่มต้น (หากคุณตั้งค่า MaterialTheme {} ไว้ในแอปพลิเคชัน) ดังนั้นในกรณีส่วนใหญ่ คุณสามารถใช้สัญลักษณ์แบบคลิกและรับสัญญาณระลอกคลื่นได้ฟรี หากคุณต้องการปรับแต่งพารามิเตอร์สี / ขนาด / ที่มีขอบเขตสำหรับ RippleIndication คุณสามารถสร้าง RippleIndication ด้วยตนเองและส่งไปยังคลิกเพื่อใช้เป็นพารามิเตอร์ตัวบ่งชี้ได้ (I663b2, b/155375067)
  • นำ API การทดสอบขนาดที่ล้าสมัยออก (Iba0a0)
  • Made LayoutNode รุ่นทดลอง (I4f2e9)
  • การล็อกการวางแนวแบบเลื่อนเวอร์ชัน 1 คือ ที่ใช้งานใน Compose ได้ (I1ce7a, b/150289741)
  • ป๊อปอัป กล่องโต้ตอบ และเมนูกำลังรับค่า MaterialTheme ตามบริบท (Ia3665, b/156527485)
  • นำพารามิเตอร์ทิศทางของเลย์เอาต์ออกจากบล็อกการวัดของฟังก์ชัน Layout() อย่างไรก็ตาม ทิศทางของเลย์เอาต์จะมีอยู่ใน Callback ผ่านออบเจ็กต์ Measure Scope (Ic7d9d)
  • เพิ่ม AbsoluteAhandlingment - ช่วยให้จัดการเด็กในแถวได้โดยไม่ต้องมิเรอร์ใน RTL (I3a1df) โดยอัตโนมัติ
  • เลิกใช้งานคำอธิบายประกอบ @ที่ไม่ได้ติดตามแล้ว แทนที่ด้วย @ComposableContract(tracked=false) (Id211e)
  • ก่อนการเปลี่ยนแปลงนี้ ปลั๊กอินคอมไพเลอร์ของการเขียนจะสกัดกั้นการเรียกไปยังตัวสร้างภายในฟังก์ชัน @Composable หากมี (I5205a, b/158123804)
  • เพิ่ม viewModel() Composable ซึ่งอนุญาตให้สร้างหรือสร้าง ViewModel แล้วคล้ายกับวิธีการทำงานในกิจกรรมหรือ Fragment (I5fdd1)
  • คลาสรัศมีแบบปรับโครงสร้างใหม่ให้เป็น ในบรรทัด นำการสร้างโฆษณาที่แสดงร่วมออกแล้ว เมธอดที่ใช้กับตัวสร้างฟังก์ชัน พร้อมด้วยพารามิเตอร์เริ่มต้นให้มีรัศมี ตามแกน y ให้ตรงกับค่าของ พารามิเตอร์รัศมีแกน x

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

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

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

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

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

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

  • ไม่จำเป็นต้องทำท่าทางสัมผัสบางส่วนผ่านอีกต่อไป GestureToken (Id7ae5)

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

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

  • เปลี่ยนชื่อ AnnotatedString.Builder.addAnnotationString เป็น addStringAnnotation (I5059e)

  • อัปเดต Alignment API และเพิ่มการรองรับการปรับแนวแบบสัมบูรณ์ (ซึ่งไม่มิเรอร์อัตโนมัติในบริบท Rtl) (I38cd3)

  • องค์ประกอบย่อยของเลย์เอาต์และ LayoutModifier วัดได้ด้วยทิศทางของเลย์เอาต์ที่แตกต่างกัน (Ibd731)

  • แนะนำสี่เหลี่ยมผืนผ้าเพิ่มเติม พารามิเตอร์ไปยัง ImagePainter เพื่อรองรับ วาดส่วนย่อยของ ImageAsset ที่เกี่ยวข้อง (I0ea9e)

  • แก้ไขข้อขัดข้องใน AdapterList เมื่อนำรายการออก (Ic64b0, b/153195921)

  • เราได้เปลี่ยนวิธีวัดเลย์เอาต์แรกที่คุณใส่ไว้ในบล็อก activity.setContent { } ก่อนหน้านี้ระบบบังคับให้แสดงทั้งหน้าจอกิจกรรมทั้งหมด และตอนนี้ก็จะทํางานเสมือนว่าคุณวางเลย์เอาต์ไว้ในกลุ่ม โดยอาจมีขนาดเล็กกว่าหน้าจอและจะอยู่ในหน้าจอซ้ายบน หากต้องการใช้ลักษณะการทำงานเดิม คุณสามารถใช้ Modifier.fillMaxSize() กับเลย์เอาต์ได้ (Ie88a7, b/153453714)

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

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

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

  • runOnIdleCompose และ runOnUiThread เป็นฟังก์ชันส่วนกลางแล้ว แทนเมธอดใน ComposeTestRule (Icbe8f)

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

  • DrawLayerModifier และDrawLayer() สร้างคลิปToBounds ตามค่าเริ่มต้นแล้ว และClipToOutline เป็น "เท็จ" (I0eb8b, b/152810850)

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

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

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

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

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

  • แทนที่ฟังก์ชัน Composable ของ DrawShadow ด้วย DrawShadow() แล้ว แป้นกดร่วม ขณะนี้เงาถูกวาดเป็นส่วนหนึ่งของ LayerModifier (I0317a)

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

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

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

  • เปลี่ยนชื่อ Painter.toModifier เป็น Painter.asModifier เนื่องจากตัวปรับแต่งที่สร้างขึ้นใหม่มีการอ้างอิงจาก Painter เดิมซึ่งแชร์ในอินสแตนซ์ Modifier หลายรายการได้ (I7195b)

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

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

  • นำคลาส ValueHolder ออกแล้ว ปรับโครงสร้างคลาส AnimatedValue, คลาส AnimatedFloat เป็น ทำให้ฟิลด์ค่าภาพเคลื่อนไหวมีลักษณะเป็นนามธรรมเพื่อให้คลาสย่อยดูการอัปเดตค่าได้

    • เพิ่มคลาสโมเดลสำหรับ AnimatedValue, AnimatedFloat ฯลฯ
    • เพิ่ม @Composable API ชุดใหม่เพื่อให้ภาพเคลื่อนไหวระหว่างค่าต่างๆ เคลื่อนไหว
    • (I79530)
  • การเปลี่ยนแปลงที่ส่งผลกับ Environments API โปรดดูรายละเอียดในบันทึกและเอกสาร Ambient<T> (I4c7ee, b/143769776)

  • ขณะนี้ตำแหน่ง Int ของเส้นจัดตำแหน่งที่แสดงผลจาก Placeable#get(AlignmentLine) ไม่เป็นค่าว่างแล้ว หากบรรทัดการจัดเรียงที่ค้นหาขาดหายไป ระบบจะแสดงผล AlignmentLine.Unidentifier (I896c5, b/158134875)

  • แก้ไขข้อบกพร่อง ConstraintLayout ที่ทำให้เกิดข้อขัดข้องในการจัดองค์ประกอบใหม่ (Ibee5a, b/158164341)

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

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

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

  • เลิกใช้งาน LayoutDirectionAmbient แล้ว หากต้องการอ่านทิศทางการจัดวางที่กำหนดโดยภาษา ให้ใช้ localeLayoutDirection ใน ConfigurationAmbient (I851b1)

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

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

  • เพิ่ม OnPositionedModifier และ OnChildPositionedModifier เพื่อแทนที่ OnPositioned และ OnChildPositioned Composable (I2ec8f)

  • ไม่อนุญาตระยะห่างจากขอบที่ลบใน LayoutPadding ควรใช้ LayoutOffset แทนสำหรับออฟเซ็ตตำแหน่งเชิงลบ (Ifb5b1)

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

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

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

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

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

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

  • เพิ่ม TextDirection.Content (I48f36)

  • ปรับเมนูแถบเครื่องมือเพื่อแสดงการคัดลอก ตัด วาง อย่างถูกต้อง (Id3955)

  • เพิ่ม FloodToolbar สำหรับการเลือกฟิลด์ข้อความ (Ie8b07)

  • TextDirectionAlgorithm เปลี่ยนชื่อเป็น TextDirection (I75ce8)

  • TextDirection เปลี่ยนชื่อเป็น ResolvedTextDirection (I3ff38)

  • เพิ่ม HapticFeedback ลงในการเลือก TextField (I58050)

  • เพิ่มวิธีการคัดลอก ตัด และวางลงในการเลือกฟิลด์ข้อความ (Idb70b)

  • ลบ TestTag และความหมายแล้ว ใช้ Modifier.testTag และ Modifier.semantics แทน (I15ff0, b/158841414)

  • เปลี่ยนชื่อแพ็กเกจสำหรับ Locale และ LocaleList จาก androidx.ui.text ไปยัง androidx.ui.intl (I8132c)

  • การเปลี่ยนแปลง API: AnnotatedString(builder: Builder) เปลี่ยนชื่อเป็น annotatedString(builder: Builder) (Ia6377)

  • การเปลี่ยนแปลง API: AnnotatedString.Item เปลี่ยนชื่อเป็น AnnotatedString.Range (I2d44d)

  • เพิ่มแถบเครื่องมือสำหรับการดำเนินการที่เกี่ยวข้องกับข้อความ (I49d53)

  • LifecycleOwnerAmbient ใหม่พร้อมใช้งานแล้ว ขณะนี้กิจกรรมที่คุณใช้กับ Compose UI ควรขยาย androidx.activity.ComponentActivity (หรือ AppCompatActivity) เลิกใช้งาน setContent บน android.app.Activity แล้ว (Idb25a, b/153141084)

  • ชื่อแพ็กเกจ ui-android-text (androidx.text) ถูกแทนที่ด้วย androidx.ui.text.platform เพื่อให้สอดคล้องกับนโยบาย androidx (I42711)