उपयोगकर्ता को छोटा मैसेज दिखाने के लिए, Snackbar का इस्तेमाल किया जा सकता है. सूचनाओं के उलट, यह मैसेज कुछ समय बाद अपने-आप हट जाता है. Snackbar, ऐसे छोटे मैसेज के लिए सबसे सही है जिन पर उपयोगकर्ता को कोई कार्रवाई करने की ज़रूरत नहीं होती. उदाहरण के लिए, कोई ईमेल ऐप्लिकेशन, उपयोगकर्ता को यह बताने के लिए Snackbar का इस्तेमाल कर सकता है कि ऐप्लिकेशन ने ईमेल भेज दिया है.
CoordinatorLayout का इस्तेमाल करना
कोई Snackbar, किसी व्यू से अटैच है. Snackbar, View क्लास से मिले किसी भी ऑब्जेक्ट से जुड़ा होने पर, बुनियादी फ़ंक्शन उपलब्ध कराता है. जैसे, कोई भी सामान्य लेआउट ऑब्जेक्ट. हालांकि, अगर Snackbar को किसी CoordinatorLayout से जोड़ा जाता है, तो Snackbar को कुछ और सुविधाएं मिलती हैं:
- उपयोगकर्ता,
Snackbarको स्वाइप करके खारिज कर सकता है. Snackbarदिखने पर, लेआउट अन्य यूआई एलिमेंट को मूव कर देता है. उदाहरण के लिए, अगर लेआउट मेंFloatingActionButtonहै, तो बटन के ऊपरSnackbarदिखाने के बजाय, लेआउटSnackbarदिखाने पर बटन को ऊपर ले जाता है. यह कैसे दिखता है, यह देखने के लिए पहला चित्र देखें.
CoordinatorLayout क्लास, FrameLayout की सुविधाओं का सुपरसेट उपलब्ध कराती है.
अगर आपके ऐप्लिकेशन में पहले से ही FrameLayout का इस्तेमाल किया जा रहा है, तो Snackbar के सभी फ़ंक्शन चालू करने के लिए, उस लेआउट को CoordinatorLayout से बदला जा सकता है. अगर आपका ऐप्लिकेशन अन्य लेआउट ऑब्जेक्ट का इस्तेमाल करता है, तो अपने मौजूदा लेआउट एलिमेंट को 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.make() तरीके को कॉल करके, Snackbar ऑब्जेक्ट बनाएं. Snackbar बनाते समय, यह तय करें कि यह कौनसा मैसेज दिखाए और उसे कितनी देर के लिए दिखाया जाए:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- देखें
-
Snackbarको अटैच करने के लिए व्यू. यह तरीका, पास किए गए व्यू से लेकरCoordinatorLayoutया विंडो डेकोर के कॉन्टेंट व्यू तक, व्यू की हैरारकी को ऊपर की ओर खोजता है. आम तौर पर, अपने कॉन्टेंट कोCoordinatorLayoutके अंदर रखना आसान होता है. - stringId
- उस मैसेज का रिसॉर्स आईडी जिसे आपको दिखाना है. यह फ़ॉर्मैट किया गया या बिना फ़ॉर्मैट वाला टेक्स्ट हो सकता है.
- कुल समय
-
मैसेज दिखाने के लिए तय की गई समयावधि. यह
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();