आप का उपयोग करके अपने टोस्ट के स्थान को अनुकूलित कर सकते हैं:
setGravity(int gravity, int xOffset, int yOffset)
डॉक्स
यह आपको उस स्थान के बारे में बहुत विशिष्ट होने की अनुमति देता है जहाँ आप अपने टोस्ट का स्थान चाहते हैं।
XOffset और yOffset मापदंडों के बारे में सबसे उपयोगी चीजों में से एक यह है कि आप उन्हें एक निश्चित दृश्य के सापेक्ष टोस्ट रखने के लिए उपयोग कर सकते हैं।
उदाहरण के लिए, यदि आप एक बटन के ऊपर एक कस्टम टोस्ट बनाना चाहते हैं, तो आप इस तरह से एक फंक्शन बना सकते हैं:
// 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();
}