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

Compose को आज़माएं
Android के लिए, Jetpack Compose को यूज़र इंटरफ़ेस (यूआई) टूलकिट के तौर पर इस्तेमाल करने का सुझाव दिया जाता है. Compose में रीफ़्रेश करने के लिए नीचे खींचने का तरीका जानें.

'रीफ़्रेश करने के लिए स्वाइप करें' यूज़र इंटरफ़ेस पैटर्न को पूरी तरह से SwipeRefreshLayout विजेट में लागू किया जाता है. यह वर्टिकल स्वाइप का पता लगाता है, एक खास प्रोग्रेस बार दिखाता है, और आपके ऐप्लिकेशन में कॉलबैक के तरीकों को ट्रिगर करता है. इस सुविधा को चालू करने के लिए, विजेट को अपनी लेआउट फ़ाइल में ListView या GridView के पैरंट के तौर पर जोड़ें. इसके बाद, रीफ़्रेश करने की सुविधा लागू करें. यह सुविधा तब चालू होती है, जब उपयोगकर्ता स्वाइप करता है.

इस पेज पर, मौजूदा लेआउट में विजेट जोड़ने का तरीका बताया गया है. इसमें यह भी दिखाया गया है कि ऐक्शन बार के ओवरफ़्लो एरिया में रीफ़्रेश करने की सुविधा कैसे जोड़ी जाती है, ताकि स्वाइप करने के जेस्चर का इस्तेमाल न कर पाने वाले लोग, किसी बाहरी डिवाइस की मदद से मैन्युअल अपडेट को ट्रिगर कर सकें.

SwipeRefreshLayout डिपेंडेंसी जोड़ना

अपने ऐप्लिकेशन में SwipeRefreshLayout का इस्तेमाल करने के लिए, अपनी build.gradle फ़ाइल में यह डिपेंडेंसी जोड़ें:

शानदार

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>