अपने ऐप्लिकेशन में स्वाइप करने के लिए रीफ़्रेश करने की सुविधा जोड़ें

स्वाइप करके रीफ़्रेश करने की सुविधा का यूज़र इंटरफ़ेस पैटर्न, पूरी तरह से 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>