Snackbar का इस्तेमाल करके, उपयोगकर्ता को कोई छोटा मैसेज दिखाया जा सकता है. सूचनाओं के उलट, यह मैसेज कुछ समय बाद अपने-आप हट जाता है. Snackbar का इस्तेमाल, उन छोटे मैसेज के लिए किया जाता है जिन पर उपयोगकर्ता को कोई कार्रवाई नहीं करनी होती. उदाहरण के लिए, ईमेल भेजने वाला कोई ऐप्लिकेशन, Snackbar का इस्तेमाल करके उपयोगकर्ता को यह बता सकता है कि ऐप्लिकेशन ने ईमेल भेज दिया है.
CoordinatorLayout का इस्तेमाल करना
Snackbar को किसी व्यू से जोड़ा जाता है. अगर Snackbar को View क्लास से लिए गए किसी ऑब्जेक्ट से जोड़ा जाता है, तो यह बुनियादी फ़ंक्शन उपलब्ध कराता है. जैसे, सामान्य लेआउट ऑब्जेक्ट. हालांकि, अगर Snackbar को CoordinatorLayout से जोड़ा जाता है, तो Snackbar को ये अतिरिक्त सुविधाएं मिलती हैं:
- उपयोगकर्ता,
Snackbarको स्वाइप करके हटा सकता है. Snackbarदिखने पर, लेआउट अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट को मूव कर देता है. उदाहरण के लिए, अगर लेआउट मेंFloatingActionButton, है, तोSnackbarदिखाने पर लेआउट, बटन को ऊपर की ओर मूव कर देता है. ऐसा करने के बजाय,Snackbarको बटन के ऊपर नहीं दिखाया जाता. पहली इमेज में देखें कि यह कैसा दिखता है.
CoordinatorLayout क्लास, FrameLayout के फ़ंक्शन का सुपरसेट उपलब्ध कराती है.
अगर आपका ऐप्लिकेशन पहले से FrameLayout का इस्तेमाल करता है, तो उस लेआउट को CoordinatorLayout से बदला जा सकता है. इससे Snackbar के सभी फ़ंक्शन का इस्तेमाल किया जा सकेगा. अगर आपका ऐप्लिकेशन अन्य लेआउट ऑब्जेक्ट का इस्तेमाल करता है, तो अपने मौजूदा लेआउट एलिमेंट को CoordinatorLayout में रैप करें. इसके लिए, यहां दिया गया उदाहरण देखें:
<android.support.design.widget.CoordinatorLayout android:id="@+id/myCoordinatorLayout" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in a CoordinatorLayout. --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- ...Toolbar, other layouts, other elements... --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>
अपने CoordinatorLayout के लिए, android:id टैग सेट करें.
मैसेज दिखाने के लिए, आपको लेआउट के आईडी की ज़रूरत होती है.
पहली इमेज. Snackbar दिखने पर, CoordinatorLayout
FloatingActionButton को ऊपर की ओर मूव कर देता है.
मैसेज दिखाना
मैसेज दिखाने के लिए, दो चरण पूरे करने होते हैं. पहले, मैसेज के टेक्स्ट के साथ Snackbar ऑब्जेक्ट बनाएं. इसके बाद, उपयोगकर्ता को मैसेज दिखाने के लिए, उस ऑब्जेक्ट के show() तरीके का इस्तेमाल करें.
Snackbar ऑब्जेक्ट बनाना
स्टैटिक
Snackbar.make()
तरीके का इस्तेमाल करके, Snackbar ऑब्जेक्ट बनाएं. Snackbar बनाते समय, वह मैसेज तय करें जो दिखाया जाएगा. साथ ही, यह भी तय करें कि मैसेज कितने समय तक दिखेगा:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- view
-
वह व्यू जिससे
Snackbarको अटैच करना है. यह तरीका, पास किए गए व्यू से लेकरCoordinatorLayoutया विंडो डेकोर के कॉन्टेंट व्यू तक, व्यू के क्रम में खोज करता है. आम तौर पर, अपने कॉन्टेंट को शामिल करने वालेCoordinatorLayoutको पास करना आसान होता है. - stringId
- वह मैसेज दिखाने के लिए, रिसॉर्स आईडी जिसका इस्तेमाल करना है. यह फ़ॉर्मैट किया गया या फ़ॉर्मैट नहीं किया गया टेक्स्ट हो सकता है.
- duration
-
मैसेज दिखाने का समय. यह
LENGTH_SHORTयाLENGTH_LONGहो सकता है.
उपयोगकर्ता को मैसेज दिखाना
Snackbar बनाने के बाद, उपयोगकर्ता को Snackbar दिखाने के लिए, इसके show() तरीके का इस्तेमाल करें:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
सिस्टम, एक साथ कई Snackbar ऑब्जेक्ट नहीं दिखाता. इसलिए, अगर व्यू में फ़िलहाल कोई दूसरा Snackbar दिख रहा है, तो सिस्टम आपके Snackbar को लाइन में लगाता है. साथ ही, मौजूदा Snackbar के खत्म होने या हटाए जाने के बाद, उसे दिखाता है.
अगर आपको उपयोगकर्ता को कोई मैसेज दिखाना है और Snackbar ऑब्जेक्ट के किसी यूटिलिटी तरीके का इस्तेमाल नहीं करना है, तो show() का इस्तेमाल करने के बाद, आपको Snackbar के रेफ़रंस को सेव करने की ज़रूरत नहीं है. इस वजह से, एक ही स्टेटमेंट में Snackbar बनाने और दिखाने के लिए, आम तौर पर मेथड चेनिंग का इस्तेमाल किया जाता है:
Kotlin
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Java
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();