पॉप-अप मैसेज बनाना और दिखाना

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

उपयोगकर्ता को छोटा मैसेज दिखाने के लिए, 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();