android - एंड्रॉइड में टोस्ट की स्थिति कैसे बदलें?




toast (6)

// एक कस्टम टोस्ट क्लास जहां आप वांछित के रूप में कस्टम या डिफ़ॉल्ट टोस्ट दिखा सकते हैं)

public class ToastMessage {
            private Context context;
            private static ToastMessage instance;

            /**
             * @param context
             */
            private ToastMessage(Context context) {
                this.context = context;
            }

            /**
             * @param context
             * @return
             */
            public synchronized static ToastMessage getInstance(Context context) {
                if (instance == null) {
                    instance = new ToastMessage(context);
                }
                return instance;
            }

            /**
             * @param message
             */
            public void showLongMessage(String message) {
                Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
            }

            /**
             * @param message
             */
            public void showSmallMessage(String message) {
                Toast.makeText(context, message, Toast.LENGTH_LONG).show();
            }

            /**
             * The Toast displayed via this method will display it for short period of time
             *
             * @param message
             */
            public void showLongCustomToast(String message) {
                LayoutInflater inflater = ((Activity) context).getLayoutInflater();
                View layout = inflater.inflate(R.layout.layout_custom_toast, (ViewGroup) ((Activity) context).findViewById(R.id.ll_toast));
                TextView msgTv = (TextView) layout.findViewById(R.id.tv_msg);
                msgTv.setText(message);
                Toast toast = new Toast(context);
                toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
                toast.setDuration(Toast.LENGTH_LONG);
                toast.setView(layout);
                toast.show();


            }

            /**
             * The toast displayed by this class will display it for long period of time
             *
             * @param message
             */
            public void showSmallCustomToast(String message) {

                LayoutInflater inflater = ((Activity) context).getLayoutInflater();
                View layout = inflater.inflate(R.layout.layout_custom_toast, (ViewGroup) ((Activity) context).findViewById(R.id.ll_toast));
                TextView msgTv = (TextView) layout.findViewById(R.id.tv_msg);
                msgTv.setText(message);
                Toast toast = new Toast(context);
                toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
                toast.setDuration(Toast.LENGTH_SHORT);
                toast.setView(layout);
                toast.show();
            }

        }

जब मैं स्क्रीन पर कुछ पॉपअप टेक्स्ट प्रदर्शित करने के लिए Toast का उपयोग करता हूं, तो यह स्क्रीन के नीचे से थोड़ा ऊपर टेक्स्ट प्रदर्शित करता है, जो डिफ़ॉल्ट स्थिति है।

अब मैं इसे स्क्रीन के बीच में या कहीं भी अपनी पसंद के अनुसार प्रदर्शित करना चाहता हूं।

क्या कोई मुझे यह कैसे प्राप्त कर सकता है?


आप अपने टोस्ट के स्थान का उपयोग करके अनुकूलित कर सकते हैं:

setGravity(int gravity, int xOffset, int yOffset)

docs

यह आपको अपने टोस्ट के स्थान के बारे में बहुत विशिष्ट होने की अनुमति देता है।

एक्सऑफसेट और वाई ऑफसेट पैरामीटर के बारे में सबसे उपयोगी चीजों में से एक यह है कि आप टोस्ट रिश्तेदार को एक निश्चित दृश्य में रखने के लिए उनका उपयोग कर सकते हैं।

उदाहरण के लिए, यदि आप एक बटन के शीर्ष पर दिखाई देने वाले कस्टम टोस्ट बनाना चाहते हैं, तो आप इस तरह का फ़ंक्शन बना सकते हैं:

// v is the Button view that you want the Toast to appear above 
// and messageId is the id of your string resource for the message

private void displayToastAboveButton(View v, int messageId)
{
    int xOffset = 0;
    int yOffset = 0;
    Rect gvr = new Rect();

    View parent = (View) v.getParent(); 
    int parentHeight = parent.getHeight();

    if (v.getGlobalVisibleRect(gvr)) 
    {       
        View root = v.getRootView();

        int halfWidth = root.getRight() / 2;
        int halfHeight = root.getBottom() / 2;

        int parentCenterX = ((gvr.right - gvr.left) / 2) + gvr.left;

        int parentCenterY = ((gvr.bottom - gvr.top) / 2) + gvr.top;

        if (parentCenterY <= halfHeight) 
        {
            yOffset = -(halfHeight - parentCenterY) - parentHeight;
        }
        else 
        {
            yOffset = (parentCenterY - halfHeight) - parentHeight;
        }

        if (parentCenterX < halfWidth) 
        {         
            xOffset = -(halfWidth - parentCenterX);     
        }   

        if (parentCenterX >= halfWidth) 
        {
            xOffset = parentCenterX - halfWidth;
        }  
    }

    Toast toast = Toast.makeText(getActivity(), messageId, Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.CENTER, xOffset, yOffset);
    toast.show();       
}

टॉपिन स्क्रीन पर टोस्ट सेट करना

toast.setView(view);
toast.setGravity(Gravity.BOTTOM , 0, 0); // here i am setting toast at bottom
 toast.setDuration(Toast.LENGTH_LONG);
 toast.show(); 

अब नीचे

 toast.setView(view);
 toast.setGravity(Gravity.BOTTOM , 0, 0); // here i am setting toast at bottom
 toast.setDuration(Toast.LENGTH_LONG);
 toast.show();  

वैसे ही हम बाएं, दाएं और केंद्र में टोस्ट सेट कर सकते हैं

here क्लिक here


टोस्ट के रंग, स्थिति और पृष्ठभूमि रंग को बदलने की विधि है:

Toast toast=Toast.makeText(getApplicationContext(),"This is advanced toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.BOTTOM | Gravity.RIGHT,0,0);
View view=toast.getView();
TextView  view1=(TextView)view.findViewById(android.R.id.message);
view1.setTextColor(Color.YELLOW);
view.setBackgroundResource(R.color.colorPrimary);
toast.show();

लाइन स्पष्टीकरण द्वारा लाइन के लिए: https://www.youtube.com/watch?v=5bzhGd1HZOc


 Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
 toast.setGravity(Gravity.CENTER, 0, 0);
 toast.show();

Toast mytoast= Toast.makeText(getApplicationContext(), "Toast Message", 1);  
mytoast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);  // for center horizontal
//mytoast.setGravity(Gravity.CENTER_VERTICAL);       // for center vertical 
//mytoast.setGravity(Gravity.TOP);                       // for top
mytoast.show();

उपर्युक्त कोड आपको स्क्रीन के बीच में टोस्ट प्रदर्शित करने में मदद करेगा या आपकी पसंद के अनुसार टोस्ट गुरुत्वाकर्षण को आपकी आवश्यकता के अनुसार सेट करेगा

नोट: इस प्रक्रिया के लिए आपको टोस्ट की वस्तु का उपयोग करना होगा





toast