android - 将 snackbar 放在 Utility 类中

标签 android android-snackbar

我经常使用这种方法来显示带有应用程序中使用的颜色的 snackbar 消息。出于这个原因,我想使该方法成为静态方法并将其放在最后一个实用程序类中,这样我就可以在所有地方使用它而不必每次都重复它。

但是,这有一个问题,即 findViewByIdgetResources().getColor 等需要一个 Activity 来“生存”并且也不能是静态的。

有什么优雅的方法可以做到这一点?我一直在查看其他帖子,但没有一个能完全反射(reflect)这个问题。 谢谢!!

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

最佳答案

把这个方法放在你想显示 snackbar 的地方,并在那个类中传递相应的参数

protected void displaySnackbar (View view,String s)
    {
        Snackbar snack = Snackbar.make(view, 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();
    }

关于android - 将 snackbar 放在 Utility 类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37611517/

相关文章:

android - Snackbar 操作文本颜色不变

android - 无法解析 android.support.design。迁移到 AndroidX 后

android - Snackbar 不会在滑动时关闭

android - 防止 Snackbar 在点击操作时关闭

android - Snackbar 堆栈将始终只显示最后一个 snackbar

android - 如何将状态和调整与 window.setSoftInputMode() 结合起来

java - 将 Json 映射到 POJO

android - 如何在 View 层次结构中使用点击事件

android - 如何获取数组的名称

android - private void sendRegistrationToServer(String token) 参数 token 从不使用