התבנית של ממשק המשתמש של החלקה לרענון מיושמת באופן מלא בווידג'ט SwipeRefreshLayout
, שמזהה את החלקה האנכית, מציג סרגל התקדמות ייחודי ומפעיל שיטות קריאה חוזרת (callback) באפליקציה. כדי להפעיל את ההתנהגות הזו, מוסיפים את הווידג'ט לקובץ הפריסה כהורה של ListView
או GridView
ומטמיעים את התנהגות הרענון שמופעל כשהמשתמש מחליק.
בדף הזה נסביר איך מוסיפים את הווידג'ט לפריסה קיימת. בנוסף, מוסבר איך להוסיף פעולת רענון לאזור העודף בסרגל הפעולות, כדי שמשתמשים שלא יכולים להשתמש בתנועת החלקה יוכלו להפעיל עדכון ידני באמצעות מכשיר חיצוני.
הוספת תלות ב-SwipeRefreshLayout
כדי להשתמש ב-SwipeRefreshLayout
באפליקציה, מוסיפים את יחסי התלות הבאים לקובץ build.gradle
:
Groovy
dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01" }
Kotlin
dependencies { implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01") }
הוספת הווידג'ט SwipeRefreshLayout
כדי להוסיף את הווידג'ט של החלקה לרענון לאפליקציה קיימת, מוסיפים את SwipeRefreshLayout
כהורה של ListView
או GridView
יחיד.
SwipeRefreshLayout
תומך רק ברכיב צאצא אחד מסוג ListView
או GridView
.
בדוגמה הבאה מוסבר איך מוסיפים את הווידג'ט SwipeRefreshLayout
לקובץ פריסה קיים שמכיל ListView
:
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swiperefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
אפשר גם להשתמש בווידג'ט SwipeRefreshLayout
עם ListFragment
. אם הפריסה מכילה ListView
עם המזהה "@android:id/list"
, המערכת תומכת באופן אוטומטי בפונקציה של החלקה לרענון. עם זאת, הצהרה מפורשת על ListView
בדרך הזו מבטלת את מבנה התצוגה ListFragment
שמוגדר כברירת מחדל. אם רוצים להשתמש במבנה התצוגה שמוגדר כברירת מחדל, צריך לשנות את ההתנהגות של SwipeRefreshLayout
ושל ListFragment
.
הוספת פעולת רענון לסרגל הפעולות
מוסיפים פעולת רענון לסרגל הפעולות של האפליקציה, כדי שמשתמשים שלא יכולים לבצע תנועות החלקה יוכלו להפעיל עדכון ידני. לדוגמה, משתמשים עם צרכים מיוחדים יכולים להפעיל פעולות בסרגל הפעולות באמצעות מכשירים חיצוניים, כמו מקלדות ומשטחי D-pad.
כדי להוסיף את פעולת הרענון כפריט תפריט במקום כלחצן, מגדירים את המאפיין android:showAsAction=never
. אם תציגו את הפעולה כלחצן, המשתמשים עשויים להניח שהפעולה של לחצן הרענון שונה מהפעולה של החלקה לרענון. הפעולה של הרענון פחות בולטת בסרגל הפעולות, כדי לעודד את המשתמשים לבצע עדכונים ידניים באמצעות תנועות החלקה, תוך שמירה על הגישה לאפשרות הזו במקום שבו משתמשים בלחצן הכיוון מחפשים אותה.
הקוד הבא מראה איך מוסיפים את הפעולה 'החלקה לרענון' לאזור העודף:
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_refresh" android:showAsAction="never" android:title="@string/menu_refresh"/> </menu>