۱ پوریا شفیعی
مقاله آموزشی - Toast سفارشیتو بساز
جامعه جاوا (اندروید) ایجاد شده در ۲۷ خرداد ۱۳۹۹

رفقا سلام

بدون مقدمه بگم 

امروز میخایم بریم آموزش توست سفارشی شاید خیلی‌ها بگن اقا Toast منسوخ شده! نه 

اصلا اینطور نیست :) Snackbar ی که شما میگین صرفا اومده تا بتونی از امکانات ویژه‌تری استفاده کنی

راستی اگر نمیدونی اسنک بار چیه بعدا باهاش آشنا میشی

خب میریم سر وقت آموزش هامون!

من به دو صورت بهتون آموزش میدم یکی از طریق فایل drawable و یکی از طریق ساخت یک لایه

خب اول از همه داخل فایل drawable یک فایل xml با این کد‌ها ایجاد کنید:

 <?xml version="۱.۰" encoding="utf-۸"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#C۰۰۰۸۰" />
            <stroke android:width="۱dp"
                    android:color="#۴B۴B۴B" />
            <corners android:radius="۱۰dp" />
        </shape>
    </item>
</selector>

خب حالا کد‌های جاوای زیر را تو جایی که میخواید Toast اجرا بشه رو بنویسید:

Toast toast = Toast.makeText(getApplicationContext(), "Custom Toast :)", Toast.LENGTH_LONG);
        View view = toast.getView();
        view.setBackgroundResource(R.drawable.toast);
        toast.setView(view);
        toast.show();

این آموزش اول بود

حالا آموزش Toast سفارشی با استفاده از لایه ی شخصی خودتون!

میدونید که برای نمایش یک view داخل یک view دیگه باید از LayoutInfelater استفاده کنید:

واسه این کار داخل فایل layout یک فایل xml شخصی با سلیقه ی خودتون بسازید فقط یادتون نره که این فایل شخصی باید فقط حاوی یک TextView و یک ImageView باشه اگه بیشتر باشه یه مقدار زشت میشه دیگه حالا خودتون میدونید:

حالا کد‌های فایل xml داخل فایل layout رو اینجوری بزنید:

 <?xml version="۱.۰" encoding="utf-۸"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="right"
    android:gravity="right"
    android:orientation="horizontal" >
    <TextView
        android:id="@+id/txt_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="left"
        android:layout_marginRight="۱۰۰dp"
        android:text=":)"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="۱۲sp" />
    <ImageView
        android:id="@+id/imageView۱"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

خب حالا کد‌های جاوا :

LayoutInflater inflater = getLayoutInflater();
    	View view1 = inflater.inflate(R.layout.toast, null);
    	TextView textView = (TextView) view1.findViewById(R.id.txt_toast);
    	textView.setText("This is a Custom TOAST");
    	Toast toast = new Toast(this);
    toast.setView(view1);
    	toast.show();

مرسی ک با من بودین .

سلام مرسی ولی کاش یه دمو میذاشتی حداقل یه عکس :)

وحید گروسی ۲۹ خرداد ۱۳۹۹، ۱۸:۵۷