มุมมองรีไซเคิล
ตารางนี้แสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.recyclerview
อาร์ติแฟกต์ | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
Recyclerview | 1.3.2 | - | - | 1.4.0-alpha02 |
การเลือกมุมมองรีไซเคิล | 1.1.0 | - | - | 1.2.0-alpha01 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน RecyclerView คุณต้องเพิ่มที่เก็บ Google Maven ไปยัง อ่านที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับ
ในแอปหรือโมดูล
ดึงดูด
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-alpha02
7 สิงหาคม 2024
ปล่อย androidx.recyclerview:recyclerview:1.4.0-alpha02
แล้ว เวอร์ชัน 1.4.0-alpha02 มีคอมมิตเหล่านี้
หมายเหตุความเข้ากันได้: เวอร์ชันนี้จะคอมไพล์กับ API 35 (Vanilla Ice Cream) SDK ขึ้นไปเท่านั้น หากเห็นคำเตือน AGP (ปลั๊กอิน Android Gradle) เมื่ออัปเกรด คุณสามารถระงับคำเตือนเหล่านั้นได้
การเปลี่ยนแปลง API
- API
ViewCompat.LAYOUT_DIRECTION_
ที่เลิกใช้งานแล้ว (I51710, b/317055535)
ฟีเจอร์ใหม่
- การรองรับอัตราการรีเฟรชที่เปลี่ยนแปลงได้: ตอนนี้ RecyclerView จะเรียกใช้
setFrameContentVelocity
เมื่อเลื่อนผ่าน Overscroller (เช่น การสะบัดนิ้วหรือการเลื่อนที่ราบรื่น) (I8f8a4)
การเปลี่ยนแปลงอื่นๆ
- นำการระบุการเข้าถึง 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
จะแสดงตำแหน่งอะแดปเตอร์ที่ถูกต้องเมื่อมีการค้นหาใน CallbackonViewRecycled
(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)
การสนับสนุนภายนอก
- ขอขอบคุณ Kolin Krewinkel ในนามของ Facebook สำหรับการมีส่วนร่วม
เวอร์ชัน 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 แม้จะมีค่าเป็น ClipsToPadding ก็ตาม (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
- SelectionTracker.Builder#withGestureTooltype
- เมธอดเหล่านี้มีไว้เพื่อให้นักพัฒนาแอปจับคู่ลักษณะการทำงานของตัวชี้หรือท่าทางสัมผัสกับประเภทเครื่องมืออื่นที่ไม่ใช่ค่าเริ่มต้น* แม้ว่าความตั้งใจจะดี แต่เมื่อนำไปใช้เพิ่มเติมแล้ว ก็เห็นได้ชัดเจนว่าความคาดหวังของผู้ใช้เกี่ยวกับพฤติกรรมการป้อนข้อมูลนั้นมีความเฉพาะเจาะจงกับประเภทเครื่องมือมาก และ "Passive" สไตลีคือประเภทเครื่องมือ FINger ของระบบอินพุตของ Android ที่เกี่ยวข้องกับระบบอินพุตของ Android
- ประเภทเครื่องมือเริ่มต้นคือ FINGER สําหรับท่าทางสัมผัสและ MOUSE สําหรับเคอร์เซอร์