উত্তর:
ডকুমেন্টেশন থেকে ,
আপনার টোস্ট পজিশনিং
অনুভূমিকভাবে কেন্দ্র করে স্ক্রিনের নীচে কাছাকাছি একটি স্ট্যান্ডার্ড টোস্ট বিজ্ঞপ্তি উপস্থিত হবে।
setGravity(int, int, int)
পদ্ধতি সহ আপনি এই অবস্থানটি পরিবর্তন করতে পারেন । এটি তিনটি পরামিতি গ্রহণ করে: একটিGravity
ধ্রুবক, একটিx-position
অফসেট এবং একটিy-position
অফসেট।উদাহরণস্বরূপ, যদি আপনি স্থির করেন যে টোস্টটি উপরের বাম কোণে প্রদর্শিত হবে তবে আপনি এই মত অভিকর্ষটি সেট করতে পারেন:
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
আপনি যদি অবস্থানটি ডানদিকে টানতে চান তবে দ্বিতীয় প্যারামিটারের মান বাড়ান। এটি নীচে টানতে, সর্বশেষ প্যারামিটারটির মান বাড়ান।
Gravity.CENTER_VERTICAL
তবে পর্দার মাঝখানে টোস্টটি রাখবে।
আপনার যদি মেকটেক্সট কল করতে হবে তা বোঝাতে কোনও ত্রুটি পেলে নিম্নলিখিত কোডটি এটি ঠিক করে দেবে:
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();
new Toast(context)
পরিবর্তেToast.makeText(...)
আপনি আপনার টোস্টের অবস্থানটি ব্যবহার করে কাস্টমাইজ করতে পারেন:
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();
}
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 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.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();
একইভাবে আমরা বামে, ডান এবং কেন্দ্রে টোস্ট সেট করতে পারি
// একটি কাস্টম টোস্ট ক্লাস যেখানে আপনি পছন্দ মতো কাস্টম বা ডিফল্ট টোস্টটি দেখাতে পারেন)
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();
}
}