Recyclerview

הצגת קבוצות גדולות של נתונים בממשק המשתמש תוך צמצום השימוש בזיכרון.

בטבלה הזו מפורטים כל הארטיפקטים בקבוצה androidx.recyclerview.

פריט מידע שנוצר בתהליך פיתוח (Artifact) גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסה אלפא
recyclerview 1.3.2 1.4.0-rc01 - -
recyclerview-selection 1.1.0 - - 1.2.0-alpha01
הספרייה עודכנה לאחרונה ב-18 בספטמבר 2024

הצהרת יחסי תלות

כדי להוסיף תלות ב-RecyclerView, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאגר Maven של Google.

מוסיפים את יחסי התלות של הארטיפקטים הנדרשים בקובץ 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")
}

מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.

משוב

המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.4

גרסה 1.4.0-rc01

18 בספטמבר 2024

androidx.recyclerview:recyclerview:1.4.0-rc01 שוחררה, ללא שינויים מאז 1.4.0-alpha02/. גרסת 1.4.0-rc01 כוללת את ההוספות האלה.

שינויים מאז גרסה 1.3.2

הערה לגבי תאימות: הגרסה הזו תעבור הידור רק מול SDK של API 35 (Vanilla Ice Cream) ואילך. אם מופיעות אזהרות לגבי AGP (Android Gradle Plugin) במהלך השדרוג, אפשר לדכא אותן.

תכונות חדשות

  • תמיכה בקצב רענון של Adaptive: RecyclerView קורא עכשיו ל-setFrameContentVelocity כשמתבצע גלילה באמצעות OverScroller (למשל, כשהגלילה מסתיימת אחרי תנועה מהירה או גלילה חלקה). (I8f8a4)

שינויים ב-API

  • מוסיפים את ה-API של RecyclerView$LayoutManager#isLayoutReversed. (I4970e)

שינויים אחרים

  • הסרנו את התיאור הידני של הגישה לממשקי API חדשים של פלטפורמות, כי הגישה הזו מתבצעת באופן אוטומטי באמצעות בניית מודלים של ממשקי API כשמשתמשים ב-R8 עם AGP מגרסה 7.3 ואילך (למשל, R8 מגרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP מגרסה 8.1 ואילך (למשל, D8 מגרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלצים לעדכן ל-D8 בגרסה 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, ‏ b/345472586)
  • מוסיפים את סוג התצוגה של הפריט לקטע הקישור/יצירה של RecyclerView, ומתייגים את ה-prefetch של RV בתווית 'forced - needed next frame' (אולץ – נדרש לפריים הבא) אם צפוי שייעשה בהם שימוש בפריים הבא, ולכן צריך להתחיל לעבוד עליהם בהקדם האפשרי. (I8ec3e, ‏ b/309523615)
  • מעדכנים את compileSdk ל-35 (פרטים מופיעים בקטע 'הערה בנושא תאימות' למעלה). 5dc41be

גרסה 1.4.0-beta01

21 באוגוסט 2024

androidx.recyclerview:recyclerview:1.4.0-beta01 פורסם, ללא שינויים מאז 1.4.0-alpha02. גרסת 1.4.0-beta01 כוללת את ההוספות האלה.

הערה לגבי תאימות: הגרסה הזו תעבור הידור רק מול SDK של API 35 (Vanilla Ice Cream) ואילך. אם מופיעות אזהרות של AGP (Android Gradle Plugin) במהלך השדרוג, אפשר לדכא אותן.

גרסה 1.4.0-alpha02

7 באוגוסט 2024

androidx.recyclerview:recyclerview:1.4.0-alpha02 משוחרר. גרסה 1.4.0-alpha02 כוללת את ההוספות האלה.

הערה לגבי תאימות: הגרסה הזו תעבור הידור רק מול SDK של API 35 (Vanilla Ice Cream) ואילך. אם מופיעות אזהרות של AGP (Android Gradle Plugin) במהלך השדרוג, אפשר לדכא אותן.

תכונות חדשות

  • תמיכה בשיעור רענון משתנה: 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) ובכל גרסאות ה-build כשמשתמשים ב-AGP מגרסה 8.1 ואילך (למשל, D8 מגרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלצים לעדכן ל-D8 בגרסה 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, ‏ b/345472586)
  • מוסיפים את סוג התצוגה של הפריט לקטע הקישור/יצירה של RecyclerView, ומתייגים את ה-prefetch של RV בתווית 'forced - needed next frame' (אולץ – נדרש לפריים הבא) אם צפוי שייעשה בהם שימוש בפריים הבא, ולכן צריך להתחיל לעבוד עליהם בהקדם האפשרי. (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)

תיקוני באגים

  • תיקון באג שגרם לקריסות sporadique במהלך אנימציות (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. אם אתם משתמשים ב-Compose בגרסה 1.2.0-beta02 ואילך, והשתמשתם ב-MyComposeAdapter וב-DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy כפי שמתואר בהנחיות הקודמות בנושא יכולת פעולה הדדית, עליכם להסיר אותם כי הם כבר לא משפרים את המצב שמוגדר כברירת מחדל.
  • הוספנו שיטה חדשה של 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

  • הוסר הערה לגבי אפשרות האפסיות שנוספה בגרסה 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תכונות חדשות

  • גרסת הבטא הזו כוללת שיפורי ביצועים (שכללו בעבר את 1.3.0-alpha02 כשמשתמשים ב-Jetpack Compose. אם אתם משתמשים ב-Compose בגרסה 1.2.0-beta02 ואילך, והשתמשתם ב-MyComposeAdapter וב-DisposeOnViewTreeLifecycleDestroyed ViewCompositionStrategy כפי שמתואר בהנחיות הקודמות בנושא יכולת פעולה הדדית, עליכם להסיר אותם כי הם כבר לא משפרים את המצב שמוגדר כברירת מחדל.

שינויים ב-API

  • הוספנו הערות לגבי אפשרות האפס של מספר שיטות ופרמטרים כדי לשפר את האזהרות של ה-lint למשתמשים ב-Java ואת יכולת הפעולה ההדדית למשתמשים ב-Kotlin. יכול להיות שמדובר בשינוי שגורם לשגיאות בקוד אצל חלק ממשתמשי Kotlin, ויכול להיות שחלק ממשתמשי Java יקבלו אזהרות או שגיאות נוספות של איתור שגיאות בקוד. (I61829, b/236487044; Ia0b6f; I6f119, b/236487209; Ibe1de, b/236487210)

תיקוני באגים

  • כדי לוודא ששירותי הנגישות מתייחסים לרשתות כאל רשתות, צריך להגדיר שם של סיווג מידע של צומת נגישות. (I12812)

גרסה 1.3.0-alpha02

6 באפריל 2022

androidx.recyclerview:recyclerview:1.3.0-alpha02 משוחרר. גרסה 1.3.0-alpha02 מכילה את ההצהרות האלה.

שינויים ב-API

  • הוספת שיטות BuildCompat ניסיוניות ל-SDKs עתידיים (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 מכילה את ההוספות האלה.

תיקוני באגים

  • עכשיו, ViewHolders בתוך 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. מידע נוסף זמין בפוסט הזה בבלוג.

שחזור מצב איטי: מעכשיו אפשר לדחות את שחזור המצב של RecyclerView Adapter עד שהתוכן שלו נטען. פרטים נוספים זמינים במסמכי התיעוד.

גרסה 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 מכילה את ההוספות האלה.

תכונות חדשות

  • נוספה תמיכה בהוספת מספר RecyclerListeners. (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 יש רק פריט אחד והוא ממוקד, המיקוד לא יועבר קדימה או אחורה. (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.

  • RecyclerView.Adapter שחזור מצב עצלן:

    • הוספנו ממשק API חדש לכיתה RecyclerView.Adapter שמאפשר ל-Adapter לקבוע מתי צריך לשחזר את מצב הפריסה.

    • לדוגמה, אפשר לבצע את הפעולות הבאות:

    myAdapter.setStateRestorationStrategy(StateRestorationStrategy.WHEN_NOT_EMPTY);
    

    כדי לגרום ל-RecyclerView להמתין עד שהמתאם לא יהיה ריק לפני שחזור מיקום הגלילה.

  • העמודות CollectionInfo ו-CollectionItemInfo לא יאוכלסו יותר כברירת מחדל.

    • אם אתם רוצים ששירותי הנגישות (לדוגמה, TalkBack) ימשיכו להציג למשתמש את המספר ואת מדד הפריט, תצטרכו לאכלס את CollectionInfo ואת CollectionItemInfo בעצמכם.

    • האובייקטים האלה כבר לא מאוכלסים במסגרת כי המסגרת לא יכולה לקבוע את מספר הפריטים כפי שהמשתמש רואה אותם (למשל, פריטים של RecyclerView שמייצגים כמה פריטים גלויים).

תיקוני באגים

  • מערכת RecyclerView נמנעת עכשיו מהצמדה לתצוגות מחוץ לאזור התצוגה כשגודל אזור התצוגה משתנה
  • תוקן באג ב-DiffUtil שעלול לחשב את ההבדל בצורה שגויה כשפריט מקורי ברשימה הראשונה מופיע כמה פעמים ברשימה השנייה. (b/123376278)

גרסה 1.2.0-alpha01

18 בדצמבר 2019

androidx.recyclerview:recyclerview:1.2.0-alpha01 משוחרר. גרסה 1.2.0-alpha01 כוללת את ההצהרות האלה.

תיקוני באגים

  • תוקנו בעיות קלות ב-FastScroller שקשורות לציור מימין לשמאל ולדיוק המגע (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)
  • 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, שמאפשר להגדיר את סגנון ברירת המחדל בעיצוב
  • ממשק ה-API של פעולות הנגישות של ViewCompat לא גורם יותר לשגיאות ב-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, בניכוי הרווח, למרות הערך של clipToPadding. (aosp/1130728)

תיקוני באגים

  • תוקנה בעיה שבה RecyclerView יצר צמתים כפולים של נגישות לצאצאים של RecyclerView. (aosp/1130618)
  • תוקנה בעיה שבה היררכיות של נגישות וירטואלית ב-RecyclerViews לא פעלו.
  • תוקנה בעיה שבה לא נעשה שימוש ב-ItemDelegates מותאמים אישית.

גרסה 1.1.0-beta04

5 בספטמבר 2019

androidx.recyclerview:recyclerview:1.1.0-beta04 משוחרר. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.

תיקוני באגים

  • 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)
  • גלילה פנימית מראש לא מתבצעת יותר לפני שהמחווה חורגת מהסף של מגע רופף (b/139530818, ‏ aosp/1105373)
  • הארגומנטים dx ו-dy שנשלחים לגלילות מראש בתצוגה בתצוגה בתצוגה מוחזרים לאפס כש-RecyclerView לא יכול לגלול בכיוון הזה (aosp/1105373)

גרסה 1.1.0-beta03

15 באוגוסט 2019

androidx.recyclerview:recyclerview:1.1.0-beta03 משוחרר. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.

שינויים ב-API

  • RecyclerView שולח עכשיו את מרחקי הגלילה דרך View.onScrollChanged(int l, int t, int oldl, int oldt), כך ששירותי הנגישות יקבלו התראות מדויקות על שינויים בגלילה. (aosp/1007823)

תיקוני באגים

  • תוקן באג רציני של Overflow ב-Stack שקשור ל-RecyclerView ולנגישות. (aosp/1099577)

גרסה 1.1.0-beta02

7 באוגוסט 2019

androidx.recyclerview:recyclerview:1.1.0-beta02 משוחרר. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.

תכונות חדשות

  • ל-RecyclerView יש עכשיו מאפיין סגנון ברירת מחדל: recyclerViewStyle, שמאפשר להגדיר את סגנון ברירת המחדל בעיצוב

תיקוני באגים

  • תוקן באג שבו רכיב RecyclerView לא מנע התערבות במגע כשהגלילה גרמה לרכיב NestedScrollingParent לגלול. (b/131115697, ‏ aosp/1055911)

גרסה 1.1.0-beta01

2 ביולי 2019

androidx.recyclerview:recyclerview:1.1.0-beta01 משוחרר. ההתחייבויות (commits) שכלולות בגרסה הזו מפורטות כאן.

תכונות חדשות

  • RecyclerView משתתף עכשיו בגלילה בתצוגת עץ כשהגלילה מופעלת באמצעות אירועי נגישות. (aosp/973584)

גרסה 1.1.0-alpha06

5 ביוני 2019

androidx.recyclerview:recyclerview:1.1.0-alpha06 ו-androidx.recyclerview:recyclerview-selection:1.1.0-alpha06 משוחררים. כאן אפשר למצוא את ההתחייבויות (commits) שכלולות בגרסה הזו.

תכונות חדשות

  • נוספה עומס יתר חדש של 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 משוחררים. ההתחייבויות (commits) שכלולות בגרסה הזו מפורטות כאן.

תכונות חדשות

  • אפשר לשנות את הערך של LinearLayoutManager.calculateExtraLayoutSpace(RecyclerView.State, int[]) כדי להתאים אישית את כמות המרחב הנוסף שצריך להוסיף לפריסת הרכיבים בכל צד של RecyclerView המשויך. (aosp/931259)

שינויים ב-API

  • הוספת API לאחזור DividerItemDecoration drawable (aosp/937282)
  • הוצאה משימוש של LinearLayout.getExtraLayoutSpace(RecyclerVew.State) לטובת מנגנון חדש שמאפשר להגדיר מרחב פריסה נוסף בהתאמה אישית בשני הצדדים. השיטה החדשה היא LinearLayout.calculateExtraLayoutSpace(RecyclerView.state, int[]) (aosp/931259)

תיקוני באגים

  • תיקון שגיאות בבחירת תנועות (aosp/940781)
  • שמירת סדר הבחירה (לפי מועד היצירה) (b/128455535)

גרסה 1.1.0-alpha04

3 באפריל 2019

androidx.recyclerview:recyclerview:1.1.0-alpha04 משוחרר. ההתחייבויות (commits) שכלולות בגרסה הזו מפורטות כאן.

תיקוני באגים

  • בעבר, 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) ומעבירים לה את הערך true.
    • מידע נוסף זמין במסמכי התיעוד של 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)

תיקוני באגים

  • תיקון באג ב-RV שבו 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)
  • תוקנו כמה באגים קיצוניים שקשורים לגלילה חלקה (aosp/729718, ‏ aosp/747168, ‏ aosp/812576)
  • תוקנה אסטרטגיית הצמדה ב-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 כוללת את ההוספות האלה.

תיקוני באגים

תודה לסטפן קיסלר על בדיקת התיקונים ועל המשוב.

  • תוקנה בעיה שבה פונקציות 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 היו מפעילים אירועי onClick בזמן של-SelectionTracker יש בחירה פעילה (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
    • השיטות האלה נועדו לאפשר למפתחים למפות התנהגויות של סמן או תנועה לסוגים אחרים של כלים, מלבד ברירת המחדל*. הכוונה הייתה טובה, אבל לאחר שימוש נוסף התברר שציפיות המשתמשים לגבי התנהגות הקלט הן מאוד ספציפיות לסוג הכלי. בנוסף, מבחינת מערכת הקלט של Android, עטים "פסיביים" הם סוג כלי FINGER.
    • סוגי הכלים שמוגדרים כברירת מחדל הם אצבע לתנועה ו-עכבר לסמן.