Ich verwende diese Methode ziemlich oft, um Snackbar-Nachrichten mit den in der App verwendeten Farben anzuzeigen. Aus diesem Grund wollte ich die Methode statisch machen und sie in eine letzte Klasse von Dienstprogrammen einfügen, damit ich sie überall verwenden und nicht jedes Mal wiederholen kann.Platzieren Sie die Snackbar in eine Utility-Klasse
Allerdings hat dies das Problem, dass findViewById
und getResources().getColor
etc .. brauchen eine Aktivität zu "leben in" und kann auch nicht statisch sein.
Jeder elegante Weg, dies zu tun? Ich habe in den anderen Posts nachgesehen, aber keiner von ihnen hat dieses Problem recht reflektiert. Danke !!
protected void displaySnackbar (String s)
{
Snackbar snack = Snackbar.make(findViewById(android.R.id.content), s, Snackbar.LENGTH_LONG);
View sbview = snack.getView();
sbview.setBackgroundColor(ContextCompat.getColor(this, R.color.colorAccent));
TextView textView = (TextView) sbview.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(getResources().getColor(R.color.primary_light));
snack.show();
}
Die Wurzel der jeweiligen Parameter in dieser Klasse übergeben Blick auf die Snackbar kann sich von "android.R.id.content" unterscheiden? –