我正在使用android支持库。在我的XML中,如果我使用TextView,除了android 6.0之外,任何版本的android中的文本颜色都不会改变。我在多种屏幕布局上遇到了问题。
<TextView
android:id="@+id/tvStatus"
android:textColor="#FFFFFF00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="@string/ted240" />
如果我使用android.widget.TextView,那么在旧版本的android上一切正常。
<android.widget.TextView
android:id="@+id/tvStatus"
android:textColor="#FFFFFF00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:text="@string/ted240" />
我最近更新了支持库和gradle。我不确定是否会导致问题。如果我尝试更改它们,我仍然会遇到同样的问题。
答案 0 :(得分:0)
使用低于六位数的六进制数而不是8
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ff0000"
/>
答案 1 :(得分:0)
在Android支持库23中,向ContextCompat添加了一个新的getColor()方法。
但你可以像我使用的方法一样使用它,
public static int getColorWrapper(Context context, int id) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
return context.getColor(id);
} else {
//noinspection deprecation
return context.getResources().getColor(id);
}
}
然后你需要像下面这样打电话,
textView.setTextColor(getColorWrapper(context,R.color.black));
希望这对你有用。
答案 2 :(得分:0)
我试图清理然后重建项目,似乎没有什么能解决它。我尝试将它一直改回'com.android.support:appcompat-v7:22'。
我似乎已经修改了
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
然后一旦它再次开始工作我改为
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:design:23.2.0'
一切似乎都很好。我很困惑,但很高兴它有效。