我无法在6.0以下的任何版本的android中设置TextView颜色

时间:2016-03-10 10:08:54

标签: android android-support-library

我正在使用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。我不确定是否会导致问题。如果我尝试更改它们,我仍然会遇到同样的问题。

3 个答案:

答案 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'

一切似乎都很好。我很困惑,但很高兴它有效。