มุมมองรีไซเคิล

แสดงชุดข้อมูลขนาดใหญ่ใน UI พร้อมกับลดการใช้หน่วยความจำ

ตารางนี้แสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.recyclerview

อาร์ติแฟกต์ รุ่นที่เสถียร ตัวเลือกถอนการอ้างสิทธิ์ รุ่นเบต้า รุ่นอัลฟ่า
Recyclerview 1.3.2 - 1.4.0-beta01 -
การเลือกมุมมองรีไซเคิล 1.1.0 - - 1.2.0-alpha01
ไลบรารีนี้ได้รับการอัปเดตล่าสุดเมื่อวันที่ 21 สิงหาคม 2024

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

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

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

Groovy

dependencies {
    implementation "androidx.recyclerview:recyclerview:1.3.2"
    // For control over item selection of both touch and mouse driven selection
    implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
}

Kotlin

dependencies {
    implementation("androidx.recyclerview:recyclerview:1.3.2")
    // For control over item selection of both touch and mouse driven selection
    implementation("androidx.recyclerview:recyclerview-selection:1.1.0")
}

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

ความคิดเห็น

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

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

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

เวอร์ชัน 1.4

เวอร์ชัน 1.4.0-beta01

21 สิงหาคม 2024

เผยแพร่ androidx.recyclerview:recyclerview:1.4.0-beta01 แล้ว แต่ไม่มีการเปลี่ยนแปลงตั้งแต่ 1.4.0-alpha02 เวอร์ชัน 1.4.0-beta01 มีคอมมิตเหล่านี้

หมายเหตุความเข้ากันได้: เวอร์ชันนี้จะคอมไพล์กับ API 35 (Vanilla Ice Cream) SDK ขึ้นไปเท่านั้น หากเห็นคำเตือน AGP (ปลั๊กอิน Android Gradle) เมื่ออัปเกรด คุณสามารถระงับคำเตือนเหล่านั้นได้

เวอร์ชัน 1.4.0-alpha02

7 สิงหาคม 2024

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

หมายเหตุความเข้ากันได้: เวอร์ชันนี้จะคอมไพล์กับ API 35 (Vanilla Ice Cream) SDK ขึ้นไปเท่านั้น หากเห็นคำเตือน AGP (ปลั๊กอิน Android Gradle) เมื่ออัปเกรด คุณสามารถระงับคำเตือนเหล่านั้นได้

ฟีเจอร์ใหม่

  • การรองรับอัตราการรีเฟรชที่ตัวแปร: ตอนนี้ RecyclerView จะเรียกใช้ setFrameContentVelocity เมื่อเลื่อนผ่าน Overscroller (เช่น การสะบัดนิ้วหรือการเลื่อนที่ราบรื่น) (I8f8a4)

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

  • API ViewCompat.LAYOUT_DIRECTION_ ที่เลิกใช้งานแล้ว (I51710, b/317055535)
  • เพิ่ม API ของ RecyclerView$LayoutManager#isLayoutReversed (I4970e)

การเปลี่ยนแปลงอื่นๆ

  • นำการระบุการเข้าถึง API ของแพลตฟอร์มใหม่ออกด้วยตนเอง เนื่องจากการดำเนินการนี้จะเกิดขึ้นโดยอัตโนมัติผ่านการสร้างแบบจำลอง API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับบิลด์ทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ไคลเอ็นต์ที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 หรือใหม่กว่า ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (Ia60e0, b/345472586)
  • เพิ่มประเภทมุมมองรายการใน RecyclerView เชื่อมโยง/สร้างส่วนการติดตาม และติดป้ายกำกับการดึงข้อมูลล่วงหน้าของ RV เป็น "บังคับ - ต้องเฟรมถัดไป" หากมีการคาดว่าจะใช้งานภายในเฟรมถัดไป และควรเริ่มทำงานโดยเร็วที่สุด (I8ec3e, b/309523615)
  • อัปเดต compileSdk เป็น 35 (ดูรายละเอียดใน "หมายเหตุความเข้ากันได้" ด้านบน) 5dc41be

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

  • GestureDetectorCompat เลิกใช้งานแล้วเนื่องจาก GestureDetector พร้อมให้ใช้งานใน minSdk (Icc4cd)

เวอร์ชัน 1.4.0-alpha01

18 ตุลาคม 2023

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

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

  • เพิ่ม API ของ RecyclerView$LayoutManager#isLayoutReversed (I4970e)

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

  • แก้ไขข้อบกพร่องที่ทำให้เกิดการขัดข้องเป็นระยะๆ ระหว่างการทำภาพเคลื่อนไหว (I42f22b) (รวมอยู่ในเวอร์ชัน 1.3.2 ด้วย)

เวอร์ชัน 1.3.2

เวอร์ชัน 1.3.2

18 ตุลาคม 2023

ปล่อย androidx.recyclerview:recyclerview:1.3.2 แล้ว เวอร์ชัน 1.3.2 มีคอมมิตเหล่านี้

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

  • แก้ไขข้อบกพร่องที่ทำให้เกิดการขัดข้องเป็นครั้งคราวระหว่างภาพเคลื่อนไหว (I42f22b)

เวอร์ชัน 1.3.1

เวอร์ชัน 1.3.1

26 กรกฎาคม 2023

เผยแพร่ androidx.recyclerview:recyclerview:1.3.1 แล้ว แต่ไม่มีการเปลี่ยนแปลงตั้งแต่ 1.3.1-rc01 เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้

ดูบันทึกประจำรุ่นของรุ่นก่อนหน้าได้ที่หน้าบันทึกประจำรุ่น

เวอร์ชัน 1.3.1-rc01

24 พฤษภาคม 2023

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

ผู้ใช้ ViewPager2 ต้องอัปเดตเป็น 1.1.0-beta02 เป็นอย่างน้อย เมื่ออัปเดตเป็น RecyclerView เวอร์ชันนี้เพื่อหลีกเลี่ยงข้อขัดข้อง

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

  • เพิ่มเมธอด setDebugAssertionsEnabled และ setVerboseLoggingEnabled ใหม่ที่จะช่วยแก้ไขข้อบกพร่องที่เกี่ยวข้องกับ RecyclerView ในแอปได้ (I514b9)

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

  • แก้ไขข้อขัดข้องสำหรับผู้ใช้ ViewTreeLifecycleOwner (รวมถึง ComposeView) ด้วยการแนบมุมมองที่ถอดออกชั่วคราวอีกครั้งเมื่อเรียกใช้ onBind (I7244f2c, b/265347515, b/283288295)

เวอร์ชัน 1.3.0

เวอร์ชัน 1.3.0

8 มีนาคม 2023

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

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

  • รุ่นนี้มีการปรับปรุงประสิทธิภาพ (ก่อนหน้านี้รวมอยู่ใน 1.3.0-alpha02 และ 1.3.0-beta01) เมื่อใช้กับ Jetpack Compose หากคุณใช้การเขียน 1.2.0-beta02 ขึ้นไปและใช้ MyComposeAdapter และ ViewCompositionStrategy ของ DisposeOnViewTreeLifecycleDestroyed ที่อธิบายไว้ในหลักเกณฑ์การทำงานร่วมกันก่อนหน้านี้ คุณควรนำข้อความเหล่านี้ออก เนื่องจากไม่ใช่การปรับปรุงจากสถานะเริ่มต้นอีกต่อไป
  • เพิ่มเมธอด ConcatAdapter.getWrappedAdapterAndPosition ใหม่เพื่อให้สามารถเรียกข้อมูลอะแดปเตอร์ที่รวมไว้ในกรณีที่คุณไม่มี ViewHolder เช่น SpanSizeLookup (I2bd4c, b/191543920)

เวอร์ชัน 1.3.0-rc01

21 กันยายน 2022

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

  • ไม่มีการเปลี่ยนแปลงตั้งแต่รุ่นล่าสุด

เวอร์ชัน 1.3.0-beta02

10 สิงหาคม 2022

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

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

  • นำคำอธิบายประกอบที่เป็น Nullability ที่เพิ่มไว้ใน 1.3.0-beta01 ออกเนื่องจากมีการแสดงการเปลี่ยนแปลงสำคัญที่ใช้ร่วมกับแหล่งที่มาไม่ได้สำหรับผู้ใช้ Kotlin (I7a258,I1557e6,I8db76)

เวอร์ชัน 1.3.0-beta01

29 มิถุนายน 2022

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

ฟีเจอร์ใหม่

  • รุ่นเบต้านี้มีการปรับปรุงประสิทธิภาพ (ก่อนหน้านี้รวมอยู่ใน 1.3.0-alpha02 เมื่อใช้กับ Jetpack Compose หากคุณใช้การเขียน 1.2.0-beta02 ขึ้นไปและใช้ MyComposeAdapter และ ViewCompositionStrategy ของ DisposeOnViewTreeLifecycleDestroyed ที่อธิบายไว้ในหลักเกณฑ์การทำงานร่วมกันก่อนหน้านี้ คุณควรนำข้อความเหล่านี้ออก เนื่องจากไม่ใช่การปรับปรุงจากสถานะเริ่มต้นอีกต่อไป

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

  • เพิ่มคำอธิบายประกอบความสามารถในการเว้นว่างสำหรับเมธอดและพารามิเตอร์จำนวนมากเพื่อปรับปรุงคำเตือนของ Lint สำหรับผู้ใช้ Java และความสามารถในการทำงานร่วมกันสำหรับผู้ใช้ Kotlin นี่อาจเป็นการเปลี่ยนแปลงที่ทำลายแหล่งที่มาสำหรับผู้ใช้ Kotlin บางราย และส่งผลให้เกิดคำเตือน/ข้อผิดพลาดเพิ่มเติมสำหรับผู้ใช้ Java บางราย (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

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

  • ตรวจสอบว่าบริการ a11y พิจารณาตารางกริดเป็นตารางกริดโดยตั้งชื่อคลาสข้อมูลโหนด a11y (I12812)

เวอร์ชัน 1.3.0-alpha02

6 เมษายน 2022

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

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

  • เพิ่มเมธอด BuildCompat แบบทดลองสำหรับ SDK ในอนาคต (Iafd82, b/207528937)
  • เพิ่มเมธอด ConcatAdapter.getWrappedAdapterAndPosition ใหม่เพื่อให้สามารถเรียกข้อมูลอะแดปเตอร์ที่รวมไว้ในกรณีที่คุณไม่มี ViewHolder เช่น SpanSizeLookup (I2bd4c, b/191543920)

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

  • การผสานรวมกับไลบรารี AndroidX PoolingContainer ใหม่ (Ib89d2)
  • ปรับระยะการเลื่อนสำหรับการดำเนินการช่วยเหลือพิเศษ (If74ae)

เวอร์ชัน 1.3.0-alpha01

15 กันยายน 2021

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

ฟีเจอร์ใหม่

  • เพิ่มการรองรับ RecyclerView ที่เลื่อนไปจนสุดแบบยืดได้ (Iab877)

RecyclerView-Selection เวอร์ชัน 1.2.0

เวอร์ชัน 1.2.0-alpha01

5 พฤษภาคม 2021

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

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

  • แก้ไขปัญหาที่การแมปคีย์/ตำแหน่งใน KeyProvider หายไปในขณะที่ยังไม่ได้นำรายการกลับมาใช้ใหม่ (b/145767095)

เวอร์ชัน 1.2.1

เวอร์ชัน 1.2.1

2 มิถุนายน 2021

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

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

  • ตอนนี้ ViewHolder ภายใน ConcatAdapter จะแสดงตำแหน่งอะแดปเตอร์ที่ถูกต้องเมื่อมีการค้นหาใน Callback onViewRecycled (b/187339376)

เวอร์ชัน 1.2.0

เวอร์ชัน 1.2.0

7 เมษายน 2021

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

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

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

  • จากการเปลี่ยนแปลงนี้ เราจะเลิกใช้งาน ViewHolder.getAdapterPosition และแทนที่ด้วยวิธีการใหม่ 2 วิธี ดังนี้
    • getBindingAdapterPosition แสดงผลตำแหน่งที่สัมพันธ์กับอะแดปเตอร์ที่เชื่อมโยงกับรายการนั้น
    • getAbsoluteAdapterPosition แสดงผลตำแหน่งที่สัมพันธ์กับ RecyclerView ทั้งหมด

การกู้คืนสถานะ Lazy Loading: ตอนนี้อะแดปเตอร์ RecyclerView สามารถชะลอการคืนค่าสถานะได้จนกว่าจะโหลดเนื้อหาแล้ว ดูรายละเอียดเพิ่มเติมในเอกสารประกอบ

เวอร์ชัน 1.2.0-rc01

24 มีนาคม 2021

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

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

  • ตอนนี้ ConcatAdapter.Config.Builder มีค่าเริ่มต้นที่ตรงกับ Config.DEFAULT (b/157169835)

เวอร์ชัน 1.2.0-beta02

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

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

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

  • แก้ปัญหาที่ระยะห่างจากขอบด้านบนทำให้การเรืองแสงของการเลื่อนด้านขวาเลื่อนไปขึ้นด้านบนไปยังบริเวณที่มีระยะห่างจากขอบแทนที่จะเลื่อนลงด้านล่างเพื่อให้อยู่ในแนวเดียวกับระยะห่างจากขอบ (I6b61d, b/118399122)

เวอร์ชัน 1.2.0-beta01

2 ธันวาคม 2020

ระบบเผยแพร่ androidx.recyclerview:recyclerview:1.2.0-beta01 โดยไม่มีการเปลี่ยนแปลงตั้งแต่วันที่ 1.2.0-alpha06 เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.2.0-alpha06

1 ตุลาคม 2020

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

ฟีเจอร์ใหม่

  • เพิ่มการสนับสนุนสำหรับการเพิ่ม RecyclerListener หลายรายการ (I70ad8, b/145767095)

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

  • RecyclerView.setRecyclerListener(RecyclerListener) ที่เลิกใช้งานแล้ว (I70ad8, b/145767095)

เวอร์ชัน 1.2.0-alpha05

22 กรกฎาคม 2020

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

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

  • แก้ปัญหาที่ RecyclerView มีเพียง 1 รายการและมีการโฟกัสอยู่ การโฟกัสไปข้างหน้าหรือข้างหลังจะไม่ย้ายโฟกัส (6f36b3)
  • แก้ไข ArrayIndexOutOfBoundsException ใน StaggeredGridLayoutManager (49b601, b/122303625, b/74877618, b/160193663, b/37086625)
  • แก้ไขข้อบกพร่องในการวัดซึ่งในสถานการณ์บางอย่าง RecyclerView ไม่แสดงว่าเป็นเด็กอย่างไม่เหมาะสม (89040c, b/138734786)

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

เวอร์ชัน 1.2.0-alpha04

24 มิถุนายน 2020

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

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

  • MergeAdapter ได้เปลี่ยนชื่อเป็น ConcatAdapter เพื่อหลีกเลี่ยงความสับสนกับลักษณะการผสานรวมข้อมูลที่แตกต่างกัน (c0540c, b/158019211)

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

  • การปรับปรุงการเลื่อนอัตโนมัติเมื่อนำรายการที่มองเห็นได้ทั้งหมดออก (fe8670, b/154124815)

เวอร์ชัน 1.2.0-alpha03

29 เมษายน 2020

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

ฟีเจอร์ใหม่

  • ตอนนี้ RecyclerView มีเมธอด nestedScrollBy ที่อนุญาตการเลื่อนแบบเป็นโปรแกรมที่ทำงานร่วมกับการเลื่อนที่ซ้อนกัน (Ibaa58)

เวอร์ชัน 1.2.0-alpha02

1 เมษายน 2020

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

RecyclerView เวอร์ชันนี้และสูงกว่าไม่สามารถใช้งานร่วมกับ ViewPager2 เวอร์ชันต่ำกว่าได้ หากคุณกำลังใช้ androidx.viewpager2:viewpager2:1.0.0 หรือต่ำกว่า โปรดอัปเดตเป็น androidx.viewpager2:viewpager2:1.1.0-alpha01

ฟีเจอร์ใหม่

  • MergeAdapter

    • MergeAdapter: อะแดปเตอร์ RecyclerView ใหม่ที่รวมอะแดปเตอร์หลายรายการเข้าด้วยกันได้
    MyAdapter adapter1 = ...;
    AnotherAdapter adapter2 = ...;
    MergeAdapter merged = new MergeAdapter(adapter1, adapter2);
    recyclerView.setAdapter(mergedAdapter);
    

    สำหรับตัวอย่างข้างต้น MergeAdapter จะแสดงรายการจาก adapter1 ตามด้วย adapter2

  • การคืนค่าสถานะแบบ Lazy Loading RecyclerView.Adapter:

    • เพิ่ม API ใหม่ลงในคลาส RecyclerView.Adapter ซึ่งช่วยให้อะแดปเตอร์ควบคุมว่าควรคืนค่าสถานะเลย์เอาต์เมื่อใด

    • ตัวอย่างเช่น คุณสามารถโทรหาหมายเลขต่อไปนี้

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    เพื่อทำให้ RecyclerView รอจนกว่าอะแดปเตอร์ไม่ว่างเปล่าก่อนที่จะคืนค่าตำแหน่งการเลื่อน

  • ระบบจะไม่สร้างข้อมูลคอลเล็กชันและ CollectionItemInfo ตามค่าเริ่มต้นอีกต่อไป

    • หากต้องการให้บริการช่วยเหลือพิเศษ (ตัวอย่างเช่น TalkBack) สามารถระบุจำนวนและดัชนีรายการให้ผู้ใช้ได้ทราบต่อไป คุณจะต้องป้อนข้อมูลใน CollectionInfo และ CollectionItemInfo ด้วยตัวเอง

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

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

  • ตอนนี้ RecyclerView หลีกเลี่ยงการตรึงบน View นอกวิวพอร์ตเมื่อมีการเปลี่ยนแปลงขนาดวิวพอร์ต
  • แก้ไขข้อบกพร่องใน DiffUtil ที่อาจคำนวณค่าต่างที่ผิดเมื่อมีการทำซ้ำรายการต้นฉบับในรายการแรกหลายครั้งในรายการที่ 2 (b/123376278)

เวอร์ชัน 1.2.0-alpha01

18 ธันวาคม 2019

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

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

  • แก้ไขปัญหาเล็กๆ น้อยๆ เกี่ยวกับ Fastscroller ที่เกี่ยวข้องกับการวาด RTL และความแม่นยำของการแตะ (b/143789932, aosp/1130438)
  • แก้ไขข้อขัดข้องใน ItemTouchHelper แล้วเมื่อนำออกจาก RecyclerView ในขณะที่ภาพเคลื่อนไหว ItemTouchHelper กำลังทำงาน (b/140447176, aosp/1167575)

เวอร์ชัน 1.1.0

เวอร์ชัน 1.1.0

20 พฤศจิกายน 2019

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

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

  • ตอนนี้ PagerSnapHelper และ LinearSnapHelper จะพิจารณาระยะห่างจากขอบของ RecyclerView โดยไม่คำนึงถึงค่าของ clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715, aosp/1130728{/1120728{/1120728{/1120728{/1
  • RecyclerView.setLayoutTransition(LayoutTransition) เลิกใช้งานอย่างเป็นทางการแล้วและจะแสดงผล IllegalArgumentException เมื่อเรียกใช้ด้วยค่าที่ไม่ใช่ Null โปรดใช้ RecyclerView.setItemAnimator(ItemAnimator) แทน (aosp/839414)
  • aosp/723649: ขณะนี้ RecyclerView นำ NestedScrollingChild3 ไปใช้งานแล้ว ทำให้รับรู้เมื่อระดับบนสุดของการเลื่อนที่ซ้อนกันทั้งหมดหยุดใช้ระยะการเลื่อนที่ฝังไว้ หากปัจจุบันโค้ดนักพัฒนาซอฟต์แวร์ลบล้าง RecyclerView.onNestedScroll(View, int, int, int, int, int) ก็จะไม่น่าจะมีการเรียกใช้โค้ดดังกล่าวอีกต่อไป และควรลบล้าง RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) แทน
  • ตอนนี้ RecyclerView มีแอตทริบิวต์รูปแบบเริ่มต้นเป็น recyclerViewStyle ซึ่งช่วยให้ตั้งค่ารูปแบบเริ่มต้นในธีมของคุณได้
  • ViewCompat Accessibility Actions API จะไม่ทําให้ RecyclerView ItemDelegate ขัดข้องอีกต่อไป
  • สามารถลบล้าง LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) เพื่อปรับแต่งจำนวนพื้นที่เลย์เอาต์ที่ควรเพิ่มไว้ด้านใดด้านหนึ่งของ RecyclerView ที่เกี่ยวข้อง (aosp/931259)
  • เพิ่มโอเวอร์โหลดใหม่ของ SmoothscrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) ซึ่งช่วยให้คุณระบุระยะเวลาเป็นมิลลิวินาทีสำหรับระยะเวลาที่ภาพเคลื่อนไหวควรจะปรากฏ (aosp/952807)

เวอร์ชัน 1.1.0-rc01

23 ตุลาคม 2019

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

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

  • แก้ไข "แอปพลิเคชันไม่ตอบสนอง" เมื่อลบล้าง RecyclerViewAccessibilityDelegate.ItemDelegate (aosp/1138057, aosp/1133434)

เวอร์ชัน 1.1.0-beta05

9 ตุลาคม 2019

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

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

  • จาก aosp/1106715 และ aosp/1103182 ตอนนี้ LinearSnapHelper และ PagerSnapHelper จะแสดงมุมมองที่อยู่ตรงกลางขอบเขตของ RecyclerView ลบด้วย Padding แม้จะมีค่าเป็นClipToPadding ก็ตาม (aosp/1130728)

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

  • แก้ไขปัญหาที่ RecyclerView สร้างโหนดการช่วยเหลือพิเศษที่ซ้ำกันสำหรับ RecyclerView (aosp/1130618)
  • แก้ไขปัญหาที่ลำดับชั้นของการเข้าถึงเสมือนใน RecyclerViews ไม่ทำงาน
  • แก้ไขปัญหาที่ไม่มีการใช้ ItemDelegates ที่กำหนดเอง

เวอร์ชัน 1.1.0-beta04

5 กันยายน 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-beta04 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

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

  • ตอนนี้ PagerSnapHelper และ LinearSnapHelper จะพิจารณาระยะห่างจากขอบของ RecyclerView โดยไม่คำนึงถึงค่าของ clipToPadding (b/139452422, b/139012032, aosp/1103182, aosp/1106715)
  • แก้ไขข้อบกพร่องที่ RecyclerView ไม่ไม่อนุญาตการสกัดกั้นการสัมผัสเมื่อการเลื่อนล่วงหน้าที่ซ้อนกันทำให้ NestedScrollingParent เลื่อน (b/138668210, aosp/1105373) ซึ่งจะเป็นประโยชน์ต่อไลบรารีต่างๆ เช่น ViewPager2
  • ตอนนี้ RecyclerView จะไปที่ SCROLL_STATE_DRAGGING อย่างสม่ำเสมอก่อนที่จะส่งการเลื่อนล่วงหน้าที่ซ้อนกัน (aosp/1105373)
  • การเลื่อนล่วงหน้าที่ฝังอยู่จะไม่ทำงานก่อนที่ท่าทางสัมผัสจะมากกว่าการแตะ Slop (b/139530818, aosp/1105373)
  • dx และอาร์กิวเมนต์ dy ที่ส่งไปยังการเลื่อนล่วงหน้าที่ฝังจะเป็น 0 เมื่อ RecyclerView ไม่สามารถเลื่อนในทิศทางนั้นได้ (aosp/1105373)

เวอร์ชัน 1.1.0-beta03

15 สิงหาคม 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-beta03 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

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

  • ตอนนี้ RecyclerView จะส่งระยะทางในการเลื่อนผ่าน View.onScrollChanged(int l, int t, int oldl, int oldt) เพื่อให้บริการการช่วยเหลือพิเศษได้รับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงการเลื่อนอย่างถูกต้อง (aosp/1007823)

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

  • แก้ไขข้อบกพร่องด้านรายการเพิ่มเติมของข้อบกพร่องที่สำคัญซึ่งเกี่ยวข้องกับ RecyclerView และการช่วยเหลือพิเศษ (aosp/1099577)

เวอร์ชัน 1.1.0-beta02

7 สิงหาคม 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-beta02 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ตอนนี้ RecyclerView มีแอตทริบิวต์รูปแบบเริ่มต้นเป็น recyclerViewStyle ซึ่งช่วยให้ตั้งค่ารูปแบบเริ่มต้นในธีมของคุณได้

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

  • แก้ไขข้อบกพร่องที่ RecyclerView ไม่ไม่อนุญาตให้ใช้จุดตัดด้วยการสัมผัสเมื่อเลื่อนซึ่งทำให้ NestedscrollingParent เลื่อน (b/131115697, aosp/1055911)

เวอร์ชัน 1.1.0-beta01

2 กรกฎาคม 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-beta01 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ตอนนี้ RecyclerView จะเข้าร่วมการเลื่อนที่ซ้อนกันเมื่อเริ่มการเลื่อนผ่านเหตุการณ์การช่วยเหลือพิเศษ (aosp/973584)

เวอร์ชัน 1.1.0-alpha06

5 มิถุนายน 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-alpha06 และ androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • เพิ่มโอเวอร์โหลดใหม่ของ SmoothscrollBy: RecyclerView#smoothScrollBy(@Px int, @Px int, @Nullable Interpolator, int duration) ซึ่งช่วยให้คุณระบุระยะเวลาเป็นมิลลิวินาทีสำหรับระยะเวลาที่ภาพเคลื่อนไหวควรจะปรากฏ (aosp/952807)

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

  • GridLayoutManager และ StaggeredGridLayoutManager ไม่ติดป้ายกำกับรายการแบบเต็มช่วงเวลาเป็นส่วนหัวโดยอัตโนมัติอีกต่อไป (aosp/969703)
  • เก็บลำดับของการเลือก (ตามเวลาที่สร้าง) ใน recyclerview-selection (aosp/937279)

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

  • แก้ไขข้อบกพร่องที่ RecyclerView กะพริบด้วยความเร็วที่ไม่ถูกต้องขณะอยู่ในสถานการณ์การเลื่อนแบบซ้อนกัน (aosp/961642)
  • เพิ่มการปรับปรุงความเสถียรใน recyclerview-selection (aosp/960213, aosp/926296)

เวอร์ชัน 1.1.0-alpha05

7 พฤษภาคม 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-alpha05 และ androidx.recyclerview:recyclerview-selection:1.1.0-alpha05 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • สามารถลบล้าง LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) เพื่อปรับแต่งจำนวนพื้นที่เลย์เอาต์ที่ควรเพิ่มไว้ด้านใดด้านหนึ่งของ RecyclerView ที่เกี่ยวข้อง (aosp/931259)

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

  • เพิ่ม API เพื่อเรียกข้อมูล DividerItemDecoration ที่ถอนออกได้ (aosp/937282)
  • เลิกใช้งาน LinearLayout.getExtraLayoutSpace(RecyclerVew.State) เพื่อใช้กลไกใหม่ที่ช่วยให้มีพื้นที่สำหรับเลย์เอาต์เพิ่มเติมที่กำหนดเองทั้ง 2 ฝั่ง วิธีการใหม่คือ LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)

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

  • ล้างข้อมูลการเลือกท่าทางสัมผัส (aosp/940781)
  • รักษาลำดับของการเลือก (ตามเวลาที่สร้าง) (b/128455535)

เวอร์ชัน 1.1.0-alpha04

3 เมษายน 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-alpha04 แล้ว คุณสามารถดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

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

  • ก่อนหน้านี้ RV OnItemTouchListener ไม่สามารถสกัดกั้นบน ACTION_UP ได้ ซึ่งทำให้ OnItemTouchListener บล็อกโค้ดอื่นไม่ให้ตอบสนองต่อ ACTION_UP ได้ ซึ่งตอนนี้ปัญหาได้รับการแก้ไขแล้ว (aosp/916137)

เวอร์ชัน 1.1.0-alpha03

13 มีนาคม 2019

ปล่อย androidx.recyclerview:recyclerview:1.1.0-alpha03 แล้ว ดูรายการคอมมิตทั้งหมดที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • GridLayoutManager: เลือกใช้การประมาณขนาดของแถบเลื่อน GridLayoutManager ที่มีความละเอียดสูงขึ้น (aosp/838836):
    • ใช้ข้อมูลระยะเวลาเพื่อประมาณขนาดแถบเลื่อนสำหรับ GridLayoutManager
    • หากต้องการเปิดใช้ ให้เรียกการส่ง GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) เป็น "จริง"
    • ดูเอกสารประกอบเกี่ยวกับ GridLayoutManager#setUsingSpansToEstimateScrollbarDimensions(boolean) สำหรับข้อมูลเพิ่มเติม

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

  • การช่วยเหลือพิเศษ: มีข้อผิดพลาดที่เมื่อ ViewHolder มีการนำกลับมาใช้ใหม่แล้วย้อนกลับอีกครั้ง ItemDelegate ที่เชื่อมโยงกับ RecyclerViewAccessibilityDelegate ของ RecyclerView ไม่ได้เชื่อมโยงกับ itemView ของ ViewHolder ทำให้การช่วยเหลือพิเศษเสียหาย ซึ่งตอนนี้ปัญหาได้รับการแก้ไขแล้ว (aosp/917740)

เวอร์ชัน 1.1.0-alpha02

30 มกราคม 2019

ปล่อย androidx.recyclerview:recyclerview 1.1.0-alpha02 แล้ว

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

  • RecyclerView.setLayoutFrozen(boolean) และ RecyclerView.isLayoutFrozen() เลิกใช้งานแล้วเพื่อใช้ RecyclerView.suppressLayout(boolean) และ RecyclerView.isLayoutSuppressed() แทน (aosp/839414)
  • RecyclerView.setLayoutTransition(LayoutTransition) เลิกใช้งานอย่างเป็นทางการแล้วและจะแสดงผล IllegalArgumentException เมื่อเรียกใช้ด้วยค่าที่ไม่ใช่ Null (aosp/839414)

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

  • แก้ไขข้อบกพร่องในรถบ้านที่ไม่มีการหยุดทำงาน SmoothScroller (aosp/843741)
  • แก้ไขข้อบกพร่องโดยที่ระบบไม่เรียกใช้ SCROLL_STATE_IDLE เมื่อสิ้นสุดภาพเคลื่อนไหวแบบเลื่อน (aosp/812576)

เวอร์ชัน 1.1.0-alpha01

3 ธันวาคม 2018

ปล่อย androidx.recyclerview 1.1.0-alpha01 และ androidx.recyclerview-selection 1.1.0-alpha01 แล้ว

androidx.recyclerview 1.1.0-alpha01

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

  • aosp/723649: ขณะนี้ RecyclerView นำ NestedScrollingChild3 ไปใช้งานแล้ว ทำให้รับรู้เมื่อระดับบนสุดของการเลื่อนที่ซ้อนกันทั้งหมดหยุดใช้ระยะการเลื่อนที่ฝังไว้ หากปัจจุบันโค้ดนักพัฒนาซอฟต์แวร์ลบล้าง RecyclerView.onNestedScroll(View, int, int, int, int, int) ก็จะไม่น่าจะมีการเรียกใช้โค้ดดังกล่าวอีกต่อไป และควรลบล้าง RecyclerView.onNestedScroll(View, int, int, int, int, int, int[]) แทน

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

  • แก้ไขข้อขัดข้องเมื่อใช้ TransitionManager เพื่อยุบ/ขยายรายการใน RecyclerView (b/37129527)
  • แก้ไขข้อบกพร่องที่ลักษณะการทำงานของ RecyclerView.OnItemTouchListener ไม่สอดคล้องกับลักษณะการทำงาน onInterceptTouchEvent และ onTouchEvent ของระบบมุมมอง (aosp/721235)
  • แก้ไขข้อบกพร่องของ EDGE Case บางส่วนที่เกี่ยวข้องกับการเลื่อนอย่างราบรื่น (aosp/729718, aosp/747168, aosp/812576)
  • แก้ไขกลยุทธ์ Snap ใน PagerSnapHelper เพื่อจัดการกับการดูของเด็กที่ไม่ใช่แบบปกติ (aosp/795752)

androidx.recyclerview-selection 1.1.0-alpha01

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

  • แก้ไข ConcurrentModificationException เมื่อชุดข้อมูลมีการเปลี่ยนแปลงโดยการนำออก มากมาย

RecyclerView-Selection เวอร์ชัน 1.1.0

RecyclerView-Selection เวอร์ชัน 1.1.0

27 มกราคม 2021

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

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

  • การปรับปรุงความเสถียรหลายอย่าง
  • เลิกใช้งาน withGestureTooltypes และ withPointerTooltypes ใน SelectionTracker.Builder แล้ว เราจะนำวิธีการเหล่านี้ออกในรุ่นถัดไป

RecyclerView-Selection เวอร์ชัน 1.1.0-rc03

1 ตุลาคม 2020

ปล่อย androidx.recyclerview:recyclerview-selection:1.1.0-rc03 แล้ว เวอร์ชัน 1.1.0-rc03 มีคอมมิตเหล่านี้

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

ขอขอบคุณ Stefan Kiesler สำหรับการแก้ไขการทดสอบและความคิดเห็น

  • แก้ปัญหาที่มีการเรียก OnClickListener การดูย่อยโดยไม่คาดคิดในระหว่างการเลือกที่ทำงานอยู่
  • ตัวแฮนเดิลเมาส์ (การเลือกแถบความถี่) > จัดการการเลื่อนที่ไม่คาดคิดได้อย่างสง่างาม (b/167821507)

RecyclerView-Selection เวอร์ชัน 1.1.0-rc02

2 กันยายน 2020

ปล่อย androidx.recyclerview:recyclerview-selection:1.1.0-rc02 แล้ว เวอร์ชัน 1.1.0-rc02 มีคอมมิตเหล่านี้

ไฮไลต์

  • จัดการกับการถดถอยหลายรายการจากเวอร์ชัน 1.0 ในการจัดการอินพุต
  • อัปเดตไลบรารีเพื่อใช้สำหรับ onRequestDisallowInterceptTouchEvent เพื่อให้เล่นกับ ItemTouchHelper ได้ดี (แค่ปัดหน้าจอก็พอ!)

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

  • แก้ปัญหาที่ไลบรารีการเลือกตีความเหตุการณ์ GestureDetector ไม่ถูกต้อง ซึ่งส่งผลให้การแตะหายไประหว่างการเลือกที่ทำงานอยู่ (b/165030422)
  • แก้ปัญหาที่เลือกไม่อัปเดตตามรายการที่นำออกจากอะแดปเตอร์ (b/138932671)
  • แก้ปัญหาที่รายการ RecyclerView จะเริ่มทำงานขณะที่มีส่วน "เลือกติดตาม" ที่ใช้งานอยู่ (b/161162268)
  • ตอนนี้จัดการ onRequestDisallowInterceptTouchEvent ได้อย่างถูกต้อง
  • แก้ปัญหาที่ ”Cannot call this method in a scroll callback” เห็นขณะเลื่อนเมาส์บน Q
  • อัปเดตเอกสาร (โดยเฉพาะใน StableIdKeyProvider) เพื่อระบุข้อกำหนดของอินสแตนซ์ RecyclerView อย่างชัดเจน

Recyclerview-Selection เวอร์ชัน 1.1.0-rc01

5 กุมภาพันธ์ 2020

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

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

  • แก้ไขปัญหาที่ RecyclerView เลื่อนด้วยการเลือกท่าทางสัมผัสได้ยากหากโต้ตอบกับ AppBarLayout ที่เลื่อนได้ (aosp/1193934)

RecyclerView-Selection เวอร์ชัน 1.1.0-beta01

4 ธันวาคม 2019

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

การปรับปรุงทั่วไปด้านความเสถียรที่เกี่ยวข้องกับการตรวจสอบการป้องกันและการจัดการสถานะภายใน

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

  • ปรับปรุงการจัดการสถานะไลบรารีและการตีความเหตุการณ์ CANCEL ทำให้มีการปรับปรุงความเสถียร

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

  • เพิ่มพารามิเตอร์ประเภทคีย์การเลือกลงในคลาสและเมธอดที่ขาดหายไป
  • วิธีการที่เลิกใช้งาน:
    • SelectionTracker.Builder#withPointerTooltype
    • SelectionTracking.Builder#withGestureTooltype
    • เมธอดเหล่านี้มีไว้เพื่อให้นักพัฒนาแอปจับคู่ลักษณะการทำงานของตัวชี้หรือท่าทางสัมผัสกับประเภทเครื่องมืออื่นที่ไม่ใช่ค่าเริ่มต้น* แม้ว่าความตั้งใจจะดี แต่เมื่อนำไปใช้เพิ่มเติมแล้ว ก็เห็นได้ชัดเจนว่าความคาดหวังของผู้ใช้เกี่ยวกับพฤติกรรมการป้อนข้อมูลนั้นมีความเฉพาะเจาะจงกับประเภทเครื่องมือมาก และ "Passive" สไตลีคือประเภทเครื่องมือ FINger ของระบบอินพุตของ Android ที่เกี่ยวข้องกับระบบอินพุตของ Android
    • ประเภทเครื่องมือเริ่มต้นคือ FINGER สําหรับท่าทางสัมผัสและ MOUSE สําหรับเคอร์เซอร์