在我从backgroundColor
重新审核<item name="android:colorBackground">#ff00</item>
属性styles.xml
的测试中,我发现
如果未在styles.xml
中设置该属性并且我使用typedArray.hasValue()
检查属性,它仍将返回true,就像设置了一些值一样,因此我将永远不会获得默认值!
private void getBackgroundColor(){
int[] colorAttrs = {android.R.attr.colorBackground, android.R.attr.strokeColor};
TypedArray colors = context.obtainStyledAttributes(style, colorAttrs);
if(colors.hasValue(0)){
//it shouldn't come inside here because android.R.attr.colorBackground hasn't been set!
//But it keeps retuning what looks like a white color.
int backgroundColor = colors.getColor(0, ContextCompat.getColor(context, R.color.defaultBackgroundColor));
}
colors.recycle();
}