Skip to content
Related Articles

Related Articles

Improve Article
How to add a custom styled Toast in Android using Kotlin
  • Difficulty Level : Medium
  • Last Updated : 07 Aug, 2020

A Toast is a short alert message shown on the Android screen for a short interval of time. Android Toast is a short popup notification that is used to display information when we perform any operation in the app. In this article, let’s learn how to create a custom toast in Android using Kotlin.

custom toast

Note: To create custom styled toast in Android using Java please refer to How to add a custom styled Toast in Android.

Table of Attributes

LayoutInflaterInstantiates a layout XML file into its corresponding View objects
inflateInflate a new view hierarchy from the specified XML resource.
setGravityUsed to change the position of Toast


Step 1: Create the Toast Layout

Go to res -> layout (right-click) -> new -> Layout Resource file -> Create (custom_toast_layout.xml) file. Add a CardView to contain the custom toast message and also add a TextView to display the text inside the custom toast message. FrameLayout is used to specify the position of multiple views placed on the top of each other to represent a single view screen.


<?xml version="1.0" encoding="utf-8"?>
                    android:background="#3EAA56" />
                    android:text="This is a custom Toast"
                    android:textStyle="bold" />

Step 2: Create a New Kotlin File

Now creates a new Kotlin file and named it as WrapToast.kt to make the code reusable. Go to Project Package (right-click) -> new -> Kotlin file/class -> Create (WrapToast.kt) file. Now we are going to extend the Toast::class with showCustomToast() which will take String and Context as a parameter.


  • Inflate the previously created layout (custom_toast_layout.xml) using the layoutInflater.
  • After, inflated the layout, find its view. In this case, set the text of the TextView of the message.
  • The last step is to create a new instance about the Toast:: class. Then, using its application extension function sets the gravity, the duration, and the layout. Inside apply, call the show() method as well.


import android.view.Gravity
import android.widget.TextView
import android.widget.Toast
fun Toast.showCustomToast(message: String, activity: Activity)
    val layout = activity.layoutInflater.inflate (
    // set the text of the TextView of the message
    val textView = layout.findViewById<TextView>(
    textView.text = message
    // use the application extension function 
    this.apply {
        setGravity(Gravity.BOTTOM, 0, 40)
        duration = Toast.LENGTH_LONG
        view = layout

Step 3: Create a Button to Show Toast in an Activity

Add a Button inside the ConstraintLayout. So when the user clicks on the button then the custom Toast is popped up on the screen.


<?xml version="1.0" encoding="utf-8"?>
        android:text="Show Toast"
        app:layout_constraintTop_toTopOf="parent" />

Step 4: Create the Toast

After, creating the button to show a toast apply an onClickListener() and pass the Toast message and the context of the activity.


import android.os.Bundle
import android.widget.Toast
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // apply an onClickListener() method
            Toast(this).showCustomToast (
                "Hello! This is a custom Toast!",

Run as Emulator

Want a more fast-paced & competitive environment to learn the fundamentals of Android?
Click here to head to a guide uniquely curated by our experts with the aim to make you industry ready in no time!

My Personal Notes arrow_drop_up
Recommended Articles
Page :