स्वाइप करके रीफ़्रेश करने की सुविधा का यूज़र इंटरफ़ेस पैटर्न, पूरी तरह से SwipeRefreshLayout
विजेट में लागू किया जाता है. यह वर्टिकल स्वाइप का पता लगाता है, एक अलग प्रोग्रेस बार दिखाता है, और आपके ऐप्लिकेशन में कॉलबैक तरीकों को ट्रिगर करता है. इस सुविधा को चालू करने के लिए, अपनी लेआउट फ़ाइल में विजेट को 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
चाइल्ड एलिमेंट का इस्तेमाल किया जा सकता है.
यहां दिए गए उदाहरण में, ListView
वाली मौजूदा लेआउट फ़ाइल में SwipeRefreshLayout
विजेट जोड़ने का तरीका बताया गया है:
<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
के साथ भी किया जा सकता है. अगर लेआउट में आईडी "@android:id/list"
वाला ListView
है, तो स्वाइप करके रीफ़्रेश करने की सुविधा अपने-आप काम करती है. हालांकि, इस तरह से ListView
के बारे में साफ़ तौर पर बताने पर, डिफ़ॉल्ट ListFragment
व्यू स्ट्रक्चर की जगह यह ले लेता है. अगर आपको डिफ़ॉल्ट व्यू स्ट्रक्चर का इस्तेमाल करना है, तो SwipeRefreshLayout
और ListFragment
के काम करने के तरीके के कुछ हिस्सों को बदलें.
ऐक्शन बार में रीफ़्रेश करने की कार्रवाई जोड़ना
अपने ऐप्लिकेशन के ऐक्शन बार में'रीफ़्रेश करें' कार्रवाई जोड़ें, ताकि स्वाइप जेस्चर का इस्तेमाल न कर सकने वाले उपयोगकर्ता, मैन्युअल तरीके से अपडेट ट्रिगर कर सकें. उदाहरण के लिए, सुलभता की ज़रूरतों वाले उपयोगकर्ता, कीबोर्ड और डी-पैड जैसे बाहरी डिवाइसों का इस्तेमाल करके ऐक्शन बार की कार्रवाइयां ट्रिगर कर सकते हैं.
एट्रिब्यूट 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>