2014-11-24 258 views
2

CardView的默認白色背景有問題或者我缺少什麼?當我將CardView填充爲普通的未設置的Android UI時,TextView的白色文本不可讀,例如CardView默認背景顏色有問題

有人知道一個很好的解決方案嗎?我使用默認的「Theme.AppCompat」主題,其他背景顏色看起來正確。這是Theme.AppCompat中缺少的屬性嗎?或者我做錯了什麼?沒有手動設置任何值的默認顏色應始終工作或不工作?

編輯:

我現在應用默認的背景色爲當前樣式到cardview這樣的:

TypedArray array = context.getTheme().obtainStyledAttributes(
      new int[] { android.R.attr.colorBackground }); 
    card.setCardBackgroundColor(array.getColor(0, 0xFF00FF)); 

我認爲這是一個非常節約「默認」修復至少有在屏幕截圖中沒有文字顏色問題,但問題仍然是什麼應該是這裏的最佳做法,以及爲什麼Cardview無論使用什麼主題都具有白色作爲默認背景色。

Screenshot from Android 4.4 device

+0

儘可能多的Android中CradView其他的東西充滿了錯誤。但是如果你想仔細看看源代碼中的llok:https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/LayoutInflater.java,特別是方法初始化()。在那裏您會看到它應該根據主題背景爲背景選擇淺色或深色。然而......它沒有。歡迎來到臭蟲的集合...我的意思是機器人。 – f470071 2017-02-16 14:11:22

+0

更改cardview所在佈局的背景顏色。 – 2017-09-13 17:06:52

回答

-1

通過這種方式,你可以改變Cardview背景顏色,

RoundRectDrawable backgroundDrawable = new RoundRectDrawable(backgroundColor, cardView.getRadius()); 
cardView.setBackgroundDrawable(backgroundDrawable); 
+0

更好地使用card.setCardBackgroundColor(color);)但是這不是我認爲的默認bahaviour的好解決方案。 CardView的默認顏色應該與默認文本顏色相反,至少這就是我所期望的。 – 2014-11-24 11:19:23

+0

不這樣做,請使用新的API來設置背景顏色。調用它會在棒棒糖之前崩潰cardview。 – yigit 2014-11-25 01:33:54