2015-01-14 80 views
3

我正在使用https://github.com/nispok/snackbar库来实现Snackbar。我想这个小吃吧是白色的,所以我写了这样的代码:无法在Snackbar中将颜色设置为白色 - Android

SnackbarManager.show(Snackbar.with(context) 
    .text(R.string.you_have_to_be_logged_in) 
    .color(Color.WHITE) 
    .actionLabel(R.string.log_me_in) 
    .actionColorResource(R.color.lime_500) 
    .actionListener(new ActionClickListener() { 
     @Override 
     public void onActionClicked(Snackbar snackbar) { 
      LogInDialog logInDialog = new LogInDialog(); 
      logInDialog.show(ft, "LogInDialog"); 
     } 
    })); 

正如你在第3行我设置背景色为白色看到,但它不会改变任何东西。背景仍然黑暗。但是,如果我将背景颜色更改为.colorResource(R.color.lime_500),快餐栏将更改为此颜色。

我也试过.colorResource(R.color.white).color(Color.parseColor("#ffffff")

为什么小吃店不能是白色的?

+0

使用colorResource(R.color.yourWhiteColor)。你必须为此创建Snackbar实例。 –

+0

我也试过colorResource(...),仍然不起作用,但是,你是什么意思“为此创建Snackbar实例”? –

+0

我猜这是因为文字颜色也是白色的。尝试改变它们两个。 –

回答

1

这的确是一个错误,已修复版本2.8.0

的问题是,它假定的-1颜色值意味着颜色没有界定,应该使用默认的材料设计规范值。原因是Color.WHITE IS -1因此被忽略:P

现在,“未定义”颜色值设置为-10000;这个值不应该引起任何问题。

0
Snackbar snackbar = Snackbar.make(linearLayout, getResources().getString(R.string.add_number), Snackbar.LENGTH_LONG); 
snackbar.setActionTextColor(Color.WHITE); 
View snackbarView = snackbar.getView(); 
snackbarView.setBackgroundColor(Color.RED); 
snackbar.show(); 

enter image description here

0

这将颜色或小吃吧变为蓝色

Snackbar snack = Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
    .setAction("Action", null); 
ViewGroup group = (ViewGroup) snack.getView(); 
group.setBackgroundColor(ContextCompat.getColor(MainActivity.this, R.color.red)); 
snack.show(); 
相关问题