androidmaterial-designandroid-dialogfragmentandroid-snackbar

How to change background color of the snackbar?


I am showing snackbar in a DialogFragment within the positive touch of the alert dialog. Here is my code snippet:

Snackbar snackbar = Snackbar.make(view, "Please enter customer name", Snackbar.LENGTH_LONG)
                .setAction("Action", null);
View sbView = snackbar.getView();
sbView.setBackgroundColor(Color.BLACK);
snackbar.show();

As you can see my snackbars background color is showing white color

I am passing the view of the DialogFragment to the snackbar. I want the background color to be black. How can I do this? I am returning the alertDialog in the DialogFragment. And the theme I am setting to the dialog as follow's:

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert">

    <!-- Used for the buttons -->
    <item name="colorAccent">@color/accent</item>
    <!-- Used for the title and text -->
    <item name="android:textColorPrimary">@color/primary</item>
    <!-- Used for the background -->
    <item name="android:background">@color/white</item>
</style>

Although I am setting the background color to white for the dialog, it should override by setting the background color to the snackbar.


Solution

  • Try setting background color like this:

    sbView.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.BLACK));
    

    It will work 100% !