How to add a Snackbar in Android

Snackbar provides lightweight feedback about an operation. The message appears at the bottom of the screen on mobile and lower left on larger devices. Snackbar appears above all the elements of the screen. But no component is affected by it. Having a CoordinatorLayout in your view hierarchy allows Snackbar to enable certain features, such as swipe-to-dismiss and automatically moving of widgets. Snackbar is similar to Toast but the only major difference is that an action can be added with Snackbar.

Approach:

  1. Add the support Library in build.gradle file and add Material Design dependency in the dependencies section.It is a part of Material Design that’s why we have to add a dependency.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    dependencies {
        implementation 'com.google.android.material:material:1.1.0'
    }

    chevron_right

    
    

  2. Now add the following code in the activity_main.xml file. It will create a button named Open Snackbar.

    activity_main.xml

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.coordinatorlayout.widget.CoordinatorLayout
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/layout"
        tools:context=".MainActivity">
      
        <Button
            android:layout_gravity="center"
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:textAllCaps="false"
            android:text="Open Snackbar"
             />
      
    </androidx.coordinatorlayout.widget.CoordinatorLayout>

    chevron_right

    
    

  3. Now add the following code in the MainActivity.java file. This will define the button and add a onClickListener to the button. In the onClickListener a Snackbar is created and is called. So whenever the button is clicked, the onClickListener creates a snackbar and calls it and the user sees the message. This snackbar contains an action and if clicked will show a toast.

    MainActivity.java

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    package org.geeksforgeeks.gfgsnackbar;
      
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.coordinatorlayout
        .widget.CoordinatorLayout;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
      
    import com.google.android.material
        .snackbar
        .Snackbar;
      
    public class MainActivity
        extends AppCompatActivity {
      
        Button button;
        CoordinatorLayout layout;
      
        @Override
        protected void onCreate(
            Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            button = findViewById(R.id.button);
            layout = findViewById(R.id.layout);
      
            button.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v)
                    {
      
                        // Create a snackbar
                        Snackbar snackbar
                            = Snackbar
                                  .make(
                                      layout,
                                      "Message is deleted",
                                      Snackbar.LENGTH_LONG)
                                  .setAction(
                                      "UNDO",
      
                                      // If the Undo button
                                      // is pressed, show
                                      // the message using Toast
                                      new View.OnClickListener() {
                                          @Override
                                          public void onClick(View view)
                                          {
                                              Toast
                                                  .makeText(
                                                      MainActivity.this,
                                                      "Undo Clicked",
                                                      Toast.LENGTH_SHORT)
                                                  .show();
                                          }
                                      });
      
                        snackbar.show();
                    }
                });
        }
    }

    chevron_right

    
    

Output:

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :
Practice Tags :


2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.