खोज…


वाक्य - विन्यास

  • स्नैकबार मेक
  • स्नैकबार बनाते हैं (दृश्य देखें, int resId, int अवधि)

पैरामीटर

पैरामीटर विवरण
राय दृश्य: माता-पिता से मिलने का दृश्य।
टेक्स्ट चरित्रहीनता: पाठ दिखाने के लिए। पाठ स्वरूपित किया जा सकता है।
Resid int: स्ट्रिंग संसाधन संसाधन संसाधन का उपयोग करने के लिए। पाठ स्वरूपित किया जा सकता है।
अवधि int: संदेश प्रदर्शित करने के लिए कब तक। यह LENGTH_SHORT, LENGTH_LONG या LENGTH_INDEFINITE हो सकता है

टिप्पणियों

स्नैकबार एक ऑपरेशन के बारे में हल्के प्रतिक्रिया प्रदान करता है। यह मोबाइल पर स्क्रीन के नीचे और बड़े उपकरणों पर बाईं ओर एक संक्षिप्त संदेश प्रदर्शित करता है। स्नैकबार स्क्रीन पर अन्य सभी तत्वों के ऊपर दिखाई देते हैं और एक समय में केवल एक ही प्रदर्शित किया जा सकता है।

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

SnackBar का उपयोग करने से पहले आपको build.gradle फ़ाइल में डिज़ाइन समर्थन लाइब्रेरी निर्भरता को जोड़ना होगा:

dependencies {
    compile 'com.android.support:design:25.3.1'
}

आधिकारिक दस्तावेज

https://developer.android.com/reference/android/support/design/widget/Snackbar.html

एक साधारण स्नैकबार बनाना

एक Snackbar बनाना निम्नानुसार किया जा सकता है:

Snackbar.make(view, "Text to display", Snackbar.LENGTH_LONG).show();

Snackbar प्रदर्शित करने के लिए उपयोग करने के लिए एक उपयुक्त माता-पिता को खोजने के लिए view का उपयोग किया जाता है। आमतौर पर यह एक CoordinatorLayout जिसे आपने अपने XML में परिभाषित किया है, जो कार्यक्षमता को जोड़ने और अन्य विजेट्स (जैसे FloatingActionButton ) को स्थानांतरित करने के लिए स्वाइप करने में सक्षम बनाता है। अगर कोई CoordinatorLayout नहीं है तो विंडो डेकोर के कंटेंट व्यू का उपयोग किया जाता है।

बहुत बार हम Snackbar एक क्रिया भी जोड़ते हैं। एक सामान्य उपयोग मामला एक "पूर्ववत करें" कार्रवाई होगी।

Snackbar.make(view, "Text to display", Snackbar.LENGTH_LONG)
        .setAction("UNDO", new View.OnClickListener() {
            @Override
               public void onClick(View view) {
                   // put your logic here

               }
         })
        .show();

आप Snackbar बना सकते हैं और बाद में दिखा सकते हैं:

Snackbar snackbar = Snackbar.make(view, "Text to display", Snackbar.LENGTH_LONG); 
snackbar.show();

यदि आप Snackbar के पाठ का रंग बदलना चाहते हैं:

Snackbar snackbar = Snackbar.make(view, "Text to display", Snackbar.LENGTH_LONG);
View view = snackbar .getView();
TextView textView = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.parseColor("#FF4500"));
snackbar.show();

डिफ़ॉल्ट रूप से Snackbar यह सही swipe.This उदाहरण पर खारिज दर्शाता करने के लिए कैसे Snackbar खारिज यह बाईं कड़ी चोट है पर

कस्टम स्नैक बार

स्नैकबार को अनुकूलित करने का कार्य

public static Snackbar makeText(Context context, String message, int duration) {
        Activity activity = (Activity) context;
        View layout;
        Snackbar snackbar = Snackbar
                .make(activity.findViewById(android.R.id.content), message, duration);
        layout = snackbar.getView();
        //setting background color
        layout.setBackgroundColor(context.getResources().getColor(R.color.orange));
        android.widget.TextView text = (android.widget.TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
        //setting font color
        text.setTextColor(context.getResources().getColor(R.color.white));
        Typeface font = null;
        //Setting font 
        font = Typeface.createFromAsset(context.getAssets(), "DroidSansFallbackanmol256.ttf");
        text.setTypeface(font);
        return snackbar;

    }

फ़ंक्शन को खंड या गतिविधि से कॉल करें

 SnackBar.makeText(MyActivity.this, "Please Locate your address at Map", Snackbar.LENGTH_SHORT).show();

कॉलबैक के साथ स्नैकबार

स्नैकबार को उपयोगकर्ता या टाइमआउट द्वारा खारिज कर दिया गया था, यह सुनने के लिए आप स्नैकबार का उपयोग कर सकते हैं।

Snackbar.make(getView(), "Hi snackbar!", Snackbar.LENGTH_LONG).setCallback( new Snackbar.Callback() {
                @Override
                public void onDismissed(Snackbar snackbar, int event) {
                    switch(event) {
                        case Snackbar.Callback.DISMISS_EVENT_ACTION:
                            Toast.makeText(getActivity(), "Clicked the action", Toast.LENGTH_LONG).show();
                            break;
                        case Snackbar.Callback.DISMISS_EVENT_TIMEOUT:
                            Toast.makeText(getActivity(), "Time out", Toast.LENGTH_LONG).show();
                            break;
                    }
                }

                @Override
                public void onShown(Snackbar snackbar) {
                    Toast.makeText(getActivity(), "This is my annoying step-brother", Toast.LENGTH_LONG).show();
                }
            }).setAction("Go!", new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                }
            }).show();

कस्टम स्नैकबार

यह उदाहरण कस्टम पूर्ववत करें आइकन के साथ एक सफेद स्नैकबार दिखाता है।

Snackbar customBar = Snackbar.make(view , "Text to be displayed", Snackbar.LENGTH_LONG);
customBar.setAction("UNDO", new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    //Put the logic for undo button here

    }
});

View sbView = customBar.getView();
//Changing background to White
sbView.setBackgroundColor(Color.WHITE));

TextView snackText = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text); 
if (snackText!=null) {
    //Changing text color to Black
   snackText.setTextColor(Color.BLACK);
}

TextView actionText = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_action);
if (actionText!=null) {
    // Setting custom Undo icon
    actionText.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.custom_undo, 0, 0, 0);
}
customBar.show();

स्नैकबार बनाम टोस्ट्स: मुझे किसका उपयोग करना चाहिए?

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

Toast.makeText(this, "Message Sent!", Toast.LENGTH_SHORT).show();

स्नैकबार का उपयोग सूचना प्रदर्शित करने के लिए भी किया जाता है। लेकिन इस बार, हम उपयोगकर्ता को कार्रवाई करने का अवसर दे सकते हैं। उदाहरण के लिए, मान लें कि उपयोगकर्ता ने गलती से कोई चित्र हटा दिया है और वह उसे वापस प्राप्त करना चाहता है। हम "पूर्ववत करें" कार्रवाई के साथ एक स्नैकबार प्रदान कर सकते हैं। ऐशे ही:

Snackbar.make(getCurrentFocus(), "Picture Deleted", Snackbar.LENGTH_SHORT)
        .setAction("Undo", new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Return his picture
            }
        })
        .show();

निष्कर्ष: जब उपयोगकर्ता की सहभागिता की आवश्यकता नहीं होती है तो टोस्ट का उपयोग किया जाता है। स्नैकबार का उपयोग उपयोगकर्ताओं को एक अन्य कार्रवाई करने या पिछले एक को पूर्ववत करने की अनुमति देने के लिए किया जाता है।

कस्टम स्नैकबार (कोई ज़रूरत नहीं दृश्य)

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

public class CustomSnackBar {

    public static final int STATE_ERROR = 0;
    public static final int STATE_WARNING = 1;
    public static final int STATE_SUCCESS = 2;
    public static final int VIEW_PARENT = android.R.id.content;

    public CustomSnackBar(View view, String message, int actionType) {
        super();

        Snackbar snackbar = Snackbar.make(view, message, Snackbar.LENGTH_LONG);
        View sbView = snackbar.getView();
        TextView textView = (TextView) sbView.findViewById(android.support.design.R.id.snackbar_text);
        textView.setTextColor(Color.parseColor("#ffffff"));
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
        textView.setGravity(View.TEXT_ALIGNMENT_CENTER);
        textView.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

        switch (actionType) {
            case STATE_ERROR:
                snackbar.getView().setBackgroundColor(Color.parseColor("#F12B2B"));
                break;
            case STATE_WARNING:
                snackbar.getView().setBackgroundColor(Color.parseColor("#000000"));
                break;
            case STATE_SUCCESS:
                snackbar.getView().setBackgroundColor(Color.parseColor("#7ED321"));
                break;
        }
        snackbar.show();
    }
}

कॉल क्लास के लिए

new CustomSnackBar (findViewById (CustomSnackBar.VIEW_PARENT), "संदेश", CustomSnackBar.STATE_ERROR);



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow