2015-01-14 92 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(); 
相關問題