Creating a custom Toast
suggest changeIf you don’t want to use the default Toast view, you can provide your own using the setView(View)
method on a Toast
object.
First, create the XML layout you would like to use in your Toast.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toast_layout_root" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp" android:background="#111"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFF"/> <TextView android:id="@+id/description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFF"/> </LinearLayout>
Then, when creating your Toast, inflate your custom View from XML, and call setView
// Inflate the custom view from XML LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); // Set the title and description TextViews from our custom layout TextView title = (TextView) layout.findViewById(R.id.title); title.setText("Toast Title"); TextView description = (TextView) layout.findViewById(R.id.description); description.setText("Toast Description"); // Create and show the Toast object
Toast toast = new Toast(getApplicationContext()); toast.setGravity(Gravity.CENTER, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show();
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents