Android - स्नैकबार बनाम टोस्ट - उपयोग और अंतर


103

हम अभी तक अपने आवेदन में सिर्फ टोटर्स का उपयोग कर रहे हैं और जैसा कि हम समर्थन डिजाइन लाइब्रेरी से कुछ नई सुविधाओं को अपनाने की योजना बना रहे हैं, मैं सोच रहा हूं कि स्नैकबार बनाम टोस्ट के लिए अनुशंसित उपयोग क्या है।

मैं Google सामग्री स्नैकबार डॉक पर पढ़ रहा हूं

स्नैकबार मोबाइल पर स्क्रीन के आधार पर और डेस्कटॉप पर निचले बाएं हिस्से में एक छोटे से पॉपअप में एक ऑपरेशन के बारे में हल्की प्रतिक्रिया प्रदान करते हैं। वे एफएबी सहित स्क्रीन पर सभी तत्वों से ऊपर हैं।

और विस्फोट।

एंड्रॉइड एक कैप्सूल के आकार का टोस्ट भी प्रदान करता है, जिसका उपयोग मुख्य रूप से सिस्टम मैसेजिंग के लिए किया जाता है। टोस्ट स्नैकबार्स के समान हैं, लेकिन इसमें क्रियाएं नहीं होती हैं और स्क्रीन को बंद नहीं किया जा सकता है।

मैं समझता हूं कि वे क्या करते हैं लेकिन मैं थोड़ा भ्रमित हूं कि कब क्या उपयोग करना है। क्या इसका मतलब यह है कि:

  • यदि मुझे उपयोगकर्ता सहभागिता की आवश्यकता नहीं है, तो मैं एक टोस्ट का उपयोग करूंगा?
  • "सिस्टम मैसेजिंग" से क्या अभिप्राय है? क्या यह जानकारी प्रदर्शित करने के लिए लागू होता है जब मेरे ऐप और एंड्रॉइड सिस्टम के बीच कुछ महत्वपूर्ण हुआ?
  • मुझे जो पसंद है, वह है स्वाइप ऑफ स्क्रीन फीचर - क्या यह स्नैकबर्स के साथ टोस्ट की जगह शुरू करने का एक कारण होगा? (हालांकि यह थोड़ा राय आधारित प्रश्न है)

यह लिंक अब काम नहीं कर रहा है। हो सकता है कि इस सामग्री का उपयोग किया जाना चाहिए ।io/guidelines/compenders/snackbars-toasts.html ?
वादिम कोटोव

जवाबों:


109

यदि मुझे उपयोगकर्ता सहभागिता की आवश्यकता नहीं है, तो मैं एक टोस्ट का उपयोग करूंगा?

आप अभी भी स्नैकबार का उपयोग कर सकते हैं। स्नैकबार के साथ कार्रवाई करना अनिवार्य नहीं है।

"सिस्टम मैसेजिंग" से क्या अभिप्राय है? क्या यह जानकारी प्रदर्शित करने के लिए लागू होता है जब मेरे ऐप और एंड्रॉइड सिस्टम के बीच कुछ महत्वपूर्ण हुआ?

मेरा मानना ​​है कि अगर सिस्टम से संबंधित कुछ संदेश हैं, तो टोस्ट का उपयोग किया जाना है। या तो एक पूरी या कुछ पृष्ठभूमि सेवा के रूप में Android आप चला रहे हो सकता है। जैसे Text-To-Speech is not installed.याNo Email client found.

मुझे जो पसंद है, वह है स्वाइप ऑफ स्क्रीन फीचर - क्या यह स्नैकबार के साथ टोस्ट की जगह शुरू करने का एक कारण होगा? (हालांकि यह थोड़ा राय आधारित प्रश्न है)

वह एक कारण है। लेकिन कई अन्य प्लस पॉइंट हैं। उदाहरण के लिए: गतिविधि समाप्त होने पर भी आपका टोस्ट स्क्रीन पर रहता है। स्नैकबार नहीं। ऐप के बाहर निकलने के लंबे समय बाद टोस्ट पॉपअप नहीं होता है (या क्रम में मल्टीपल टोस्ट क्रिएशन के मामले में पॉप अप होता रहता है)। स्नैकबार के साथ ऐसा नहीं होगा।

सब से अधिक: मेरा सुझाव है कि यदि आप सोच रहे हैं, तो आपको स्विच करना चाहिए। SnackBars Toasts की तुलना में कहीं बेहतर दिखते हैं।


18
चीयर्स, स्नैकबार के साथ बिंदु केवल तभी जीवित रहता है जब आप गतिविधि पर होते हैं।
जैकब होलोवस्की

9
मैं जोड़ूंगा कि टोस्ट्स संदेशों के लिए पसंद किए जाते हैं जो सिस्टम संदेशों के अलावा ऐप के रूप में संदर्भित होते हैं, जबकि स्नैकबार उन संदेशों के लिए पसंद किए जाते हैं जो वर्तमान गतिविधि को संदर्भित करते हैं। उदाहरण के लिए यदि आपका ऐप लॉन्च के अपडेट की जांच करता है, तो परिणाम संदेश के लिए टोस्ट का उपयोग करना सबसे अच्छा है। यदि आपके ऐप में ऐसी चीज़ें हैं, जिन्हें हटाया जा सकता है, तो यह हटाए गए प्रतिक्रिया संदेश को पूर्ववत बटन के साथ स्नैकबार के रूप में दिखाना पसंद करता है।
सुबारू ताशीरो

10
ध्यान देने वाली एक और बात यह है कि नोटिफिकेशन बंद होने पर टोस्ट प्रदर्शित नहीं होते हैं।
होरेशियो

इसके अलावा महत्वपूर्ण अंतर यह है कि टोस्ट के विपरीत किसी भी समय केवल एक स्नैकबार दिखाया जाता है - आपके पास एक दूसरे के ऊपर दिखाए गए कई टोस्ट हो सकते हैं, जो उपयोगकर्ता के लिए कष्टप्रद हो सकते हैं, विशेष रूप से इस तथ्य पर विचार करते हुए कि उन्हें हटाया नहीं जा सकता है स्वाइप।
फ़िरोज़ेन

47

मैं टोस्ट और स्नैक बार के बीच एक छोटी सी तुलना जोड़ना चाहूंगा। मेरी राय में यदि आपका इरादा उपयोगकर्ता को बातचीत / पावती की आवश्यकता वाली चेतावनी या जानकारी प्रस्तुत करना है, तो आपको एक स्नैक बार का उपयोग करना चाहिए। यदि यह सिर्फ एक जानकारी संदेश है जिसे आपको किसी भी उपयोगकर्ता की स्वीकृति की आवश्यकता नहीं है तो आप टोस्ट का उपयोग कर सकते हैं।

+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| # |                                Toast                                 |                                 Snackbar                                 |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+
| 1 | Cant be dismissed by swiping                                        | Can dismiss by swiping                                                   |
| 2 | Activity not required (Can show in android home or above other apps) | Can show inside an activity of your app                                  |
| 3 | Cant handle user input                                              | Can handle user input                                                    |
| 4 | Good for showing info messages to user                               | Good for showing warning/info type messages to user that needs attention |
+---+----------------------------------------------------------------------+--------------------------------------------------------------------------+

26

टोस्ट:

  1. एपीआई स्तर 1 में टोस्ट जोड़ा गया था
  2. मूल रूप से गतिविधि की आवश्यकता नहीं है (एंड्रॉइड होम या अन्य एप्लिकेशन के ऊपर भी दिखाया जा सकता है)
  3. यह उपयोगकर्ता इनपुट के आधार पर कोई क्रिया नहीं कर सकता है
  4. इसे स्वाइप करके खारिज नहीं किया जा सकता
  5. यह उपयोगकर्ता इनपुट जैसे स्वाइप, क्लिक आदि को संभाल नहीं सकता है।
  6. उपयोगकर्ता को सूचना संदेश दिखाने के लिए अच्छा है

अल्पाहार गृह:

  1. स्नैकबार को एपीआई स्तर 23 में जोड़ा गया था
  2. यह एप्लिकेशन की एक गतिविधि के अंदर दिखाया जा सकता है
  3. यह एक क्रिया कर सकता है
  4. इसे स्वाइप करके खारिज किया जा सकता है
  5. यह उपयोगकर्ता इनपुट को संभाल सकता है
  6. उपयोगकर्ता को चेतावनी / सूचना प्रकार संदेश दिखाने के लिए अच्छा है, जिस पर ध्यान देने की आवश्यकता है

स्नैकबार और टोस्ट का उपयोग:

अल्पाहार गृह:

स्नैकबार का उपयोग उन क्षेत्रों में किया जा सकता है जहां एक साधारण पॉपअप संदेश को कार्रवाई करने के विकल्प के साथ प्रदर्शित करने की आवश्यकता होती है। उदाहरण के लिए: GMail एप्लिकेशन में, जब आप मेल हटाते हैं, तो एक कार्रवाई बटन 'पूर्ववत करें' के साथ संदेश '1 हटाए गए' के ​​साथ निचले हिस्से में त्वरित स्नैकबार प्रदर्शित होता है। 'पूर्ववत करें' कार्रवाई बटन दबाने पर, हटाए गए मेल को पुनर्स्थापित किया जाएगा।

टोस्ट:

टोस्ट का उपयोग उन क्षेत्रों में किया जा सकता है जहां सिस्टम संदेशों को प्रदर्शित करने की आवश्यकता होती है।

उदाहरण के लिए:

जब आपका ऐप JSON को दूरस्थ सर्वर से डाउनलोड करने का प्रयास करता है, लेकिन सर्वर टाइमआउट या कोई संसाधन नहीं मिलने के कारण यह विफल हो जाता है, तो आपको केवल यह कहते हुए त्रुटि संदेश प्रदर्शित करने की आवश्यकता है कि 'त्रुटि उत्पन्न'। लेकिन समझें कि टोस्ट संदेश को स्वाइप करके खारिज नहीं किया जा सकता है। यदि आप अभी भी इसे अपने ऐप में खारिज करने की क्षमता चाहते हैं, तो SnackBar के लिए जाएं।


13

पॉप-अप संदेशों के अवलोकन में आधिकारिक दस्तावेज के अनुसार :

नोट: Snackbar वर्ग अधिलंघित टोस्टजबकि टोस्ट अभी भी समर्थित है, स्नैकबार अब उपयोगकर्ता को संक्षिप्त, क्षणिक संदेश प्रदर्शित करने का पसंदीदा तरीका है।

और (सामग्री डिज़ाइन) स्नैकबार के प्रलेखन:

संबंधित अवधारणाएँ: एंड्रॉइड एक समान एपीआई के साथ एक टोस्ट वर्ग भी प्रदान करता है जिसका उपयोग सिस्टम-स्तरीय सूचनाओं को प्रदर्शित करने के लिए किया जा सकता है। आम तौर पर, स्नैकबार उपयोगकर्ताओं को प्रतिक्रिया संदेश प्रदर्शित करने के लिए पसंदीदा तंत्र होते हैं, क्योंकि उन्हें यूआई के संदर्भ में प्रदर्शित किया जा सकता है जहां कार्रवाई हुई। रिजर्व टोस्ट ऐसे मामलों के लिए जहां यह नहीं किया जा सकता है।


2

Google का मटीरियल डिज़ाइन स्पेसिफिकेशन कहता है कि बिना एक्शन के स्नैकबार रखना ठीक है। उन्होंने इस बात के उदाहरण दिए हैं कि स्नैकबार को क्या देखना चाहिए, अगर यह केवल एक स्ट्रिंग प्रदर्शित करता है। मैं यह मानूंगा कि "सिस्टम मैसेजिंग" का अर्थ है नेटवर्क कनेक्शन जैसे डिवाइस इवेंट खो जाना - जबकि ईमेल को संग्रह करना एक जीमेल विशिष्ट क्रिया है, उदाहरण के लिए।

स्थिरता के लिए, यह टोस्ट या स्नैकबार लेने के लिए समझ में आता है, और अपने पूरे ऐप पर लागू होता है।



1

संक्षिप्त उत्तर यह है कि वे 2 तरीके हैं जो उपयोगकर्ता को पृष्ठभूमि में होने वाली चीजों को संप्रेषित करने के लिए हैं, और आप उनमें से किसी एक को चोटी कर सकते हैं, वे दोनों ठीक हैं। बस सुनिश्चित करें कि आप एक ही का उपयोग कर रहे हैं और आगे और पीछे उनके बीच स्विच नहीं कर रहे हैं।

लंबे उत्तर:

  • नहीं, इसका मतलब यह है कि यदि आपको कुछ कार्रवाई की आवश्यकता है तो आपको स्नैकबार का उपयोग करना चाहिए। आप अभी भी केवल संदेश के लिए स्नैकबार का उपयोग कर सकते हैं (जैसे "अपलोडिंग समाप्त")।
  • "सिस्टम" से इसका मतलब सिर्फ एंड्रॉइड सिस्टम नहीं है। उदाहरण के लिए- यदि आपके सर्वर से जानकारी प्राप्त करते समय एक json पार्सिंग समस्या थी, तो आप अभी भी टोस्ट का उपयोग कर सकते हैं उपयोगकर्ता को सर्वर के साथ संवाद करते समय एक समस्या थी।
  • यदि आपको वास्तव में इस बंद को स्वाइप करने की आवश्यकता है, तो यह अनुपस्थिति स्नैकबार लेने का एक कारण है

1

हमारी डिजाइन टीम या तो टोस्ट या स्नैकबार का उपयोग कर रही है। हम एक निष्कर्ष पर आते हैं कि ऐप को इसके लचीलेपन को देखते हुए स्नैकबार का उपयोग करना चाहिए।

टोस्ट का उपयोग केवल तब किया जाना चाहिए जब हमें लगातार, छोटी स्ट्रिंग, जानकारी संदेश की आवश्यकता होती है जो अभी भी विभिन्न स्क्रीन पर समझ में आता है।


1

टोस्ट और स्नैकबार एंड्रॉइड के बीच अंतर

  • टोस्ट संदेशों को स्क्रीन पर कहीं भी अनुकूलित और मुद्रित किया जा सकता है, लेकिन एक स्नैकबार केवल स्क्रीन के निचले भाग में दिखाया जा सकता है।
  • टोस्ट संदेश में एक्शन बटन नहीं है, लेकिन स्नैकबार में वैकल्पिक रूप से एक्शन बटन हो सकता है।
  • टोस्ट संदेश को समय सीमा समाप्त होने तक बंद नहीं किया जा सकता है, लेकिन स्नैकबार को समय सीमा से पहले बंद किया जा सकता है।
  • आप यह निर्धारित कर सकते हैं कि इस तीन अलग-अलग मानों का उपयोग करके कब तक संदेश दिखाया जाएगा।
    Snackbar.LENGTH_LONG
    Snackbar.LENGTH_SHORT
    Snackbar.LENGTH_INDEFINITE

प्रयोग

टोस्ट

Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

अल्पाहार गृह

Snackbar snackbar = Snackbar.make(view,"This is Simple Snackbar",Snackbar.LENGTH_SHORT);
snackbar.show();

0

एंड्रॉइड एक कैप्सूल के आकार का टोस्ट भी प्रदान करता है, जिसका उपयोग मुख्य रूप से सिस्टम मैसेजिंग के लिए किया जाता है।

मुझे लगता है कि "सिस्टम मैसेजिंग" के साथ वे इस तथ्य का भी उल्लेख करते हैं कि एक विशिष्ट समय के लिए एक टोस्ट दिखाया जाएगा और इसे खारिज नहीं किया जा सकता है, भले ही उपयोगकर्ता गतिविधियों में नेविगेट करता हो और भले ही ऐप को पृष्ठभूमि पर ले जाया जाए।

मैं इसे एक गतिविधि में अपने दायरे को सीमित करने और इसे खारिज करने में सक्षम होने के लिए स्नैकबार का एक फायदा मानता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.