最近在开发中遇到一个问题,某个textview在textApperance中设置了字体颜色样式,但实际并不生效。 后来查了一下,原来是我的工程中的主题中定义了android:textColor,是这个textColor覆盖了textApperance中的textColor属性,对比了一下字体颜色,确实使用了主题中的textColor,如果要强制使用textApperance中样式的textColor,则可以通过设置android:textColor="@null"强制生效。
出现这个问题,主要是由于各种属性的优先级关系导致的。在stackoverflow上看到了一个层级关系图,如下:
上一级的属性会覆盖掉下一级的属性,在实际使用中时需要注意。
参考如下:
1、stackoverflow
2、medium