Comment changer la couleur de fond de la barre de snack?

Je montre snackbar dans DialogFragment Dans le clic positif de alertDialog.Here est mon extrait de code.

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(); 

Comme vous pouvez voir ma couleur d'arrière-plan snackbars montrant la couleur blanche

  • Fonds d'écran Android Live avec OpenGL ES 2.0?
  • Comment implémenter la communication Activity-Service
  • Le fichier R.java du projet de la bibliothèque Android n'importait pas dans le projet d'application
  • Attendez que AsyncTask multiple soit terminé
  • Comment ajouter des rectangles au dessus du rectangle existant dans un canevas
  • Comment afficher par programme la vue suivante dans ViewPager?
  • Je passe la vue du dialogue sur le snackbar. Je veux la couleur d'arrière-plan noir? Comment puis-je faire cela? Pardon pour mes mauvais anglais. Je suis de retour alertDialog dans le DialogFragment. Et le thème que je définis dans le dialogue comme suit

     <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> 

    Même si je définis la couleur d'arrière-plan en blanc pour la boîte de dialogue, elle doit être remplacée en définissant la couleur d'arrière-plan dans la barre de snack. S'il vous plaît, désolé pour un mauvais anglais.

  • Les notifications Push Android sont-elles fiables?
  • Pourquoi MaxWidth sur un bouton ne fonctionne-t-il pas et comment le contourner?
  • ListView OnItemLongClickListener () non déclenché
  • Android android studio sdk version 22 exception lors du rendu: action_bar
  • Comment puis-je placer deux TextView sur une même ligne, dans une disposition verticale
  • Comment effacer l'historique visité (CSS) d'un WebView Android?
  • 6 Solutions collect form web for “Comment changer la couleur de fond de la barre de snack?”

    Essayez de définir une couleur de fond comme ceci:

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

    Cela fonctionnera à 100%!

    Vous pouvez le faire comme ça

     Snackbar snackbar; snackbar = Snackbar.make(view, "Message", Snackbar.LENGTH_SHORT); View snackBarView = snackbar.getView(); snackBarView.setBackgroundColor(yourColor); TextView textView = (TextView) snackBarView.findViewById(android.support.design.R.id.snackbar_text); textView.setTextColor(textColor); snackbar.show(); 

    Le code ci-dessous est utile pour modifier la couleur du texte du message.

     Snackbar snackbar = Snackbar.make(rootView, "Enter Your Message",Snackbar.LENGTH_SHORT); View view = snackbar.getView(); TextView tv = (TextView)view.findViewById(android.support.design.R.id.snackbar_text); tv.setTextColor(Color.RED); snackbar.show(); 

    Deuxième manière: vous pouvez changer de couleur en modifiant le thème de l'activité également.

    Mettez-le dans une classe Utility:

     public class Utility { public static void showSnackBar(Context context, View view, String text) { Snackbar sb = Snackbar.make(view, text, Snackbar.LENGTH_SHORT); sb.getView().setBackgroundColor(ContextCompat.getColor(context, R.color.colorAccent)); sb.show(); } } 

    Utilisation comme ceci:

     Utility.showSnackBar(getApplicationContext(), findViewById(android.R.id.content), "Add success!!!"); 

    J'ai fait une petite classe utils afin que je puisse facilement faire des snacks personnalisés personnalisés à travers l'application.

     package com.yourapppackage.yourapp; import android.support.design.widget.Snackbar; import android.view.View; import android.widget.Button; import android.widget.TextView; public class SnackbarUtils { private int BACKGROUND_COLOR; private int TEXT_COLOR; private int BUTTON_COLOR; private String TEXT; public SnackbarUtils(String aText, int aBgColor, int aTextColor, int aButtonColor){ this.TEXT = aText; this.BACKGROUND_COLOR = aBgColor; this.TEXT_COLOR = aTextColor; this.BUTTON_COLOR = aButtonColor; } public Snackbar snackieBar(){ Snackbar snackie = Snackbar.make(MainActivity.getInstance().findViewById(android.R.id.content), TEXT, Snackbar.LENGTH_LONG); View snackView = snackie.getView(); TextView snackViewText = (TextView) snackView.findViewById(android.support.design.R.id.snackbar_text); Button snackViewButton = (Button) snackView.findViewById(android.support.design.R.id.snackbar_action); snackView.setBackgroundColor(BACKGROUND_COLOR); snackViewText.setTextColor(TEXT_COLOR); snackViewButton.setTextColor(BUTTON_COLOR); return snackie; } } 

    Puis l'utiliser, comme ça, n'importe où dans l'application:

     new SnackbarUtils("This is the text displayed", Color.RED, Color.BLACK, Color.YELLOW).snackieBar().setAction("OTAY", v -> { //donothing }).show(); 
     public class CustomBar { public static void show(View view, String message, boolean isLong) { Snackbar s = Snackbar.make(view, message, isLong ? Snackbar.LENGTH_LONG : Snackbar.LENGTH_SHORT); s.getView().setBackgroundColor(ContextCompat.getColor(view.getContext(), R.color.red_900)); s.show(); } public static void show(View view, @StringRes int message, boolean isLong) { Snackbar s = Snackbar.make(view, message, isLong ? Snackbar.LENGTH_LONG : Snackbar.LENGTH_SHORT); s.getView().setBackgroundColor(ContextCompat.getColor(view.getContext(), R.color.red_900)); s.show(); } 

    }

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.